Python QuantLib'de SABR Model Fiyatlandırma Motoru
Sep 04 2020
Python QuantLib ayarında bir SABR model fiyatlandırma motoru arıyorum. C ++ sürümünde olduğunu biliyorum, ancak Python'da mevcut olup olmadığından emin değilim. Python kaynak koduyla ilgili herhangi bir öneri / geri bildirim çok takdir edilecektir !. Teşekkürler!
Yanıtlar
5 DavidDuarte Sep 04 2020 at 21:47
İşte yararlı olabilecek basit bir örnek. Temel olarak belirli bir bölüm için parametreleri bulmak. Bazı parametrelerin kalibre edilmek yerine başlangıçta olduğu varsayılabilir.
import QuantLib as ql
import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import minimize
strikes = [105, 106, 107, 108, 109, 110, 111, 112]
fwd = 120.44
expiryTime = 17/365
marketVols = [0.4164, 0.408, 0.3996, 0.3913, 0.3832, 0.3754, 0.3678, 0.3604]
params = [0.1] * 4
def f(params):
vols = np.array([
ql.sabrVolatility(strike, fwd, expiryTime, *params)
for strike in strikes
])
return ((vols - np.array(marketVols))**2 ).mean() **.5
cons=(
{'type': 'ineq', 'fun': lambda x: 0.99 - x[1]},
{'type': 'ineq', 'fun': lambda x: x[1]},
{'type': 'ineq', 'fun': lambda x: x[3]}
)
result = minimize(f, params, constraints=cons)
new_params = result['x']
newVols = [ql.sabrVolatility(strike, fwd, expiryTime, *new_params) for strike in strikes]
plt.plot(strikes, marketVols, marker='o', label="market")
plt.plot(strikes, newVols, marker='o', label="SABR")
plt.legend();
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı