diff options
Diffstat (limited to 'python/notebooks/Reto Report.ipynb')
| -rw-r--r-- | python/notebooks/Reto Report.ipynb | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/python/notebooks/Reto Report.ipynb b/python/notebooks/Reto Report.ipynb index 63e5ab48..1b8211f4 100644 --- a/python/notebooks/Reto Report.ipynb +++ b/python/notebooks/Reto Report.ipynb @@ -16,7 +16,13 @@ "from analytics.index_data import get_index_quotes\n", "from analytics.scenarios import run_portfolio_scenarios\n", "from analytics import BlackSwaption, CreditIndex, BlackSwaptionVolSurface, Portfolio,DualCorrTranche\n", - "from db import dawn_engine" + "\n", + "from utils.db import dbconn, dbengine\n", + "\n", + "from risk.tranches import get_tranche_portfolio\n", + "from risk.bonds import subprime_risk, clo_risk, crt_risk\n", + "\n", + "dawn_engine = dbengine('dawndb')" ] }, { @@ -132,7 +138,6 @@ "outputs": [], "source": [ "#tranche positions\n", - "from risk.tranches import get_tranche_portfolio\n", "conn = dawn_engine.raw_connection()\n", "portf = get_tranche_portfolio(position_date, conn, False, 'SERCGMAST')\n", "\n", @@ -165,13 +170,19 @@ "portf.add_trade(CreditIndex('HY', on_the_run('HY', spread_date), '5yr', \n", " value_date=spread_date, \n", " notional=curve_portf.hy_equiv), ('curve_trades', ''))\n", - " \n", + "\n", + "mysql_engine = dbengine('rmbs_model')\n", + "mysqlcrt_engine = dbengine('crt')\n", + "\n", "#get bond risks:\n", - "rmbs_pos = go.rmbs_pos(position_date)\n", - "clo_pos = go.clo_pos(position_date)\n", + "with dbconn('etdb') as etconn, dbconn('dawndb') as dawnconn:\n", + " rmbs_pos = subprime_risk(position_date, dawnconn, mysql_engine)\n", + " clo_pos = clo_risk(position_date, dawnconn, etconn)\n", + " crt_pos = crt_risk(position_date, dawnconn, mysqlcrt_engine)\n", "duration = analytics._ontr.risky_annuity\n", "rmbs_pos['hy_equiv'] = rmbs_pos['delta_yield']/duration * 100\n", - "notional = rmbs_pos['hy_equiv'].sum() + clo_pos['hy_equiv'].sum()\n", + "crt_pos['hy_equiv'] = crt_pos['delta_yield']/duration * 100\n", + "notional = rmbs_pos['hy_equiv'].sum() + clo_pos['hy_equiv'].sum() + crt_pos['hy_equiv'].sum()\n", "portf.add_trade(CreditIndex('HY', on_the_run('HY', spread_date), '5yr', \n", " value_date = spread_date, \n", " notional = -notional), ('bonds', ''))\n", @@ -219,10 +230,10 @@ " corr_shock=[0],\n", " vol_surface=vol_surface)\n", "\n", - "scens = scens.xs('pnl', axis=1, level=2)\n", - "scens = scens.xs((0,0), level=['vol_shock', 'corr_shock'])\n", + "pnl = scens.xs('pnl', axis=1, level=2)\n", + "pnl = pnl.xs((0,0), level=['vol_shock', 'corr_shock'])\n", "\n", - "scenarios = (scens.\n", + "scenarios = (pnl.\n", " reset_index(level=['date'], drop=True).\n", " groupby(level=0, axis=1).sum())\n", "\n", |
