Serving the Quantitative Finance Community

 
User avatar
grafton
Topic Author
Posts: 0
Joined: June 25th, 2004, 5:48 pm

Exact Monte-Carlo of CEV process

June 23rd, 2008, 6:46 am

Hello,Does anyone know a reference describing the exact simulation of a CEV process? (I'm not interested in Euler or other approximate schemes). ALternatively, I'm looking for the distribution at time T of a stock price that follows a CEV process. Glasserman's book points out that the CEV process can be coverted via a change-of-variable into a square-root diffusion. However, the algorithm given in Glasserman for exact simulation of a square-root diffusion (to which he refers the reader after discussing the CEV process) only applies when the drift parameters are of a certain sign. The transofrmed CEV model does not appear to satisfy these parameter constraints.
 
User avatar
Alan
Posts: 3050
Joined: December 19th, 2001, 4:01 am
Location: California
Contact:

Exact Monte-Carlo of CEV process

June 23rd, 2008, 1:45 pm

I don't know a direct reference for that, but the stock price distribution is known in termsof the noncentral chisquared distribution (see Schroder's paper on computing the CEV model).Then, you only need to know how to draw from that, which should be discussed in Glasserman orBrodie & Kaya's 'exact simulation' paper, or elsewhere.p.s. Thinking harder, the stock price distribution for S(T) should be partitioned into two event sets:i) absorption at S=0 has not occurred prior to T; ii) absorption has occurred.Then, you get i) by drawing from the nc chisquared. You get ii) by drawing from the exactabsorption distribution, which is a gamma distribution. Alternatively, if you don't want to simulateii), just use the exact formula for the absorption probability: P_abs(S0,T) and your simulation (schematically) is:S(T) = P_abs(S0,T) DiracDelta(S=0) + (1 - P_abs(S0,T)) (Draw from nc chisquared)regards,
Last edited by Alan on June 22nd, 2008, 10:00 pm, edited 1 time in total.
 
User avatar
grafton
Topic Author
Posts: 0
Joined: June 25th, 2004, 5:48 pm

Exact Monte-Carlo of CEV process

June 26th, 2008, 11:54 am

Thanks Alan, I agree with all of your comments below. I was looking for a reference where I could find the exact form of the non-central chi-squared distribution for ST. But interestingly enough any time I actually found such a reference, there was always some ambiguity / awkwardness with the result. For example, the expression for the degrees-of-freedom is only valid, i.e. positive, for some parameter values (of the CEV process). You would also expect that the price of a call option would easily give you the result since the second term in the expression for the call option price yields Prob(S_T >= K) immediately in terms of an nc chisquare probability. However, the strike, K, is not the argument of the nc probability. Instead it enters the non-centrality parameter. This lead me to believe that distribution of ST is not technically nc-chisquare though it can be expressed in terms of the nc chi-square distribution. And this it turns out is due to the probability of absorption at 0. In fact, as you make clear below, ST is not nc-chisquare distributed. It is conditional on it not-being absorbed at 0.
 
User avatar
Alan
Posts: 3050
Joined: December 19th, 2001, 4:01 am
Location: California
Contact:

Exact Monte-Carlo of CEV process

June 26th, 2008, 3:20 pm

QuoteOriginally posted by: graftonThanks Alan, I was looking for a reference where I could find the exact form of the non-central chi-squared distribution for ST. Eqn (1) in Schroder gives the density for S(T), valid for all S(T) > 0.This is all you need to simulate the call value. p.s.------------------------------------------------------------------------------------------Something like Mathematica would help, but if whatever platform you use has the Bessel function of eqn(1), try coding this (again schematic):Code F(ST) = int_0^ST pdf(x) dx, where pdf(x) = eqn(1) from SchroderDraw ST using the Inverse MethodNow, you should first confirm that F(x) is a defective distribution: F(infinity) = 1 - P_abs(S0,T) < 1.That means that when you make a random draw U such that F(infinity) < U <= 1, then there will be no root.To do this 'bad draw' check, I suggest working out F(infinity) analytically -- it's not too hard.Then, just interpret the bad draws as {S(T) = 0}, hence C(T) = 0, so continue() to the next draw (without a root search) My latest suggestion means: no worrys about nc chisquared implementation/arg restrictions, etc. But, you -do- need: a Bessel function, an integrator, a draw of a uniform variate, and a root finder.To actually implement the integration numerically, you may need to replace thelower limit by some small positive number, say a MachineEpsilon. In Mathematica, this would be about 1 hr project with less than 30 lines of code, I will guess.If you are able to do it this way, please report your success. Or maybe somebody on the board will do it and post some code.
Last edited by Alan on June 25th, 2008, 10:00 pm, edited 1 time in total.
 
User avatar
nielses
Posts: 0
Joined: January 29th, 2003, 1:07 pm

Exact Monte-Carlo of CEV process

December 2nd, 2008, 3:13 pm

You might find this document useful:Constant Elasticity of Variance (CEV) Option Pricing Model: Integration and Detailed DerivationsNiels