aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/analytics/ir_swaption.py12
-rw-r--r--python/exploration/test_cms.py2
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