diff options
Diffstat (limited to 'python/analytics/index.py')
| -rw-r--r-- | python/analytics/index.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/python/analytics/index.py b/python/analytics/index.py index aa93b5ee..c4a28a7f 100644 --- a/python/analytics/index.py +++ b/python/analytics/index.py @@ -372,6 +372,15 @@ class Index(object): else: return None + def shock(self, params, *, spread_shocks, **kwargs): + r = [] + orig_spread = self.spread + for s in spread_shocks: + self.spread = orig_spread * ( 1 + s ) + r.append([getattr(self, p) for p in params]) + self.spread = orig_spread + return pd.DataFrame(r, index=spread_shocks) + @classmethod def from_name(cls, index=None, series=None, tenor=None, value_date=datetime.date.today(), notional=10_000_000, redcode=None, maturity=None): |
