aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/exploration/portfolio_example.py39
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)