aboutsummaryrefslogtreecommitdiffstats
path: root/python/notebooks/Option Trades.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'python/notebooks/Option Trades.ipynb')
-rw-r--r--python/notebooks/Option Trades.ipynb55
1 files changed, 48 insertions, 7 deletions
diff --git a/python/notebooks/Option Trades.ipynb b/python/notebooks/Option Trades.ipynb
index d43d86ee..6d60669c 100644
--- a/python/notebooks/Option Trades.ipynb
+++ b/python/notebooks/Option Trades.ipynb
@@ -57,7 +57,7 @@
" df = df.set_index(['date', 'price', 'vol_shock'])\n",
" sort_order = [True, False]\n",
" else:\n",
- " ss_df['spread'] = portf.indices[0].spread * (1 + df.spread_shock)\n",
+ " df['spread'] = portf.indices[0].spread * (1 + df.spread_shock)\n",
" df = df.set_index(['date', 'spread', 'vol_shock'])\n",
" sort_order = [True, True]\n",
" \n",
@@ -83,15 +83,56 @@
"outputs": [],
"source": [
"#Ad hoc\n",
+ "index = 'IG'\n",
+ "series = 31\n",
+ "value_date = datetime.date(2018, 11, 18)\n",
+ "option_delta = CreditIndex(index, series, '5yr', value_date)\n",
+ "option_delta.spread = 76.5\n",
+ "option1 = BlackSwaption(option_delta, datetime.date(2019, 2, 20), 65, option_type=\"payer\")\n",
+ "option2 = BlackSwaption(option_delta, datetime.date(2019, 2, 20), 90, option_type=\"payer\")\n",
+ "option3 = BlackSwaption(option_delta, datetime.date(2019, 2, 20), 60, option_type=\"payer\")\n",
+ "option1.sigma = .425\n",
+ "option2.sigma = .59\n",
+ "option3.sigma = .0\n",
+ "option1.notional = 300_000_000\n",
+ "option2.notional = 300_000_000\n",
+ "option3.notional = 1\n",
+ "option1.direction = 'Long'\n",
+ "option2.direction = 'Short'\n",
+ "option3.direction = 'Long'\n",
+ "option_delta.notional = 1\n",
+ "option_delta.notional = option1.notional * option1.delta + option2.notional * option2.delta + option3.notional * option3.delta\n",
+ "option_delta.direction = 'Seller' if option_delta.notional > 0 else 'Buyer'\n",
+ "option_delta.notional = abs(option_delta.notional)\n",
+ "portf = Portfolio([option1, option2, option3, option_delta], trade_ids=['opt1', 'opt2', 'opt3', 'delta'])\n",
+ "#Plot Scenarios Inputs: Portfolio, spread shock tightening%, spread shock widening%, snapshot period)\n",
+ "portf"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "plot_trade_scenarios(portf)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Ad hoc\n",
"index = 'HY'\n",
"series = 30\n",
"value_date = datetime.date(2018, 6, 7)\n",
"option_delta = CreditIndex(index, series, '5yr', value_date)\n",
- "#option_delta.spread = 66\n",
- "option_delta.price = 106.75\n",
- "option1 = BlackSwaption(option_delta, datetime.date(2018, 8, 15), 103, option_type=\"payer\")\n",
- "option2 = BlackSwaption(option_delta, datetime.date(2018, 8, 15), 101.5, option_type=\"payer\")\n",
- "option3 = BlackSwaption(option_delta, datetime.date(2018, 8, 15), 100, option_type=\"payer\")\n",
+ "option_delta.spread = 66\n",
+ "option1 = BlackSwaption(option_delta, datetime.date(2018, 10, 17), 55, option_type=\"receiver\")\n",
+ "option2 = BlackSwaption(option_delta, datetime.date(2018, 10, 17), 57.5, option_type=\"receiver\")\n",
+ "option3 = BlackSwaption(option_delta, datetime.date(2018, 10, 17), 60, option_type=\"receiver\")\n",
"option1.sigma = .47\n",
"option2.sigma = .53\n",
"option3.sigma = .69\n",
@@ -255,7 +296,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.6.6"
+ "version": "3.7.1"
}
},
"nbformat": 4,