Estoy leyendo Advanced Equity Derivates de Sebastien Bossu e intentando hacer los ejercicios. En el capítulo 1 tenemos la siguiente pregunta :
Consideremos una opción exótica que vence en uno, dos o tres años sobre un subyacente subyacente S con el siguiente mecanismo de retribución:
- Si al cabo de un año S1 > S0 la opción se amortiza 1 + C y se extingue;
- En caso contrario, si al cabo de dos años S2 > S0 la opción se amortiza 1 + 2C y se extingue;
- En caso contrario, si al cabo de tres años S3 > 0,7 × S0 la opción se amortiza máx(1 + 3C, S3S0);
- En caso contrario, la opción se amortiza S3/S0.
Suponiendo S0 = 100 $, tipos de interés y dividendos cero y una volatilidad del 25%, estime el nivel de C para que la opción valga 1 utilizando la simulación de Monte Carlo de Monte Carlo.
En el manual de soluciones da C 12% sin detalles. Ejecuté el siguiente código ( disculpas ya que no es limpio o eficiente, sólo estoy tratando de obtener la respuesta).
import numpy as np
sigma = 0.25
S0 = 100
N = 100000
simuls = []
for _ in range(N):
S1 = S0 * np.exp(-0.5 * sigma**2 + sigma * np.random.normal())
S2 = S1 * np.exp(-0.5 * sigma**2 + sigma * np.random.normal())
S3 = S2 * np.exp(-0.5 * sigma**2 + sigma * np.random.normal())
simuls.append([S1,S2,S3])
coupon = 0.0765
payoff = []
for simul in simuls:
if simul[0]>S0:
payoff.append(1+coupon)
elif simul[1]>S0:
payoff.append(1+2*coupon)
elif simul[2]>0.7*S0:
payoff.append(max(1+3*coupon, simul[2]/S0))
else:
payoff.append(simul[2]/S0)
print(np.mean(payoff))
Me parece que un cupón de alrededor del 7,65% hace que este producto valga 1 ( no resolvió correctamente con la optimización). Como me cuesta ver donde me he equivocado quería saber si habéis encontrado el 12% y en caso afirmativo como ? Muchas gracias de antemano