diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/notebooks/Reto Report.ipynb | 36 |
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": { |
