0
$\begingroup$

There are numerous numerical solvers for American option pricing. However, all of them take as input a fixed value sigma, denoting the historical volatility of the underlying. I am looking for a solver for which I can specify the volatility as a function, i.e. I want to price the underlying \begin{equation} dX = (r-q) X dt + \sigma(X) dW_t. \end{equation} Under the risk neutral measure, the drift is just the difference in risk free rate and dividends. I want to have a pricing method for arbitrary function $\sigma(X)$. Is there a numerical method that does exactly that?

$\endgroup$
  • 1
    $\begingroup$ What is $X$ - the underlying asset or its logarithm? $\endgroup$ – LocalVolatility Oct 6 '16 at 9:53
  • $\begingroup$ Good question. I guess OP made a typo and it should read $dX_t/X_t$ on the LHS. I would suggest least-squares Monte Carlo as the method of choice here. Note that even for European options there are no closed-form formulas under this particular modelling assumption. Some approximations exist though, see the work of Berestycki, Busca & Florent, 2001: $$\sigma_{BS}(T,K) \approxeq \frac{\ln\left(\frac{S_0}{K}\right)}{\int_K^{S_0}\frac{1}{s \sigma(s)} ds}$$ $\endgroup$ – Quantuple Oct 6 '16 at 11:11
  • $\begingroup$ Your answers have helped me understand that what I am looking for is a numerical implementation of an option pricing algorithm that handles local volatility models. $\endgroup$ – user56643 Oct 7 '16 at 8:49
0
$\begingroup$

The process that you are considering is a special case of a local volatility model

\begin{equation} \mathrm{d}X_t = \mu X_t \mathrm{d} t + \sigma \left( t, X_t \right) X_t \mathrm{d}W_t. \end{equation}

I.e. you seem to consider a special case where the volatility is not time but only spot dependent. When you refer to American options, I suppose you mean "American plain vanilla options". In this case, the natural choice of pricing engine for me would be finite-difference methods. See e.g. Chapter 78.9 in Wilmott (2006) for a gentle introduction.

As you asked for a "solver" I suppose you are looking for a library that could price under these dynamics. You could have a look at QuantLib - they have a finite difference engine that supports local volatility.

References

Wilmott, Paul (2006) "Paul Wilmott on Quantitative Finance", 2nd Edition, John Wiley & Sons

$\endgroup$
  • $\begingroup$ Local volatility model was the keyword. Would you know where the pricing of that model is explained in Quantlib? $\endgroup$ – user56643 Oct 19 '16 at 14:35
  • $\begingroup$ I am not using QuantLib too frequently but a good place to start is by looking at the unit tests. You could for example start with EuropeanOptionTest::testLocalVolatility(). Getting it to price American vanillas is probably a one line change. $\endgroup$ – LocalVolatility Oct 19 '16 at 15:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.