2
$\begingroup$

I'm trying to price a forward start option with payoff $\Big(\dfrac{S_{T_2}}{S_{T_1}}-1\Big)^+$ with Heston Monte Carlo.

Heston Model: $$ dS_t = rS_tdt + \sqrt{v_t}S_tdW_t^1$$ $$ dv_t = \kappa(m-v_t) + \alpha\sqrt{v_t}dW_t^2$$ The Heston parameter I use is: $\{v_0=0.01,\kappa=1,m=0.01,\alpha=1.5,\rho=-0.6\}$.

I have implemented the QE scheme to do the simulation and get $N$ simulated paths ($M$ time step): $S_k^i$ and $v_k^i$ ($i=1...N$, $k=1...M$).

Assuming $r=q=0$, the obvious way to calculate the price is: $$p = AVG_{i=1...N}\Big[\Big(\dfrac{S_{k(T_2)}^i}{S_{k(T_1)}^i}-1\Big)^+\Big]$$

However, this is another way I can understand this question:

\begin{align*} p &= E\Big[\Big(\dfrac{S_{T_2}}{S_{T_1}}-1\Big)^+ \Big|\mathbb{F}_0\Big]\\ &= E\Big[E\Big[\Big(\dfrac{S_{T_2}}{S_{T_1}}-1\Big)^+ \Big|\mathbb{F}_{T_1}\Big]\Big|\mathbb{F}_0\Big]\\ &= AVG_{i=1...N}\Big[ HestonCall(S_0=1,K=1,T=(T_2-T_1),hestonparam=\{v_0=v^{i}_{k(T_1)},...\}) \Big] \end{align*} where $'...'$ means the other Heston parameters remain unchanged.

Based on my understanding, these two methods should give the same result. However, they are not.

There must be something wrong with the way I come up with the second method, but I completely got stuck here. Could anyone help to point out which part is wrong? Thanks a lot!

$\endgroup$
2
  • 1
    $\begingroup$ They should indeed give the same results 'asymptotically' (when the number of simulations tends towards the infinity). But the second method is more accurate: when you condition on $F_{t_1}$ and use the (semi-)analytic price of a call under BS, it would be the MC equivalent of running a nested MC simulation starting from that point. Of course when you say "same results" it should be understood in the MC estimator sense: the results should converge to the same value within the standard MC error of each procedure: did you track the results + their confidence intervals? $\endgroup$
    – Quantuple
    Aug 26, 2021 at 7:49
  • $\begingroup$ Thanks for your reply! I double check my code carefully and there is indeed an error causing this. They can match very well now! $\endgroup$
    – Dovie Chu
    Aug 26, 2021 at 21:29

1 Answer 1

1
$\begingroup$

They should be the same. Compare against this python code, Mathematical Modeling and Computation in Finance

$\endgroup$
1
  • $\begingroup$ Thanks for your reply! The closed form Heston pricer helps a lot. I fixed the bug in my code and they can match very well now! $\endgroup$
    – Dovie Chu
    Aug 26, 2021 at 21:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.