Estoy tratando de replicar los resultados en Consistent Pricing of FX Options, A. Castagna y F. Mercurio. Sin embargo, cuando calculo los precios de ejercicio para las opciones de venta y compra con delta de 25 y el cajero automático, no puedo obtener el mismo resultado que en el artículo.
Los parámetros indicados en el artículo (p.5):
- T = 94/365
- S = 1.205
- s(ATM) = 0,0905
- s(RR) = -0,0050
- s(BF) = 0,0013
El resultado es s(25dPut) = 0,0943 y s(25dCall) = 0,0893 (ecuaciones 4 y 5 de las páginas 2 y 3).
- K(25dPut) = 1,1733
- K(25dCall) = 1,2487
Los valores que obtengo (ecuaciones 6 y 7 de la pág. 3) son:
- K(25dPut) = 1,16688287...
- K(25dCall) = 1,2421907...
Aquí está mi código Python:
S = 1.205
tau = 94.0 / 365.0
iv_v = 0.0905
rr_v = -0.005
bf_v = 0.0013
for_df = 0.9902752
dom_df = 0.9945049
vol_call = iv_v + bf_v + 0.5 * rr_v
vol_put = iv_v + bf_v - 0.5 * rr_v
alpha = - scipy.stats.norm.ppf( 0.25 * np.exp( (for_df**(-1) - 1) * tau) )
k1 = S * np.exp( - alpha * vol_put * np.sqrt(tau) + ((dom_df**(-1) - 1) - (for_df**(-1) - 1) + 0.5 * vol_put**(2) ) * tau )
k2 = S * np.exp( alpha * vol_call * np.sqrt(tau) + ((dom_df**(-1) - 1) - (for_df**(-1) - 1) + 0.5 * vol_call**(2) ) * tau )
Este código da resultados erróneos, pero no puedo averiguar dónde está el error.