diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/analytics/basket_index.py | 7 |
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()} |
