aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/analytics/scenarios.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/python/analytics/scenarios.py b/python/analytics/scenarios.py
index b663c5bc..ea84f2bf 100644
--- a/python/analytics/scenarios.py
+++ b/python/analytics/scenarios.py
@@ -25,12 +25,13 @@ def run_swaption_scenarios(swaption, date_range, spread_shock, vol_shock, vol_su
swaption.index.ref = spread
swaption._update()
atm_strike = ATMstrike(swaption.index, swaption.exercise_date)
- moneyness = (swaption.index.spread / atm_strike)
- curr_vol = float(vol_surface.ev(T, moneyness))
- for vs in vol_shock:
- vol = curr_vol * (1 + vs)
+ moneyness = (swaption.strike / atm_strike)
+ curr_vol = float(vol_surface(T, moneyness))
+ def aux(swaption, vol, params, prepend):
swaption.sigma = vol
- r.append([date, ss, vs] + [getattr(swaption, p) for p in params])
+ return prepend + [getattr(swaption, p) for p in params]
+ r.append(Parallel(-1)(
+ delayed(aux(swaption, curr_vol * (1 + vs), params, prepend)) for vs in vol_shock)
swaption.index.spread = spread_start
df = pd.DataFrame.from_records(r, columns=['date', 'spread_shock',
'vol_shock'] + params)