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