diff options
Diffstat (limited to 'python/notebooks')
| -rw-r--r-- | python/notebooks/Dispersion.ipynb | 25 |
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", |
