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