aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/notebooks/Reto Report.ipynb34
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": {