aboutsummaryrefslogtreecommitdiffstats
path: root/python/notebooks/Reto Report.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'python/notebooks/Reto Report.ipynb')
-rw-r--r--python/notebooks/Reto Report.ipynb39
1 files changed, 20 insertions, 19 deletions
diff --git a/python/notebooks/Reto Report.ipynb b/python/notebooks/Reto Report.ipynb
index f4f194f8..a906291c 100644
--- a/python/notebooks/Reto Report.ipynb
+++ b/python/notebooks/Reto Report.ipynb
@@ -20,7 +20,9 @@
"from serenitas.analytics.index_data import load_all_curves\n",
"from serenitas.analytics.scenarios import run_portfolio_scenarios\n",
"from serenitas.analytics.basket_index import BasketIndex\n",
- "from serenitas.utils.db import dbconn, dbengine, serenitas_engine, dawn_engine, serenitas_pool\n",
+ "from serenitas.analytics.base import Trade\n",
+ "from serenitas.utils.db2 import dbconn, serenitas_pool, dawn_pool\n",
+ "from serenitas.utils.db import serenitas_engine, dawn_engine\n",
"#from dates import bond_cal"
]
},
@@ -34,8 +36,8 @@
"position_date = (datetime.date.today() - BDay(1)).date()\n",
"spread_date = (datetime.date.today() - BDay(1)).date()\n",
"ana._local = False\n",
- "ana.init_ontr(spread_date)\n",
- "fund='SERCGMAST'"
+ "Trade.init_ontr(spread_date)\n",
+ "fund ='SERCGMAST'"
]
},
{
@@ -46,7 +48,7 @@
"source": [
"################################### Run scenarios\n",
"spread_shock = np.array([-100., -25., 1., +25. , 100., 200., 300.])\n",
- "spread_shock /= ana._ontr['HY'].spread\n",
+ "spread_shock /= Trade._ontr['HY'].spread\n",
"portf, _ = build_portfolio(position_date, spread_date, fund)\n",
"vol_surface = generate_vol_surface(portf, 10, 'MS')\n",
"portf.reset_pv()\n",
@@ -101,9 +103,8 @@
"source": [
"#####our jump risks\n",
"jtd = portf.jtd_single_names()\n",
- "conn = serenitas_pool.getconn()\n",
- "surv_curves = load_all_curves(conn, spread_date)\n",
- "serenitas_pool.putconn(conn)\n",
+ "with serenitas_pool.connection() as conn:\n",
+ " surv_curves = load_all_curves(conn, spread_date)\n",
"surv_curves['spread'] = surv_curves['curve'].apply(lambda sc: sc.to_series(forward=False)[5] * (1-sc.recovery_rates[5]))\n",
"jtd_sabo = jtd[[jtd.columns[0]]].join(surv_curves.groupby(level=0).first()[['name', 'company_id', 'spread']])\n",
"jtd_sabo.columns = ['jtd', 'name', 'company_id', 'spread']\n",
@@ -302,23 +303,23 @@
"outputs": [],
"source": [
"################################## Calculate Historical Bond Duration/Yield\n",
- "dawnconn = dbconn(\"dawndb\")\n",
"fund = 'SERCGMAST'\n",
"CBM = CustomBusinessMonthEnd(calendar=np.busdaycalendar())\n",
"dates = pd.bdate_range(\"2015-1-31\", datetime.date.today() - MonthEnd(1), \n",
" freq=CBM)\n",
"bond_stats=pd.DataFrame()\n",
- "for d in dates:\n",
- " sub = subprime_risk(d.date(), dawnconn , dbengine(\"rmbs_model\"), fund=fund)\n",
- " sub=sub[sub.pv1>0]\n",
- " crt = crt_risk(d.date(), dawnconn , dbengine(\"crt\"), fund=fund)\n",
- " clo = clo_risk(d.date(), dawnconn , dbconn(\"etdb\"), fund=fund)\n",
- " bonds = pd.concat([sub,crt,clo]).dropna(subset=['modDur', 'usd_market_value'])\n",
- " bond_stats.at[d, 'dur']= sum(bonds.notional * bonds.factor * bonds.modDur)/sum(bonds.notional * bonds.factor)\n",
- " bond_stats.at[d, 'yield'] = (sum(bonds.usd_market_value * bonds.modDur * bonds.bond_yield) /\n",
- " sum(bonds.usd_market_value * bonds.modDur))\n",
- " bond_stats.at[d, 'swap_rate'] = (sum(bonds.usd_market_value * bonds.modDur * bonds.swap_rate) /\n",
- " sum(bonds.usd_market_value * bonds.modDur))\n",
+ "with dawn_pool.connection() as conn, dbconn(\"etdb\") as et_conn:\n",
+ " for d in dates:\n",
+ " sub = subprime_risk(d.date(), dawnconn , dbengine(\"rmbs_model\"), fund=fund)\n",
+ " sub=sub[sub.pv1>0]\n",
+ " crt = crt_risk(d.date(), dawnconn , dbengine(\"crt\"), fund=fund)\n",
+ " clo = clo_risk(d.date(), dawnconn , dbconn(\"etdb\"), fund=fund)\n",
+ " bonds = pd.concat([sub,crt,clo]).dropna(subset=['modDur', 'usd_market_value'])\n",
+ " bond_stats.at[d, 'dur']= sum(bonds.notional * bonds.factor * bonds.modDur)/sum(bonds.notional * bonds.factor)\n",
+ " bond_stats.at[d, 'yield'] = (sum(bonds.usd_market_value * bonds.modDur * bonds.bond_yield) /\n",
+ " sum(bonds.usd_market_value * bonds.modDur))\n",
+ " bond_stats.at[d, 'swap_rate'] = (sum(bonds.usd_market_value * bonds.modDur * bonds.swap_rate) /\n",
+ " sum(bonds.usd_market_value * bonds.modDur))\n",
"bond_stats['dm'] = bond_stats['yield'] - bond_stats['swap_rate']"
]
},