Hi,
I have implemented a Monte Carlo engine for Heston, but the convergence is not so good in my view. I am pricing a 5Y european down in put option. The calibration is almost perfect (less than 1bps in average), but the convergence of the simulation is quite poor. As you can see in the following table, the price swings if I increase the number of steps by year. Steps by year Price 4 14.90% 10 14.12% 20 14.13% 30 13.39% 50 13.58% 100 14.67% 200 14.17% 300 13.71% 350 13.87% 400 14.25% Since it is European, the convergence should be quick and the result should not depend so much on the Time steps by year. I have enclosed the calibrated parameters of Heston. Name Heston Spot 3730.65 Integration 64 V0 7.76% Kappa 188.03% Theta 9.19% Sigma 65.26% Rho -95.49% Do you know why there is no stability there? Is there any trick to make it stable? I have also a question regarding the antithetical variables. Is there anything else to do to use it of just say QL to draw them? Cheers |
To the actual questions, I would like to ask if someone has the experience of control variate in QL framework?
I would like to code delta and gamma control variate to reduce the error, btu if someone has an example, it would be great... Cheers
|
In reply to this post by Lapin
Hi,
which discretization scheme are you using? I'd guess it is an Euler scheme. Then the variance might become negative and the handling of this case becomes important (especially if the Feller condition 2*\kappa*\theta > \sigma^2 is not satisfied as given in your example). See e.g. Lord, R., R. Koekkoek and D. van Dijk (2006), "A Comparison of biased simulation schemes for stochastic volatility models", Working Paper, Tinbergen Institute I've priced a plain vanilla 5y Put using the different schemes implemented in the QuantLib (statistical error is less than 0.1): Analytic: 14.85 Steps per Year Price Reflection: 4 18.1309 10 16.5496 20 15.7693 30 15.5687 50 15.2635 100 15.1317 200 14.8237 400 14.8705 Partial Truncation: 4 15.6779 10 15.0697 20 14.8666 30 14.8708 50 14.8177 100 14.8743 Full Truncation: 4 14.9263 10 14.8888 20 14.8053 30 14.8381 50 14.8021 100 14.8712 ExactVariance: 4 14.6654 10 14.7186 20 14.7609 30 14.8446 50 14.8757 100 14.8623 FullTrancation and ExactVariance are much better than the often mentioned Reflection scheme. The barrier monitoring will lead to an additional discretization error. I'm using a brownian bridge to approximate the transistion probability between two time steps. cheers On Friday 15 February 2008 18:04:40 Yomi wrote: > Hi, > > I have implemented a Monte Carlo engine for Heston, but the convergence is > not so good in my view. > I am pricing a 5Y european down in put option. > The calibration is almost perfect (less than 1bps in average), but the > convergence of the simulation is quite poor. > > As you can see in the following table, the price swings if I increase the > number of steps by year. > > Steps by year Price > 4 14.90% > 10 14.12% > 20 14.13% > 30 13.39% > 50 13.58% > 100 14.67% > 200 14.17% > 300 13.71% > 350 13.87% > 400 14.25% > > Since it is European, the convergence should be quick and the result should > not depend so much on the Time steps by year. > I have enclosed the calibrated parameters of Heston. > > Name Heston > Spot 3730.65 > Integration 64 > V0 7.76% > Kappa 188.03% > Theta 9.19% > Sigma 65.26% > Rho -95.49% > > > Do you know why there is no stability there? Is there any trick to make it > stable? > > I have also a question regarding the antithetical variables. > Is there anything else to do to use it of just say QL to draw them? > > Cheers -- Klaus Spanderen Ludwig Erhard Str. 12 48734 Reken (Germany) EMail: [hidden email] (remove NOSPAM from the address) ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Hi Klaus,
Indeed since the Feller condition is not verified, the Volatility reaches a negative value. I am now trying to add a constraint to verify the Feller condition, but heston does not calibrate anymore... I will keep you posted anyway. Cheers
|
Free forum by Nabble | Edit this page |