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