aboutsummaryrefslogtreecommitdiffstats
path: root/python/exploration/test_cms.py
blob: 4705e01e59d01d08b9c3b3e76939b601e6c0b4f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from analytics.cms_spread import (
    quantlib_model, globeop_model, build_spread_index, VolatilityType)
from yieldcurve import YC
import pandas as pd
from quantlib.time.api import Date
swap_index_30y2y, yc = build_spread_index(30, 2)
cap = 0.00758
corr = 0.8
r = []
maturity = pd.Timestamp("2020-01-19")
today = pd.Timestamp.today()

for d in pd.bdate_range("2018-01-19", today, closed="left", normalize=True):
    d = pd.Timestamp("2018-01-19")
    yc.link_to(YC(evaluation_date=d.date()))
    yc.extrapolation = True
    if d == pd.Timestamp("2018-02-16"):
        continue
    capped_floored_cms_spread_coupon_ln = \
        quantlib_model(d, swap_index_30y2y, yc, cap, corr, maturity)
    rate1 = capped_floored_cms_spread_coupon_ln.rate
    cms_spread_coupon_n = quantlib_model(d, swap_index_30y2y, yc, cap, corr, maturity,
                                         VolatilityType.Normal)
    rate2 = cms_spread_coupon_n.rate
    rate3 = globeop_model(d, swap_index_30y2y, yc, cap, corr - 0.075, maturity)
# df = pd.DataFrame(r, columns=['date', 'QL_ln', 'QL_n', 'Globeop']).set_index('date')