1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
from analytics import (Portfolio, BlackSwaption, Index,
BlackSwaptionVolSurface, Swaption)
from analytics.scenarios import run_portfolio_scenarios
import pandas as pd
import numpy as np
option_delta = Index.from_tradeid(870)
option1 = BlackSwaption.from_tradeid(5, option_delta)
option2 = BlackSwaption.from_tradeid(6, option_delta)
portf = Portfolio([option1, option2, option_delta])
date_range = pd.bdate_range(option_delta.trade_date,
pd.Timestamp('2017-04-19'), freq='W')
vol_shock = np.arange(-0.15, 0.3, 0.01)
spread_shock = np.arange(-0.2, 0.3, 0.01)
vs = BlackSwaptionVolSurface("IG", 27, trade_date=option_delta.trade_date)
vol_surface = vs[vs.list()[-1]]
df = run_portfolio_scenarios(portf, date_range, spread_shock, vol_shock, vol_surface,
['pv', 'delta'])
|