Saturday, October 13, 2012

Computational Finance review note

OK, I will be updating this post as if it's a live blog

For vanilla call option pricing using simple MC method

    the stochastic process that drives stock price:

$$ \frac{dS_{t}}{S_{t}} = r dt + \sigma dW_{t}$$

    If we are to produce the final stock price with one step:

$$ \log S_{T} =\log S_{0}+(1+r-\frac{1}{2}\sigma^{2})T + \sigma W_{T}$$

where  $ W_{T} = \sqrt{T}*N(0,1)$

For each S(T), the payoff function is  $(S_{T}-K)^{+}$

So use a random generator to draw a big-enough set of normal random numbers and derive the final stock prices, the MonteCarlo estimator for the call option is:

$$ \frac{1}{N} \sum_{i=1}^{N} (S_{T(i)}-K)^{+} $$

And this is the most simple one. Convergence is slow. Variance is high. And one key point: if the option is path-dependent, say a knock-out or an Asian, generating final stock prices this way will surely fail the calculation.

    So we want something more finer tuned.It's a good idea to generate the random path step-by-step. Say to generate a one-year stock price random path by 252 steps, or even more.There are some ways to do this kind of finite difference :
For the SDE:
$$ dS(t) = a(t, S(t)) dt + b(t, S(t)) dW(t), t\geq 0 $$
Euler scheme: 
$$ S(t+dt) = S(t)*((1+a*dt)+ b*(W(t+dt)-W(t))) $$
This would only simulate the stochastic process up to order 1 of the taylor expansion. The effect should not be good.
Milstein scheme:
$ S(t+dt) = S(t)*((1+a*dt) + b*(W(t+dt)-W(t))) + \frac{1}{2}*b*\frac{\partial b}{\partial S(t)} *[(W(t+dt)-W(t))^{2}-(dt)] $

Looks nicer, but there is a major disadvantage, if S(t) is a $ R^{d} $ valued process with $d\geq 2$, the $b(t,S)$ could be hard to be differentiable with respect to S.

However, the Milstein scheme has a higher order of convergence compared to Euler scheme.

Sorry I have to update this post later this week given I have another two mid-terms coming up....

See you guys



1 comment: