Cuando estaba usando Monte Carlo para calcular la gamma de una opción de compra vainilla por el método de diferencias finitas, me encontré con esta extraña situación como la siguiente.
Considera esto, $$ Gamma = \frac{CallPrice(S^{up}_{T}) - 2 * CallPrice(S_{T}) + CallPrice(S^{down}_{T})}{dS^2} $$ Y podemos elegir dS lo suficientemente pequeño como para que cuando $$ S_{T}>K \text{ then } S^{down}_{T}>K $$ y $$ S_{T}<K \text{ then } S^{up}_{T}<K $$
Es decir, podemos escribir la fórmula Gamma anterior como $$ Gamma = \frac{(S^{up}_{T}-K)I(S_{T}>K) - 2 * (S_{T}-K)*I(S_{T}>K) + (S^{down}_{T}-K)I(S_{T}>K)}{dS^2} $$ $$ = \frac{(S^{up}_{T} - 2 * S_{T} + S^{down}_{T})I(S_{T}>K)}{dS^2} $$ $$ = \frac{(S_{0}+dS)*exp(...) - 2*S_{0}*exp(...) + (S_{0}-dS)*exp(...)}{dS^2} = 0 $$
Así que cada vez que ejecuto la simulación, siempre obtengo un delta correcto pero una gamma errónea. (¿No es igual a cero tal vez por un error de redondeo?)
Sé que la gamma es distinta de cero, pero no encuentro dónde lo he hecho mal. ¿Alguna ayuda?
Nota: Esta pregunta es un poco similar a esta otra " Griegos: ¿Por qué mi Monte Carlo da un delta correcto pero un gamma incorrecto? ", pero ligeramente diferente.