aboutsummaryrefslogtreecommitdiffstats
path: root/python/exploration/test_cms.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/exploration/test_cms.py')
-rw-r--r--python/exploration/test_cms.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/python/exploration/test_cms.py b/python/exploration/test_cms.py
new file mode 100644
index 00000000..1a67c48a
--- /dev/null
+++ b/python/exploration/test_cms.py
@@ -0,0 +1,24 @@
+from analytics.cms_spread import (
+ quantlib_model, globeop_model, build_spread_index, VolatilityType)
+from yieldcurve import YC
+import pandas as pd
+
+cms30y2y, 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):
+ yc.link_to(YC(evaluation_date=d.date()))
+ yc.extrapolation = True
+ if d == pd.Timestamp("2018-02-16"):
+ continue
+ cms_spread_coupon_ln = quantlib_model(d, cms30y2y, yc, cap, corr, maturity)
+ rate1 = cms_spread_coupon_ln.rate
+ cms_spread_coupon_n = quantlib_model(d, cms30y2y, yc, cap, corr, maturity,
+ VolatilityType.Normal)
+ rate2 = cms_spread_coupon_n.rate
+ rate3 = globeop_model(d, cms30y2y, yc, cap, corr - 0.075, maturity)
+ r.append((d, rate1, rate2, rate3))
+df = pd.DataFrame(r, columns=['date', 'QL_ln', 'QL_n', 'Globeop']).set_index('date')