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.py16
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):