aboutsummaryrefslogtreecommitdiffstats
path: root/python/notebooks/Valuation Backtest.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'python/notebooks/Valuation Backtest.ipynb')
-rw-r--r--python/notebooks/Valuation Backtest.ipynb15
1 files changed, 8 insertions, 7 deletions
diff --git a/python/notebooks/Valuation Backtest.ipynb b/python/notebooks/Valuation Backtest.ipynb
index 870fb33d..77f709b8 100644
--- a/python/notebooks/Valuation Backtest.ipynb
+++ b/python/notebooks/Valuation Backtest.ipynb
@@ -6,9 +6,9 @@
"metadata": {},
"outputs": [],
"source": [
- "from datetime import datetime\n",
"from db import dbengine\n",
"\n",
+ "import datetime\n",
"import mark_backtest_underpar as mark\n",
"import globeop_reports as ops\n",
"import pandas as pd\n",
@@ -23,8 +23,7 @@
"metadata": {},
"outputs": [],
"source": [
- "#exclude sell price that are over 200\n",
- "df_long = mark.back_test('2013-01-01', '2018-01-01', sell_price_threshold = 200)"
+ "date = datetime.date.today() - pd.tseries.offsets.MonthEnd(1)"
]
},
{
@@ -33,6 +32,8 @@
"metadata": {},
"outputs": [],
"source": [
+ "#exclude sell price that are over 200\n",
+ "df_long = mark.back_test('2013-01-01', '2018-12-01', sell_price_threshold = 200)\n",
"df_long = df_long[df_long.source != 'PB']"
]
},
@@ -95,7 +96,6 @@
"metadata": {},
"outputs": [],
"source": [
- "%matplotlib inline\n",
"mark.count_sources(df)"
]
},
@@ -208,14 +208,15 @@
"outputs": [],
"source": [
"#Portfolio MTM Gains/Loss/Net\n",
- "df_pnl = ops.get_monthly_pnl()[:date]\n",
+ "df_pnl = ops.get_monthly_pnl()[:date][['mtdbookunrealmtm', 'mtdbookrealmtm']].sum(axis=1)\n",
+ "df_pnl.name = 'mtm'\n",
"r=[]\n",
"for d, g in df_pnl.reset_index('identifier').groupby(pd.Grouper(freq='M')):\n",
" sql_string = \"SELECT * FROM risk_positions(%s, 'Subprime') WHERE notional > 0\"\n",
" pos = pd.read_sql_query(sql_string, engine, params=[g.index[-1].date()])\n",
" pos.identifier = pos.identifier.str[:9]\n",
- " pos = pos.merge(df_pnl.groupby('identifier').cumsum().loc[g.index[-1]],\n",
- " on='identifier')['mtdtotalbookpl'] / nav.loc[d]\n",
+ " pos = pos.join(df_pnl.groupby('identifier').cumsum().loc[g.index[-1]],\n",
+ " on='identifier')['mtm'] / nav.loc[d]\n",
" r.append([g.index[-1], pos[pos>=0].sum(), pos[pos<0].sum()])\n",
"summary = pd.DataFrame.from_records(r, index='date', columns=['date','gains','loss'])\n",
"summary['Net'] = summary.gains + summary.loss\n",