Estoy utilizando el paquete RQuantlib para valorar opciones sobre futuros. Con una ligera modificación se puede pasar del Modelo Negro (76) al Modelo BS.
Se puede demostrar fácilmente que si escribimos S0 = (e-rt) * F0 y lo introducimos en el modelo BS obtendremos el mismo valor que si utilizamos el Modelo Negro con F0.
Lo que me molesta es la gamma. Usted ve Gamma cuando no estamos en el dinero es realmente pequeño. También es realmente pequeña si estamos lejos de la madurez y para una combinación de ambos.
Sin embargo, cuando utilizo la función de abajo obtengo un aumento de la gamma para una opción de compra.
¿Podría explicarme por qué utilizando los mismos ejemplos?
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)
Esto da una gamma realmente alta aunque no estemos para nada cerca de la huelga y tengamos 100 años para la madurez:
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
Por otro lado esto da una gamma más pequeña aunque estemos más cerca de la madurez y más cerca del 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