SERVING THE QUANTITATIVE FINANCE COMMUNITY

tibbar
Topic Author
Posts: 554
Joined: November 7th, 2005, 9:21 pm

### Heston - Reference Prices

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

Alan
Posts: 9366
Joined: December 19th, 2001, 4:01 am
Location: California
Contact:

### Heston - Reference Prices

Just ran my codes in Mathematica at high precision:

dS = (r - q) S dt + sqrt{V} S dW1
dV = (a - b V) dt + c sqrt{V} dW2
dW1 dW2 = rho dt

r = 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.958878113256768285213263077598987193482161301733
26.774758743998854221382195325726949201687074848341

90
12.017966707346304987709573290236471654992071308187
20.933349000596710388139445766564068085476194042256

100
17.055270961270109413522653999411000974895436309183
16.070154917028834278213466703938231827658768230714

110
23.017825898442800538908781834822560777763225722188
12.132211516709844867860534767549426052805766831181

120
29.811026202682471843340682293165857439167301370697
9.024913483457835636553375454092357136489051667150

With WorkingPrecision=50, I asked Mathematica for 20 good digits, which means these
numbers 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

tibbar
Topic Author
Posts: 554
Joined: November 7th, 2005, 9:21 pm

### Heston - Reference Prices

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?

Alan
Posts: 9366
Joined: December 19th, 2001, 4:01 am
Location: California
Contact:

### Heston - Reference Prices

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

tibbar
Topic Author
Posts: 554
Joined: November 7th, 2005, 9:21 pm

### Heston - Reference Prices

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.

Alan
Posts: 9366
Joined: December 19th, 2001, 4:01 am
Location: California
Contact:

### Heston - Reference Prices

For the call option payoff, (3.10) means a contour with 1 < Im z < a. But, then you have
to 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 > 1
and Im z < 0. Technically, the strip exists, but the legal a = a(T) and it is a waste of time to compute it
for 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

tibbar
Topic Author
Posts: 554
Joined: November 7th, 2005, 9:21 pm

### Heston - Reference Prices

Thanks - it is quite a beautiful formula :-)

wilson2
Posts: 20
Joined: May 6th, 2009, 12:23 pm

### Heston - Reference Prices

Hi Alan

I'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.

Alan
Posts: 9366
Joined: December 19th, 2001, 4:01 am
Location: California
Contact:

### Heston - Reference Prices

wilson2, thanks for the check.

tibbar
Topic Author
Posts: 554
Joined: November 7th, 2005, 9:21 pm

### Heston - Reference Prices

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: June 14th, 2014, 9:59 pm

### Heston - Reference Prices

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)*dW1
dV = k(theta-V)*dt + sigma*sqrt(V)*dW2
dW1dW2 = rho*dt

Parameters: 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 options

Results 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

JustusQuant
Posts: 20
Joined: June 14th, 2014, 9:59 pm

### Heston - Reference Prices

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

Alan
Posts: 9366
Joined: December 19th, 2001, 4:01 am
Location: California
Contact:

### Heston - Reference Prices

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 Price
41.4102 8.63812347
44.0956 6.47603004
46.9551 4.44537266
50.0000 2.67815826
53.2424 1.32672739
56.6950 0.50180502
60.3716 0.14241356

My 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 me
problems, 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

JustusQuant
Posts: 20
Joined: June 14th, 2014, 9:59 pm

### Heston - Reference Prices

Hi Alan,

thank you very much for your help!

mj
Posts: 3449
Joined: December 20th, 2001, 12:32 pm

### Heston - Reference Prices

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$ ?