diff options
| -rw-r--r-- | python/analytics/ir_swaption.py | 12 | ||||
| -rw-r--r-- | python/exploration/test_cms.py | 2 |
2 files changed, 9 insertions, 5 deletions
diff --git a/python/analytics/ir_swaption.py b/python/analytics/ir_swaption.py index 85d9c382..3a3a7581 100644 --- a/python/analytics/ir_swaption.py +++ b/python/analytics/ir_swaption.py @@ -1,14 +1,14 @@ from db import dbconn from quantlib.indexes.api import UsdLiborSwapIsdaFixAm from quantlib.quotes import SimpleQuote -from quantlib.time.api import Date, Period, Years +from quantlib.time.api import Date, Period, Years, pydate_from_qldate from quantlib.instruments.api import MakeSwaption from quantlib.instruments.swap import SwapType from quantlib.pricingengines.api import BlackSwaptionEngine from quantlib.settings import Settings - from yieldcurve import YC + class IRSwaption(): """ adapter class for the QuantLib code""" def __init__(self, swap_index, option_tenor, strike, option_type="payer", @@ -58,7 +58,7 @@ class IRSwaption(): c.execute("SELECT * from swaptions " "WHERE id = %s", (trade_id,)) rec = c.fetchone() - yc = YC(evaluation_date=rec['trade_date']) + yc = YC(evaluation_date=rec['trade_date'], fixed=True) p = Period(int(rec['security_id'].replace("USISDA", "")), Years) swap_index = UsdLiborSwapIsdaFixAm(p, yc) instance = IRSwaption(swap_index, Date.from_datetime(rec['expiration_date']), @@ -68,4 +68,8 @@ class IRSwaption(): @property def value_date(self): - return Settings().evaluation_date + return pydate_from_qldate(self._qloption.valuation_date) + + @value_date.setter + def value_date(self, d): + self.yc.link_to(YC(evaluation_date=d, fixed=True)) diff --git a/python/exploration/test_cms.py b/python/exploration/test_cms.py index 10a04084..4705e01e 100644 --- a/python/exploration/test_cms.py +++ b/python/exploration/test_cms.py @@ -18,7 +18,7 @@ for d in pd.bdate_range("2018-01-19", today, closed="left", normalize=True): continue capped_floored_cms_spread_coupon_ln = \ quantlib_model(d, swap_index_30y2y, yc, cap, corr, maturity) - rate1 = cms_spread_coupon_ln.rate + 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 |
