aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/analytics/basket_index.py4
-rw-r--r--python/analytics/scenarios.py7
2 files changed, 5 insertions, 6 deletions
diff --git a/python/analytics/basket_index.py b/python/analytics/basket_index.py
index e4554d6f..a9dedbc6 100644
--- a/python/analytics/basket_index.py
+++ b/python/analytics/basket_index.py
@@ -69,10 +69,6 @@ class BasketIndex(CreditIndex):
d = vars(self)
return partial(make_index, self.__class__), (d, args)
- def __deepcopy__(self, memo):
- copy = loads(dumps(self))
- return copy
-
def __hash__(self):
def aux(v):
if isinstance(v, pd.DataFrame):
diff --git a/python/analytics/scenarios.py b/python/analytics/scenarios.py
index e9712947..1438349c 100644
--- a/python/analytics/scenarios.py
+++ b/python/analytics/scenarios.py
@@ -7,6 +7,7 @@ from contextlib import contextmanager
from itertools import chain
from functools import partial
from multiprocessing import Pool
+from .index_data import _get_singlenames_curves
def run_swaption_scenarios(swaption, date_range, spread_shock, vol_shock,
vol_surface, params=["pv"], vol_time_roll=True):
@@ -115,6 +116,8 @@ def run_tranche_scenarios(tranche, spread_range, date_range, corr_map=False):
tranche.build_skew()
temp_tranche = deepcopy(tranche)
+ _get_singlenames_curves.cache_clear()
+ orig_tranche_pvs = tranche.tranche_pvs().bond_price
results = []
for d in date_range:
temp_tranche.value_date = d.date()
@@ -131,14 +134,14 @@ def run_tranche_scenarios(tranche, spread_range, date_range, corr_map=False):
(d.date() - tranche.value_date).days / 360
df = pd.concat({'pv': pd.DataFrame(tranche_pv, index=spread_range,
columns=tranche._row_names),
- 'delta': pd.DataFrame(tranche_delta, index=spread_range,
+ 'delta': pd.DataFrame(tranche_delta, index=spread_range,
columns=tranche._row_names),
'carry': pd.DataFrame(
np.tile(carry, (len(spread_range), 1)),
index=spread_range, columns=tranche._row_names)},
axis=1)
df = df.join(
- pd.concat({'pnl': df['pv'].sub(tranche.tranche_pvs().bond_price),
+ pd.concat({'pnl': df['pv'].sub(orig_tranche_pvs),
'index_price_snac_pv': pd.Series(index_pv, index=spread_range,
name='pv')},
axis=1))