Why Black-Scholes Gamma Changes with Forward Moneyness
Summary
The document investigates an apparent increase in call-option gamma when a Black-Scholes routine is used to represent options on futures. The setup discounts the futures price before passing it as the underlying, then compares options with the same spot and strike but different maturities. The accepted explanation is that the comparison does not preserve forward moneyness: with a positive interest rate, the forward price rises relative to the strike as maturity grows, even when spot begins at the strike.
Gamma depends on the option’s moneyness as well as time and volatility. The examples therefore compare substantially different positions in the pricing distribution, so they do not establish that longer maturity itself raises gamma. The answer contrasts this with Black-76 calculations set at the money forward, where the shorter maturity has greater gamma in the cited examples. The explanation is specific to the stated rate, maturity, and model setup; the practical lesson is to align forward moneyness before interpreting Greek comparisons.
Key ideas
- Comparing options at the same spot-to-strike ratio does not ensure they have the same forward moneyness.
- With positive rates, a longer maturity can move the forward price farther from the strike even when spot starts at the strike.
- Gamma comparisons must account for moneyness in addition to maturity and volatility.
- The cited Black-76 comparison holds the option at the money forward and shows higher gamma for the shorter-dated example.
Tags
Full text
# Need explanation on weird Gamma Behaviour Black Formula
# Need explanation on weird Gamma Behaviour Black Formula
I am using the RQuantlib package to price options on futures. With a slight modification one can go from the Black Model (76) to The BS Model.
It can easily be shown that if we write S0 = (e-rt) * F0 and then we input this into the BS model we will get the same value as if we used the Black Model with F0.
What is bothering me is the gamma. You see Gamma when we are not at the money is really small. It is also really small if we are far away from maturity and for a combination of both.
Yet, when I use the function below I get an increase in gamma for a call option.
Could you please explain why to me using the same examples:
```
require(RQuantLib)
european_option <- function(type, underlying, strike, riskFreeRate, maturity, vol){
underlying <- underlying * exp(-riskFreeRate * maturity)
EuropeanOption(type = type, underlying = underlying, strike = strike, maturity = maturity, volatility = vol, dividendYield = 0, riskFreeRate = riskFreeRate)
}
european_option("call", 100, 100, 0.10, 100, 0.4)
```
This gives a really high gamma even though we are not close to the strike at all and we have 100 years to maturity:
```
0.004539993
Concise summary of valuation for EuropeanOption
value delta gamma vega theta rho divRho
0.0043 0.9772 2.9731 0.0025 0.0000 0.0103 -0.4437
```
On the other hand this gives a smaller gamma even if we are closer to maturity and more close to the srike:
```
european_option("call", 100, 100, 0.10, 10, 0.4)
[1] 36.78794
Concise summary of valuation for EuropeanOption
value delta gamma vega theta rho divRho
17.3974 0.7365 0.0070 37.9976 -1.7295 96.9527 -270.9268
```
## Answer by ZRH (score 2, accepted)
https://quant.stackexchange.com/a/44798
If the function "european_option" implements the Black Scholes formula (as opposed to Black76), then you are not really comparing like for like. The moneyness term in the expression
$d_1=\frac{ln\frac{F}{K}+0.5\sigma^2 T}{\sigma\sqrt{T}}$
is entirely different. As I see it, you are using a very high rate of 10%. So for the 100-year option, $ln(\frac{F}{K})=ln(\frac{Se^{100*10\%}}{K})=ln(\frac{S}{K})+100*10\%=ln(\frac{S}{K})+10$. For your choice of a spot-at-the-money option, the first term drops away, so $ln(\frac{F}{K})=10$. For the ten-year option, $ln(\frac{F}{K})=1$. So the moneyness of the options you are looking at is vastly different.
When I set F=K=100 (so an ATMF option), all else the same as you have and use Black76, I see $\Gamma=9.5*10^{-4}$ for the ten-year option, and $\Gamma=6.13*10^{-9}$ for the hundred-year option, in line with expectation (shorter-dated option has larger gamma). So I think it is really down to the fact that you compare options with different moneyness.
EDIT: For your reference, I use the following formula to get above numbers:
$\Gamma=e^{-rT}\frac{\phi(d_1)}{F\sigma\sqrt{T}}$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.