diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/notebooks/Reto Report.ipynb | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/python/notebooks/Reto Report.ipynb b/python/notebooks/Reto Report.ipynb index bda76756..f4f194f8 100644 --- a/python/notebooks/Reto Report.ipynb +++ b/python/notebooks/Reto Report.ipynb @@ -369,6 +369,15 @@ "metadata": {}, "outputs": [], "source": [ + "bond_stats.to_clipboard()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ "################################## FX Exposure, any net CAD/EUR exposures are FX exposure. \n", "################### doesn't add up to 1 including the USD as we now sum up all the NAVs after adjusting the Futures\n", "nav = go.get_net_navs()\n", @@ -515,7 +524,26 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "#####our jump test\n", + "from serenitas.analytics import DualCorrTranche\n", + "from serenitas.analytics import Swaption, BlackSwaption, CreditIndex, BlackSwaptionVolSurface, Portfolio, ProbSurface\n", + "trade = DualCorrTranche('HY', 29, '5yr', attach=0, detach=15, corr_attach=np.nan, \n", + " corr_detach=.35, tranche_running=100, notional=-10000000, use_trunc=True)\n", + "portf = Portfolio([trade, ], ['trade', ])\n", + "portf.mark()\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", + "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", + "jtd_sabo = jtd_sabo.groupby(['company_id', 'name']).sum()\n", + "jtd_sabo = jtd_sabo.sort_values('spread', ascending=False)\n", + "top_5_avg_loss = jtd_sabo.nlargest(5, columns='jtd')['jtd'].mean()\n", + "widest_5_total_loss = jtd_sabo.nlargest(5, columns='spread')['jtd'].sum()" + ] }, { "cell_type": "code", @@ -534,9 +562,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3.9.1 64-bit", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "python39164bit6ddd573894c04d6a858a9a58880cc9d4" + "name": "python3" }, "language_info": { "codemirror_mode": { |
