diff options
Diffstat (limited to 'python/notebooks')
| -rw-r--r-- | python/notebooks/Reto Report.ipynb | 58 |
1 files changed, 27 insertions, 31 deletions
diff --git a/python/notebooks/Reto Report.ipynb b/python/notebooks/Reto Report.ipynb index f1a8d9e8..f45b54ce 100644 --- a/python/notebooks/Reto Report.ipynb +++ b/python/notebooks/Reto Report.ipynb @@ -7,21 +7,15 @@ "outputs": [], "source": [ "import datetime\n", - "import pandas.tseries.offsets as off\n", + "from pandas.tseries.offsets import BDay, MonthEnd\n", "import globeop_reports as go\n", "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import exploration.VaR as var\n", "import analytics\n", "\n", - "from analytics.curve_trades import curve_pos, on_the_run\n", "from analytics.index_data import get_index_quotes\n", - "from analytics.scenarios import run_portfolio_scenarios, run_swaption_scenarios\n", - "from analytics import Swaption, BlackSwaption, CreditIndex, BlackSwaptionVolSurface, Portfolio, ProbSurface, DualCorrTranche\n", - "from db import serenitas_engine, dawn_engine\n", - "\n", - "analytics.init_ontr()" + "from analytics.scenarios import run_portfolio_scenarios\n", + "from analytics import BlackSwaption, CreditIndex, BlackSwaptionVolSurface, Portfolio,DualCorrTranche\n", + "from db import dawn_engine" ] }, { @@ -31,8 +25,8 @@ "outputs": [], "source": [ "#PNL Allocation\n", - "date = datetime.date.today() - off.BDay(1)\n", - "report_date = date - off.MonthEnd(1)\n", + "date = datetime.date.today() - BDay(1)\n", + "report_date = date - MonthEnd(1)\n", "report_date" ] }, @@ -70,7 +64,7 @@ "nav = go.get_net_navs()\n", "sql_string = \"SELECT * FROM bonds WHERE buysell IS False\"\n", "df = pd.read_sql_query(sql_string, dawn_engine,\n", - " parse_dates={'lastupdate':'utc=True', 'trade_date':'', 'settle_date':''},\n", + " parse_dates={'lastupdate':{'utc':True}, 'trade_date': {}, 'settle_date':{}},\n", " index_col = 'trade_date')\n", "df = df.groupby(pd.Grouper(freq='M')).sum()\n", "#Now get portfolio paydown per month\n", @@ -102,6 +96,19 @@ "metadata": {}, "outputs": [], "source": [ + "position_date = (datetime.date.today() - BDay(1)).date()\n", + "spread_date = position_date\n", + "shock_date = (datetime.date.today() - BDay(1)).date()\n", + "(position_date, spread_date, shock_date)\n", + "analytics.init_ontr(spread_date)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ "#Calculate amount of stress for reports\n", "df = get_index_quotes('HY', list(range(on_the_run('HY') - 10, on_the_run('HY') + 1)),\n", " tenor=['5yr'], years=5)\n", @@ -122,18 +129,6 @@ "metadata": {}, "outputs": [], "source": [ - "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(1)).date()\n", - "(position_date, spread_date, shock_date)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ "#tranche positions\n", "df_tranches = pd.read_sql_query(\"SELECT * from list_tranche_positions_by_strat(%s)\",\n", " dawn_engine, params=(position_date,))\n", @@ -172,19 +167,17 @@ " for t in df_curve.itertuples(index=False)])\n", "curve_portf.value_date = spread_date\n", "curve_portf.mark()\n", - "portf.add_trade(CreditIndex('HY', on_the_run('HY'), '5yr', \n", + "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", "#get bond risks:\n", "rmbs_pos = go.rmbs_pos(position_date)\n", "clo_pos = go.clo_pos(position_date)\n", - "r = serenitas_engine.execute(\"select duration from on_the_run where index = 'HY' and date = %s\",\n", - " spread_date)\n", - "duration, = next(r)\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", - "portf.add_trade(CreditIndex('HY', on_the_run('HY'), '5yr', \n", + "portf.add_trade(CreditIndex('HY', on_the_run('HY', spread_date), '5yr', \n", " value_date = spread_date, \n", " notional = -notional), ('bonds', ''))\n", " \n", @@ -213,6 +206,7 @@ " groupby(level=0, axis=1).sum())\n", "attrib.columns.name = 'strategy'\n", "results = attrib.xs((widen[2], 0.), level=['spread_shock', 'corr_shock']).unstack('strategy')\n", + "results.name = 'pnl'\n", "#results.to_clipboard(header=True)" ] }, @@ -221,7 +215,9 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "results.to_clipboard(header=True)" + ] } ], "metadata": { |
