diff options
Diffstat (limited to 'python/analytics/basket_index.py')
| -rw-r--r-- | python/analytics/basket_index.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/python/analytics/basket_index.py b/python/analytics/basket_index.py index 1ce940bb..5b57b207 100644 --- a/python/analytics/basket_index.py +++ b/python/analytics/basket_index.py @@ -66,6 +66,8 @@ class BasketIndex(CreditIndex): self.cash_settle_date = value_date + 3 * BDay() self.tweaks = [] self.start_date = previous_twentieth(value_date) + self._ignore_hash = set(['_Z', '_w', '_skew', 'tenors', + 'index_desc', 'tweaks', '_ignore_hash']) super().__init__(self.issue_date, maturities, curves, value_date=value_date) def __reduce__(self): @@ -81,9 +83,8 @@ class BasketIndex(CreditIndex): return hash(v.tobytes()) else: return hash(v) - ignore = set(['_Z', '_w', '_skew', 'tenors', 'index_desc']) return hash((CreditIndex.__hash__(self),) + tuple(aux(v) for k, v in vars(self).items() - if k not in ignore)) + if k not in self._ignore_hash)) def _query_version(self, i): for lastdate, *data in self._version: @@ -208,6 +209,8 @@ class BasketIndex(CreditIndex): continue else: index_quote = quotes[m] + if abs(self.pv(m) - index_quote) < 1e-12: # early exit + self.tweaks.append(0.) lo, hi = -0.3, 0.3 hi_tilde = exp(hi) - 1 while hi_tilde < 5: |
