Hello,Can anyone suggest a paper or source that provides European option prices under Heston that have been computed to high precision (10 decimal places) for a range of strikes?I need something to compare an implementation to. Can always compute via the standard methods, but useful if there's an existing reference set to compare to.Many thanks

Just ran my codes in Mathematica at high precision:dS = (r - q) S dt + sqrt{V} S dW1dV = (a - b V) dt + c sqrt{V} dW2dW1 dW2 = rho dtr = 1/100, q = 2/100, S0=100, T=1, V0 = 4/100, a=1, b=4, c=1, rho= -1/2 Various strikes K below: (put, then call)80 7.95887811325676828521326307759898719348216130173326.7747587439988542213821953257269492016870748483419012.01796670734630498770957329023647165499207130818720.93334900059671038813944576656406808547619404225610017.05527096127010941352265399941100097489543630918316.07015491702883427821346670393823182765876823071411023.01782589844280053890878183482256077776322572218812.13221151670984486786053476754942605280576683118112029.8110262026824718433406822931658574391673013706979.024913483457835636553375454092357136489051667150With WorkingPrecision=50, I asked Mathematica for 20 good digits, which means thesenumbers should be good for about that. So treat the remaining digits as "noise". The Fourier integral cutoff was set to Infinity, so that should not be a source of error.Perhaps other board members can confirm, say, the first 20 digits.

Last edited by Alan on May 29th, 2012, 10:00 pm, edited 1 time in total.

Thanks Alan - I will compare! Are you using the generalised Fourier method or the original pricing formula? Also, what's your view on a good choice for the contour parameter in the case of the former?

I use eqn (2.10) in my book, which is likely what you (and sometimes I, too) call the generalized Fourier. It is the same as eqn (3.10) in "A SIMPLE OPTION FORMULA FOR GENERAL JUMP-DIFFUSION AND OTHER EXPONENTIAL LÉVY PROCESSES"The contour is Im z= 1/2, exactly half-way between the poles of the integrand.

Last edited by Alan on May 29th, 2012, 10:00 pm, edited 1 time in total.

I forget, but is there a numerical advantage over (3.10) to (3.5)? Clearly one advantage is you no longer have to think about the best choice of v and v=0.5 works well.

For the call option payoff, (3.10) means a contour with 1 < Im z < a. But, then you haveto check that an "a" exists such that Phi(-z) [the char function] is analytic in that strip. This is problematic for the Heston model and many others as there are singularities for Im z > 1and Im z < 0. Technically, the strip exists, but the legal a = a(T) and it is a waste of time to compute itfor this purpose.So, it is uniformly better for all models to stick to contours in 0 < Im z < 1.Phi(-z) is analytic in that one for all reasonable models.

Last edited by Alan on May 29th, 2012, 10:00 pm, edited 1 time in total.

Hi AlanI've priced these instruments with QuantLib (C++ lib, double precision on ia32) .The relative difference between your values and the QL results is always smaller than 3*10^-15.

I'm also in agreement (to 12 decimal places) which is as far as my implementation will need to go.Many thanks again.

- JustusQuant
**Posts:**20**Joined:**

Hi all,I am currently writing a paper on the Heston SV Model and in this context comparing different representations. I implemented the approaches of Heston, Carr Madan (with and without FFT) and the Cosine Method.With all 3 methods I get results very similar to those posted by Alan. Compared to the results in Rouah (2013) on page 140, however, I tend to have some bias.Model set up:dS/S = (r-q)*dt + sqrt(V)*dW1dV = k(theta-V)*dt + sigma*sqrt(V)*dW2dW1dW2 = rho*dtParameters: S0 = 50, K = [41.4102, 44.0956, 46.9551, 50, 53.2424, 56.695, 60.3716], k = 0.2, theta = V0 = 0.05, sigma = 0.3, rho = -0.7 Remarks:-for Heston and Carr Madan I used a 32 point gauss laguerre quadrature for integration (Rouah used the same technique)-for The Carr Madan approach I used alpha = 1.5-for the COS approach I used [a,b] = [-300,300] and N = 2^15 to get accurate results for OTM optionsResults for European Call Option:Rouah: _________[8.6378, 6.4765, 4.4453, 2.6778, 1.3269, 0.502, 0.1421]My COSINE:_____[8.63813, 6.47604, 4.44533, 2.67824, 1.32661, 0.50194, 0.14228]My CM (w/o FFT):_[8.63800, 6.47604, 4.44549, 2.67805, 1.32670, 0.50189, 0.14233]My Heston:______[8.63811, 6.47604, 4.44538, 2.67815, 1.32671, 0.50179, 0.14241]I would be very grateful if anyone could confirm either my or Rouah's results (I could also post additional digits to my results, if needed). Many thanks in advance!

Last edited by JustusQuant on June 14th, 2014, 10:00 pm, edited 1 time in total.

- JustusQuant
**Posts:**20**Joined:**

Maybe someone could answer me this question:How can I get heston model reference prices for my paper? My ideas:-I could consider the special case v0 = theta, rho = 0 and sigma -->0 which corresponds to the black scholes model with implied volatility sqrt(v0).(Problems: The results would probably not be representative for other parameter combinations)-I could do a MC simulation in matlab.(Problems: Computationally expensive and some error will remain)-I could use reference prices from other papers(Problems: My values do not converge to the prices from Rouah (2013, p.140) and I can't find many appropriate reference prices in other papers)I would appreciate any other idea and/or comment on my thoughts.PS: If someone is actually interested in comparing model results regarding the three approaches mentioned before (Heston, Carr Madan and COS), I could share my matlab/c++ code.

Last edited by JustusQuant on June 28th, 2014, 10:00 pm, edited 1 time in total.

Here you go -- my codes on the parameter set of Rouah Table 5.4 (pg 140), with a good chance all digits accurate:Strike Call Price41.4102 8.6381234744.0956 6.4760300446.9551 4.4453726650.0000 2.6781582653.2424 1.3267273956.6950 0.5018050260.3716 0.14241356My presumption is that the strike is exact as shown, so that if you added digits to the display of it, they would all be zeros.I used Mathematica at high precision, giving the strikes as 414102/10000, etc,WorkingPrecision=26, and AccuracyGoal=PrecisionGoal=12 in the integration. Setting the Fourier integral cutoff zmax to Infinity is causing meproblems, so I am using zmax = 500000, and conservatively just showing a 8-9 digit result.

Last edited by Alan on June 28th, 2014, 10:00 pm, edited 1 time in total.

- JustusQuant
**Posts:**20**Joined:**

Hi Alan, thank you very much for your help!

This thread is very useful.One thing I have found is that small $T$ and small $V_0$ render the problem challenging.Would it be possible to get some reference prices with $T=V_0 =0.01$ ?