I am trying to price European call and put options on a stock using the Monte Carlo method, given some dynamics for the underlying that may or may not have a closed-form solution (e.g. Black-Scholes, local volatility, Heston). Interest rates, dividends, etc. can be assumed to be zero at present.

The standard approach outlined in textbooks is to simulate a large number of underlying price paths and average the option payoffs. However, put-call parity will be violated after any finite number of trials since the expected value of the stock only converges to the forward value in the limit of infinite trials.

Are there any alternative approaches to path generation that enforce put-call parity, or post-simulation adjustments to valuations that account for this error?

  • $\begingroup$ Hi, may I ask how does the put-call parity be violated (assuming the parity has been adjusted for dividend) even if the Stock price converges? For Each terminal stock price the call - put payoff = Stock payoff - Strike price, this should not be violated. $\endgroup$ Oct 31, 2023 at 3:21
  • $\begingroup$ @PrestonLui can you elaborate on the adjustment for dividend? To OP: Since European calls and puts must always satisfy the put-call parity (regardless which model we use and what dividend assumptions we make) we can view its violation in a MC simulation as an indicator of bad convergence. Enforcing put-call parity is cheap: define the put price as call price minus discounted forward plus discounted strike. I would however refrain from doing that as it sweeps the bad convergence under the rug. $\endgroup$
    – Kurt G.
    Oct 31, 2023 at 9:03
  • $\begingroup$ @KurtG. It is on the wikipedia en.wikipedia.org/wiki/Put%E2%80%93call_parity But honestly, I would much prefer the future interpretation to avoid the nuances of carry and dividend. I am also not too sure what you mean by sweeping the bad convergence under the rug, future by definition at termination coverages to underlying, assuming the exchange does a good job? $\endgroup$ Oct 31, 2023 at 9:17
  • $\begingroup$ @PrestonLui The put-call parity follows from $(S_T-K)^+-(K-S_T)^+=S_T-K$ where $K$ is the strike and $S_T$ the stock price at expiration $T$. Of course that stock price does exclude all dividends between $0$ and $T$ (as they are paid). This applies to the call, the put and the forward. I can explain again what I mean with by sweeping bad Monte Carlo convergence under the rug once you tell me that we agree so far about put call parity. $\endgroup$
    – Kurt G.
    Oct 31, 2023 at 15:41
  • $\begingroup$ @KurtG that makes sense $\endgroup$ Nov 3, 2023 at 13:44


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.