aboutsummaryrefslogtreecommitdiffstats
path: root/python/notebooks
diff options
context:
space:
mode:
Diffstat (limited to 'python/notebooks')
-rw-r--r--python/notebooks/Dispersion.ipynb25
1 files changed, 14 insertions, 11 deletions
diff --git a/python/notebooks/Dispersion.ipynb b/python/notebooks/Dispersion.ipynb
index 59e98647..84701ba8 100644
--- a/python/notebooks/Dispersion.ipynb
+++ b/python/notebooks/Dispersion.ipynb
@@ -37,7 +37,9 @@
"metadata": {},
"outputs": [],
"source": [
- "value_date = (pd.datetime.today() - pd.offsets.BDay(1)).date()\n",
+ "value_date = (datetime.datetime.today() - pd.offsets.BDay(1)).date()\n",
+ "start_date = datetime.date(2019,9,27)\n",
+ "end_date = datetime.date(2020,1,30)\n",
"index_type = 'HY'"
]
},
@@ -48,9 +50,10 @@
"outputs": [],
"source": [
"#Get Gini factor\n",
- "date_range = pd.bdate_range(end=value_date, freq='5B',periods=52*.5)\n",
- "risk = disp.get_tranche_data(index_type, date_range, serenitas_engine)\n",
- "gini_model, gini_calc = disp.create_gini_models(risk)"
+ "date_range = pd.bdate_range(end=value_date, freq='1B',periods=52*4)\n",
+ "risk = disp.get_tranche_data(index_type, serenitas_engine)\n",
+ "risk = risk[risk.index.get_level_values(0).isin(date_range)]\n",
+ "gini_model, gini_calc = disp.create_models(risk, use_gini=True, use_log=False)"
]
},
{
@@ -59,8 +62,8 @@
"metadata": {},
"outputs": [],
"source": [
- "to_plot_gini = gini_calc.loc(axis=0)[:,:,:,'5yr',0].groupby(['date', 'series']).nth(-1)\n",
- "to_plot_gini['gini_spread'].unstack().plot()"
+ "to_plot_gini = gini_calc.xs(0, level='attach').groupby(['date', 'series']).nth(-1)\n",
+ "to_plot_gini['dispersion'].unstack().plot()"
]
},
{
@@ -69,7 +72,7 @@
"metadata": {},
"outputs": [],
"source": [
- "today = gini_calc.loc(axis=0)[value_date,:,33,'5yr',:]\n",
+ "today = gini_calc.xs([value_date,33], level=['date','series'])\n",
"today[['exp_percentage', 'predict_N', 'predict_preN', 'mispricing']]"
]
},
@@ -79,8 +82,8 @@
"metadata": {},
"outputs": [],
"source": [
- "to_plot = gini_calc.loc(axis=0)[:,:,:,'5yr',0]['mispricing']\n",
- "to_plot.reset_index(['index','tenor','attach'], drop=True).unstack().plot()"
+ "to_plot = gini_calc.xs(0, level='attach')['mispricing']\n",
+ "to_plot.reset_index(['index','tenor'], drop=True).unstack().plot()"
]
},
{
@@ -99,8 +102,8 @@
"outputs": [],
"source": [
"#Run a particular gini scenario\n",
- "scenario = gini_calc.loc(axis=0)[value_date,'HY',33,'5yr',0]\n",
- "scenario['gini_spread'] = .6\n",
+ "scenario = gini_calc.loc(axis=0)[value_date,33,'HY','5yr',0]\n",
+ "scenario['dispersion'] = .6\n",
"scenario_disp = np.exp(gini_model[0].predict(scenario))\n",
"mispricing = (scenario['exp_percentage'] - scenario_disp) * \\\n",
" scenario['index_expected_loss'] / \\\n",