aboutsummaryrefslogtreecommitdiffstats
path: root/python/analytics/scenarios.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/analytics/scenarios.py')
-rw-r--r--python/analytics/scenarios.py7
1 files changed, 3 insertions, 4 deletions
diff --git a/python/analytics/scenarios.py b/python/analytics/scenarios.py
index 9996d405..1ebf9371 100644
--- a/python/analytics/scenarios.py
+++ b/python/analytics/scenarios.py
@@ -1,3 +1,4 @@
+import math
import pandas as pd
from copy import deepcopy
import numpy as np
@@ -33,13 +34,11 @@ def run_swaption_scenarios(swaption, date_range, spread_shock, vol_shock,
if vol_time_roll: T = swaption.T
for s in spreads:
swaption.index.spread = s
- curr_vol = max(0, float(vol_surface(T, swaption.moneyness)))
- if date.date() > swaption.exercise_date: curr_vol = 0
+ curr_vol = float(vol_surface(T, math.log(swaption.moneyness)))
for vs in vol_shock:
swaption.sigma = curr_vol * (1 + vs)
- r.append([date, s, round(vs,2)] + [getattr(swaption, p) for p in params])
+ r.append([date, s, round(vs, 2)] + [getattr(swaption, p) for p in params])
df = pd.DataFrame.from_records(r, columns=['date', 'spread', 'vol_shock'] + params)
- df.loc[df.date > pd.to_datetime(swaption.exercise_date), 'delta'] = 0
return df.set_index(['date', 'spread', 'vol_shock'])