diff options
Diffstat (limited to 'python/analytics/tranche_basket.py')
| -rw-r--r-- | python/analytics/tranche_basket.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/python/analytics/tranche_basket.py b/python/analytics/tranche_basket.py index 06fa148b..b2bb2f61 100644 --- a/python/analytics/tranche_basket.py +++ b/python/analytics/tranche_basket.py @@ -107,6 +107,11 @@ class DualCorrTranche(): self._index.value_date = d self.cs = credit_schedule(d, None, 1., self._index.yc, self._index.maturities[0]) self._accrued = cds_accrued(d, self.tranche_running * 1e-4) + if self._index.index_type == "XO" and self._index.series == 22 \ + and self.value_date > datetime.date(2016, 4, 25): + self._index._factor += 0.013333333333333333 + + self.K = adjust_attachments(self.K_orig, self._index.cumloss, self._index.factor) @memoize(hasher=lambda args: (hash(args[0]._index), *args[1:])) def tranche_legs(self, K, rho, epsilon=0.): @@ -374,6 +379,10 @@ class TrancheBasket(BasketIndex): @value_date.setter def value_date(self, d: pd.Timestamp): BasketIndex.value_date.__set__(self, d) + # Norske Skogindustrier ASA didn't trigger for tranches + if self.index_type == "XO" and self.series == 22 \ + and self.value_date > datetime.date(2016, 4, 25): + self._factor += 0.013333333333333333 self.cs = credit_schedule(d, self.tenor[:-1], 1, self.yc, self.maturity) self.K = adjust_attachments(self.K_orig, self.cumloss, self.factor) |
