diff options
| -rw-r--r-- | python/exploration/portfolio_example.py | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/python/exploration/portfolio_example.py b/python/exploration/portfolio_example.py index 58564099..46f4915f 100644 --- a/python/exploration/portfolio_example.py +++ b/python/exploration/portfolio_example.py @@ -1,17 +1,40 @@ -from analytics import Portfolio, BlackSwaption, Index, VolatilitySurface -from analytics.scenarios import run_portfolio_scenarios +from analytics import Portfolio, BlackSwaption, Index, VolatilitySurface, Swaption import pandas as pd from pandas.tseries.offsets import BDay import numpy as np +import datetime 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]) -date_range = pd.bdate_range(option_delta.trade_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 = VolatilitySurface("IG", 28, 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) +date_range = pd.bdate_range(option_delta.trade_date, + pd.Timestamp('2017-04-25'), freq = 'B') +pnl = [] +for date in date_range: + portf.trade_date = date.date() + portf.mark(source="BAML", model="black") + pnl.append(portf.pnl) +df = pd.DataFrame({'pnl': pnl}, index=date_range) + +# 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 = 'B') +# pnl = [] +# for date in date_range: +# portf.trade_date = date.date() +# try: +# portf.mark(source="BAML", model="black") +# except ValueError: +# try: +# portf.mark(source="GS", model="black") +# except ValueError: +# pnl.append(None) +# continue +# pnl.append(portf.pnl) +# df = pd.DataFrame({'pnl': pnl}, index=date_range) |
