aboutsummaryrefslogtreecommitdiffstats
path: root/python/analytics/basket_index.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/analytics/basket_index.py')
-rw-r--r--python/analytics/basket_index.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/python/analytics/basket_index.py b/python/analytics/basket_index.py
index de85cc88..63cb66d0 100644
--- a/python/analytics/basket_index.py
+++ b/python/analytics/basket_index.py
@@ -53,6 +53,7 @@ class BasketIndex(CreditIndex):
self.issue_date = self.index_desc.issue_date[0]
self.index_desc = self.index_desc.loc[tenors]
self.index_desc = self.index_desc.sort_values('maturity')
+ self.tenors = {t: m.date() for t, m in self.index_desc.maturity.items()}
maturities = self.index_desc.maturity.dt.to_pydatetime()
self.index_desc = self.index_desc.reset_index().set_index('maturity')
self.index_desc.tenor = self.index_desc.tenor.astype(tenor_t)
@@ -171,12 +172,12 @@ class BasketIndex(CreditIndex):
if hasattr(self, "index_quotes"):
index_quotes = self._get_quotes()
else:
- index_quotes = None
+ index_quotes = {}
if maturity is None:
r = []
for m in self.maturities:
coupon = self.index_desc.coupon[m]
- index_quote = np.nan if index_quotes is None else index_quotes[m]
+ index_quote = index_quotes.get(m, np.nan)
r.append(super().theta(self.step_in_date, self.cash_settle_date, m,
self.yc, coupon, index_quote, theta_date))
return pd.Series(r, index=self.index_desc.tenor, name='theta')
@@ -239,7 +240,7 @@ class MarkitBasketIndex(BasketIndex):
def _get_quotes(self):
quotes = self.index_quotes.loc[self.value_date, "close_price"]
- return {self.index_desc.tenor[t]: q
+ return {self.tenors[t]: q
for t, q in quotes.items()}