diff options
Diffstat (limited to 'python/analytics/ir_swaption.py')
| -rw-r--r-- | python/analytics/ir_swaption.py | 12 |
1 files changed, 8 insertions, 4 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)) |
