aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/exploration/VaR.py24
1 files changed, 20 insertions, 4 deletions
diff --git a/python/exploration/VaR.py b/python/exploration/VaR.py
index 6b8d6d66..d4ea72e3 100644
--- a/python/exploration/VaR.py
+++ b/python/exploration/VaR.py
@@ -1,8 +1,24 @@
import datetime
from analytics.curve_trades import curve_pos
from analytics.index_data import index_returns
-portf = curve_pos(datetime.date(2018, 5, 3), "IG")
+import pandas as pd
-df = index_returns(index="IG", years=5, tenor=['3yr', '5yr', '7yr', '10yr'])
-df = df.reset_index().set_index(['date', 'series', 'tenor'])
-returns = df.spread_return.dropna().unstack(-1).groupby(level='date').nth(-1)
+portf = curve_pos(datetime.date(2018, 5, 3), "ITRX")
+
+df = index_returns(index="EU", years=5, tenor=['3yr', '5yr', '7yr', '10yr'])
+df = (df.reset_index(['index'], drop=True).
+ reorder_levels(['date', 'series', 'tenor']))
+returns_otr = (df.spread_return.dropna().
+ unstack(-1).
+ groupby(level='date', as_index=False).
+ nth(-1))
+
+portf.reset_pv()
+spreads = pd.DataFrame({'spread': portf.spread,
+ 'tenor': [ind.tenor for ind in portf.indices]})
+
+r = []
+for k, v in returns_otr.iterrows():
+ portf.spread = spreads.spread.values * (1 + v.loc[spreads.tenor])
+ r.append((k[0], portf.pnl))
+pnl = pd.DataFrame.from_records(r, columns=['date', 'pnl'], index=['date'])