aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/notebooks/Reto Report.ipynb36
1 files changed, 31 insertions, 5 deletions
diff --git a/python/notebooks/Reto Report.ipynb b/python/notebooks/Reto Report.ipynb
index cf823db0..cf519316 100644
--- a/python/notebooks/Reto Report.ipynb
+++ b/python/notebooks/Reto Report.ipynb
@@ -122,9 +122,9 @@
"metadata": {},
"outputs": [],
"source": [
- "position_date = (datetime.date.today() - pd.tseries.offsets.BDay(2)).date()\n",
+ "position_date = (datetime.date.today() - pd.tseries.offsets.BDay(1)).date()\n",
"spread_date = position_date\n",
- "shock_date = (datetime.date.today() - pd.tseries.offsets.BDay(2)).date()\n",
+ "shock_date = (datetime.date.today() - pd.tseries.offsets.BDay(1)).date()\n",
"(position_date, spread_date, shock_date)"
]
},
@@ -155,14 +155,26 @@
" c.execute(index_sql_string, (position_date, position_date))\n",
" index_trades = [[dealid, f\"{folder}_{dealid}\"] for dealid, folder, ntl in c if ntl != 0]\n",
"conn.close()\n",
- " \n",
+ "\n",
+ "index_curve = list(filter(lambda x: \"CURVE\" in x[1], index_trades))\n",
+ "index_no_curve = list(filter(lambda x: \"CURVE\" not in x[1], index_trades))\n",
+ "\n",
"portf = Portfolio([DualCorrTranche.from_tradeid(dealid) for dealid, _ in t_trades],\n",
" [trade_id for _, trade_id in t_trades])\n",
"for trade_id, name, expiration_date in swaption_trades:\n",
" if expiration_date > shock_date:\n",
" portf.add_trade(BlackSwaption.from_tradeid(trade_id), name)\n",
- "for trade_id, name in index_trades:\n",
+ "for trade_id, name in index_no_curve:\n",
" portf.add_trade(CreditIndex.from_tradeid(trade_id), name)\n",
+ "\n",
+ "#separately add in curve delta\n",
+ "curve_portf = Portfolio([CreditIndex.from_tradeid(dealid) for dealid, _ in index_curve], \n",
+ " [trade_id for _, trade_id in index_curve])\n",
+ "curve_portf.value_date = spread_date\n",
+ "curve_portf.mark()\n",
+ "portf.add_trade(CreditIndex('HY', on_the_run('HY'), '5yr', \n",
+ " value_date = spread_date, \n",
+ " notional = -curve_portf.hy_equiv), 'curve_trades')\n",
" \n",
"#get bond risks:\n",
"rmbs_pos = go.rmbs_pos(position_date)\n",
@@ -201,7 +213,7 @@
"attrib = attrib.set_index(['spread_shock', 'strategy', 'corr_shock'])\n",
"attrib = attrib.groupby(['spread_shock', 'strategy', 'corr_shock']).sum()\n",
"\n",
- "results = attrib.xs((widen[0], -0.1), level = ['spread_shock','corr_shock'])\n"
+ "results = attrib.xs((widen[2], -0.0), level = ['spread_shock','corr_shock'])"
]
},
{
@@ -210,6 +222,20 @@
"metadata": {},
"outputs": [],
"source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
}
],
"metadata": {