# calculate gamma value using finite difference method

I try to use the finite difference method to get the approximately gamma value, but there is an issue I can't solve.

First, I set $h$ to 1 basis point of underlying asset value, but the result is not right; then I use market value of gamma find $h$ to compare it with my original setting. I found the different value of underlying assets give different h. For example, to get market gamma, 500 underlying asset should set h to 0.35 basis point of underlying value and 20 underlying asset should set h to 0.58 basis point of underlying value.

How to set the step size(h) for the finite difference method? I wonder if there is a $h$ to optimal result.

The formula I used:

   f(x)'' = (f(x+h)-2*f(x)+f(x-h ))/h^2


The problem with your formula is the equation sign $=$. The second order finite difference is only an approximation to the true gamma:

$$f^{\prime \prime}(x) \approx \frac{f(x+h)-2f(x)+f(x-h)}{h^2}.$$ $h$ can not be a result. Ideally, it should be small (whatever that means), so your original choice of $1\text{bp}$ seems appropriate for this approximation.

To test the approximation, I would calculate the theoretical option Gammma from the BS-Model, then the approximation for smaller and smaller values of $h$. If it converges, the implementation is correct. Then, you can worry about other, more subtle, things.

Probabtly one of the more subtle points in this context is the notation. It is unclear what is meant by $f(x+h)$. For a simple approximation of a smooth functions derivative, everything is clear. Since we know that with a price increase, at least the implied volatility will change as well (as the moneyness of the option changes). Departing from the black-scholes-framework for some it might be more appropriate to calculate something like this:

$$f^{\prime \prime}(x) \approx \frac{f_{\text{up}}(x+h)-2f(x)+f_{\text{down}}(x-h)}{h^2}.$$ where $f_{\text{up}}$ and $f_{\text{down}}$ are different from $f$. Simply because the other parameters of the pricing function implicitly depend on the (changed) stock price.

• This work for an explicit/precise f. This won't work for more complex option / monte carlo method. – were_cat Jun 11 '14 at 23:22

I'd say that the shock size depends on the situation/asset. If your model produces somewhat noisy PVs, it is advisable to use a slightly larger $h$ to avoid numerical issues. You may also want to base your decision on empirical hedging performance. This may or may not help, but most bond index providers (Citi/Barclays) use a shock size of 25bp when reporting effective durations & convexities.