Skip to content
All library documents

Monte Carlo Gamma Estimation and Discontinuous Option Payoffs

Article Quant Q&A · Author: zzhengnan

Summary

The document discusses why a Monte Carlo estimate of a European call’s gamma can vary substantially even when the estimated price and delta appear correct. It focuses on a central finite-difference estimate, which subtracts nearby option prices and divides by the squared spot bump. Price estimation error is therefore amplified as the bump becomes small.

One explanation is the call payoff’s kink: only a small set of simulated paths near the strike drives the second derivative, and the pathwise second derivative behaves like a point mass. This makes direct pathwise gamma estimation unstable or misleading. Suggested responses include increasing the number of paths or bump size, choosing a payoff with a smoother second derivative, and considering adjoint algorithmic differentiation. The discussion gives qualitative explanations rather than a comparison of methods or measured performance, and it does not prescribe a universally optimal bump or simulation size. Results depend on the estimator and implementation.

Key ideas

  • A vanilla call’s payoff has a discontinuous first derivative at the strike, complicating pathwise gamma estimation.
  • A small spot bump can magnify Monte Carlo price error because the finite difference divides by the bump squared.
  • Paths near the strike can dominate the estimated second derivative and produce high variability.
  • Possible approaches include increasing the path count or bump size, smoothing the payoff, or using adjoint differentiation.

Tags

Full text
# Greeks: Why does my Monte Carlo give correct delta but incorrect gamma?


# Greeks: Why does my Monte Carlo give correct delta but incorrect gamma?












For a vanilla European call, my Monte Carlo method gives the right option price and delta but the wrong gamma. In particular, the value of gamma varies wildly each time I run the method. I estimate gamma by $$ \Gamma = \frac{C(S+\Delta S,K,T,\sigma,r) - 2C(S,K,T,\sigma,r) + C(S-\Delta S,K,T,\sigma,r)}{(\Delta S)^2} $$ Here's my Matlab code. Could anyone tell me what I'm doing wrong? Thanks.

## Answer by Mark Joshi (score 10)

https://quant.stackexchange.com/a/18220

the problem is that the pay-off has discontinuous first derivative. Try a contract with pay-off that is twice differentiable and it will probably work.

The problem is that all the value comes from the tiny number of paths within $\Delta S$ of the strike, and these paths have huge value.

This is a well-known problem. As the bump size goes to zero, the pathwise value converges to differentiating along the path twice. Since the second derivative is a delta function, you get nonsense. A huge amount of work has gone into coping with discontinuities for the pathwise method. See eg http://ssrn.com/abstract=2431580

## Answer by ocstl (score 2)

https://quant.stackexchange.com/a/18211

It's a combination of too few sample paths and/or too small an increment.

Your estimation error on the price is magnified by the $dS^2$. Try using a larger sample or a larger increment. Alternatively, you can use a multiplier instead of a fixed increment; in my experience, it usually yields better results.

## Answer by phubaba (score 1)

https://quant.stackexchange.com/a/18234

consider adjoint algorithmic differentiation to get an exact derivative here. Works especially well for monte carlo. Here is an example paper: http://luca-capriotti.net/pdfs/Finance/jcf_capriotti_press_web.pdf

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.