How to compute greeks using the adjoint Monte Carlo approach?

Assume I have a stochastic ODE $$dS = a(S)dt + b(S)dW,$$ with Euler approximation $$\hat{S}_{n+1}=F_n(\hat{S}_n)=\hat{S}_n+a(\hat{S}_n)h+b(\hat{S}_n)Z_n\sqrt{h}.$$ This allows me to create sample paths based on drawing normally distributed random numbers $Z_n$ from $N(0,1)$.

Now the estimated value of my option is $$\hat{V}=\frac{1}{N}\sum_i f(S^i_T)$$ where $f$ is the payoff function and $S^i_T$ is the i-th sample path of the process at time $T$.

Assume the ODE and $f$ have various parameters, for example starting value $S_0$, risk-free interest rate $r$ and volatility $\sigma$. Furthermore, f is sufficiently continous such that the derivatives

$$D_n=\frac{\partial F_n(\hat{S}_n)}{\partial \hat{S}_n }$$

exist.

Based on these quantities, how can I compute sensitivities using the adjoint method?

• Very interesting question - could you insert a link to what the "adjoint method" or "adjoint MC method" is? Commented Jan 20, 2014 at 12:11
• Furthermore: with "sensitivities" you mean something like the Greeks or more general derivatives w.r.t. to certain parameters. Have you heard of Malliavin-calculus? Commented Jan 20, 2014 at 12:12

We set out a general scheme for doing this sort of thing in our paper

http://ssrn.com/abstract=1401094

and its sequel

http://ssrn.com/abstract=1437847

Whilst the case studied is different, the techniques are the same. I also discuss in detail the whole process in a chapter of More Mathematical Finance.

The adjoint method when it applies is generally better than alternatives such as likelihood ratio and Malliavin calculus.

• Could you perhaps give some outline of the method to answer the question. Although it is appreciated when references are given it is generally not enough for a good answer - Thank you. Commented Feb 26, 2015 at 6:39
• that would be rather long.. the essential idea is that you break up the function into very simple operations and then compute each step's sensitivities using the chain rule. Commented Feb 26, 2015 at 20:56
• So basically you are using automatic differentiation (AD)? Commented Apr 24, 2016 at 12:00

If you want a simple example which you can easily reproduce in a spreadsheet, look at section 3 of the paper "Adjoints and automatic (algorithmic) differentiation in computational finance by Christian Homescu. Table 1 is wrong though but you should be able to generate the same numbers using all 4 methods

1) Finite Difference 2) Complex Step 3) Tangent Linear 4) Adjoint

Good Luck !