diff options
Diffstat (limited to 'python/analytics/index.py')
| -rw-r--r-- | python/analytics/index.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/python/analytics/index.py b/python/analytics/index.py index da0063bc..396ee3fc 100644 --- a/python/analytics/index.py +++ b/python/analytics/index.py @@ -43,17 +43,19 @@ class CreditIndex(CreditDefaultSwap): def __init__(self, index_type=None, series=None, tenor=None, value_date=datetime.date.today(), notional=10_000_000, redcode=None, maturity=None): + if all([redcode, maturity]): + r = (serenitas_engine. + execute("SELECT index, series, tenor FROM index_desc " + "WHERE redindexcode=%s AND maturity = %s", + (redcode, maturity))) + index_type, series, tenor = next(r) + if all([index_type, series, tenor]): sql_str = "SELECT indexfactor, lastdate, maturity, coupon, " \ "issue_date, version " \ "FROM index_desc WHERE index=%s AND series=%s AND tenor = %s " \ "ORDER BY lastdate ASC" params = (index_type.upper(), series, tenor) - elif all([redcode, maturity]): - sql_str = "SELECT index, series, indexfactor, lastdate, maturity, " \ - "coupon, issue_date, tenor, version " \ - "FROM index_desc WHERE redindexcode=%s AND maturity=%s" - params = (redcode, maturity) else: raise ValueError("Not enough information to load the index.") try: @@ -157,6 +159,7 @@ class CreditIndex(CreditDefaultSwap): if lastdate >= self.value_date: self._factor = factor self._version = version + break else: self._factor = 1. self._version = 1 |
