diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/analytics/basket_index.py | 4 | ||||
| -rw-r--r-- | python/analytics/scenarios.py | 7 |
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)) |
