aboutsummaryrefslogtreecommitdiffstats
path: root/python/exploration/test_scenarios.py
blob: f48a8d8d339f86b0e65cd942c1ed85adfe6d721c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import numpy as np
import pandas as pd
from analytics import Index, BlackSwaption, Portfolio, BlackSwaptionVolSurface
from pandas.tseries.offsets import BDay
from analytics.scenarios import run_portfolio_scenarios

option_delta = Index.from_tradeid(874)
option1 = BlackSwaption.from_tradeid(7, option_delta)
option2 = BlackSwaption.from_tradeid(8, option_delta)
portf = Portfolio([option1, option2, option_delta], ['opt1', 'opt2', 'delta'])
date_range = pd.bdate_range(option_delta.value_date,
                            pd.Timestamp('2017-05-17') - BDay(), freq='5B')
vol_shock = np.arange(-0.15, 0.3, 0.01)
spread_shock = np.arange(-0.2, 0.3, 0.01)
vs = BlackSwaptionVolSurface("IG", 28, value_date=option_delta.value_date)
vol_surface = vs[vs.list(source="BAML")[-1]]
df = run_portfolio_scenarios(portf, date_range,
                             params=['pnl', 'delta', 'spread'],
                             spread_shock=spread_shock,
                             vol_shock=vol_shock,
                             vol_surface=vol_surface)