Este es un ejercicio del libro de Mark Joshi (ejercicio 3.6):
Una acción vale 100. Cada mes su valor aumenta o disminuye por exactamente 10. El bono sin riesgo vale $e^{rt}$ en el momento t años con r igual al 5% El precio de una opción de venta europea a cuatro meses se fijó en 110.
Al final del libro, Joshi proporciona la solución 13.06. Desafortunadamente eso no es lo que encuentro: Yo obtengo 15.22. Como Joshi no muestra su cálculo, me pregunto de dónde viene la diferencia. Utilizo el siguiente Python script para el cálculo:
import math
def get_risk_neutral_prob(S, S1, S2, r, delta_t):
Sp = max(S1, S2)
Sm = min(S1,S2)
if Sm == Sp:
return 1/2
return (math.exp(-r*delta_t) * S - Sm)/(Sp-Sm)
def payoff(S):
return max(110-S, 0)
r = 0.05
delta_t = 1/12
def get_price(S, N):
if N == 0:
return payoff(S)
S1 = S+10
S2 = S-10
p = get_risk_neutral_prob(S, S1, S2, r, delta_t)
return math.exp(-r*delta_t) * (p * get_price(S1, N-1) + (1-p) * get_price(S2,N-1))
print(get_price(100,4))
Como puede ver, mi cálculo es sencillo. Primero calculo la probabilidad de riesgo neutro, y luego el valor esperado descontado del pago, recursivamente.
Durante un mes, lo hice a mano y mi resultado, 10.372, concuerda con lo que el script me dice.