September 13th, 2014, 3:30 pm
QuoteOriginally posted by: solalConsider an underlying S under local volatility modelling, S follows the stochastic differential equation[$] \frac{dS}{S} = r dt + \sigma (t, S) dW_t [$]For each [$]t[$], we know the distribution of [$]S_t[$] via the implied volatility.What is the simplest way to compute the distribution of[$] \max_{t \in [0;T]} {S_t} [$]Good.Given your SDE, I believe a one-factor PDE approach is relatively simple (in Mathematica, for example, as mentioned).Let [$]M_T = \max_{t \in [0;T]} {S_t}[$] and denote the corresponding density by [$]q_{M_T}(m) = Pr\{M_T \in dm\}/dm[$].Now consider a knock-out barrier option which pays 1 at expiration T unless [$]S_t[$] crosses b prior to T, where [$]b > S_0[$].The time-0 (undiscounted) value of that option is(*) [$]v(T,S_0;b) = E_0[1_{\{\tau_b > T\}}] = Pr\{M_T < b\} = \int_{S_0}^b q_{M_T}(m) \, dm[$], where [$]\tau_b[$] is the time of the first barrier hit.You can compute [$]v(T,S;b)[$] by solving a PDE problem for a closely related [$]u(t,S;T,b)[$], namely (**) [$]u_t + \frac{1}{2} \sigma^2(t,S) S^2 u_{ss} + r S u_s = 0[$], with terminal condition [$]u(T,S;T,b) = 1, (S< b)[$] and bc [$]v(t,b;T,b)=0, (0 \le t \le T)[$]Then, [$]v(T,S_0;b) = u(0,S_0;T,b)[$]. Like I said, setting up (**) is relatively easy with NDSolve.If you're happy having the distribution, then with (*) you're done (just rerun your code for various b).If you want the density, use[$]q_{M_T}(b) = \frac{\partial v}{\partial b}[$]. This last eqn can be found with a simple finite difference approximation, simply running your PDE code from [$]b = S_0 + \epsilon[$] to [$]b = LARGE[$] in steps [$]\Delta b = \epsilon[$]. ===========================================================================p.s. Note [$]q_{M_T}(b)[$] will have a Dirac mass at [$]b = S_0[$], but I don't think this is problematic for any of the last numerical steps.For all [$]b > S_0[$] it should be continuous, assuming [$]\sigma(t,S)[$] is (guessing here) at least continuous and bounded away from 0 and [$]\infty[$].
Last edited by
Alan on September 13th, 2014, 10:00 pm, edited 1 time in total.