Внедрение модели Garman Kohlagen в Python
Коллеги, всем привет! Сегодня «внедрим» модель Garman Kohlagen для прайсинга валютного опциона (FX) в Python.
Описание и расшифровку самой модели писать не будем, так как этого добра на просторах рунэта пруд пруди, а вот реализации в Python с работающим кодом почти нет.
Так как у нас уже есть написанные расчеты для модели BS ( см. пост в закрепе), то теперь просто добавляет расчет-код для GK:
spot=90.09
strike= 90.09
vol= 0.17
rd= 0.0758
rf= 0.0508
T= 85
opt= 'put'
gk= GarmanKohlhagen(S= spot, K= strike, V= vol, rd= rd, rf= rf, T= T, opt= opt)
print(f'''
Reference:
Spot: {gk.option.S} Strike: {gk.option.K}
Vol: {gk.option.V} Tau: {round(gk.option.tau,4)}
R_d: {gk.option.rd} R_f: {gk.option.rf}
<Option>
Type: {gk.option.type.upper()}
Price: {round(gk.option.price, 3)}
Time decay: {round(gk.option.timedecay, 3)}
Intrinsic val: {round(gk.option.intvalue, 3)}
Option val: {round(gk.option.optvalue, 3)}
<Greeks>
Delta: {round(gk.option.delta,3)}
Gamma: {round(gk.option.gamma,3)}
Vega: {round(gk.option.vega,3)}
Theta: {round(gk.option.theta,3)}
Rho dmst: {round(gk.option.rho_d,3)}
Rho frgn: {round(gk.option.rho_f,3)}
''')
rf - ставка безриска для валюты иностранной
rd - ставка безриска для валюты домашней
spot - спот
strike - страйк
t - время до экспирации (дни)
vol - волатильность
На выходе получаем следующий расчет:
Больше идей и разборов в нашем Телеграм 👍