diff options
Diffstat (limited to 'python/analytics/tranche_basket.py')
| -rw-r--r-- | python/analytics/tranche_basket.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/python/analytics/tranche_basket.py b/python/analytics/tranche_basket.py index f09cfedb..191ebf55 100644 --- a/python/analytics/tranche_basket.py +++ b/python/analytics/tranche_basket.py @@ -5,7 +5,7 @@ from .tranche_functions import ( from .index_data import get_tranche_quotes from .utils import memoize, build_table from collections import namedtuple -from db import dbconn +from db import dbconn, dbengine from copy import deepcopy from lru import LRU from pyisda.date import cds_accrued @@ -177,7 +177,7 @@ class DualCorrTranche(): # TODO: handle factor change days_accrued = (self.value_date - self._trade_date).days / 360 return self.notional * self._direction * -(self.pv - self._original_pv + - self.tranche_running * days_accrued) + self.tranche_running/10000 * days_accrued) def __repr__(self): s = ["{}{} {} Tranche".format(self.index_type, self.series, self.tenor), @@ -213,9 +213,15 @@ class DualCorrTranche(): names=['spread_shock', 'corr_shock'])) def mark(self, **args): - #mark BasketIndex - #mark correlation - pass + corr = pd.read_sql_query("select a.attach, a.detach, corr_at_detach from " + "get_tranche_quotes(%s, %s, %s, %s) a LEFT JOIN " + "risk_numbers_new b on a.id = b.tranche_id", + dbengine('serenitasdb'), + params=(self.index_type, self.series, + self.tenor, self.value_date)) + if self.attach > 0: + self.rho[0] = corr[corr['detach'] == self.attach]['corr_at_detach'] + self.rho[1] = corr[corr['detach'] == self.detach]['corr_at_detach'] class TrancheBasket(BasketIndex): |
