{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "BzQ2PSUMb1O7" }, "source": [ "# Calculating the Implied Earnings Move Using Options Prices\n", "\n", "Earnings day can be a pivotal moment for a company's share price. The confluence of expectations and reality is a tradable event, drawing crowds to the options market. Observing the surrounding action can provide insight into the consensus view on, and general sentiment of, the company.\n", "\n", "The cost of a straddle - the combined price of an at-the-money call and put - is a common way to gauge the near-term volatility. It's the market's expectation of the price band until expiration. While this includes time value, the isolated price of volatility will generally be higher for the expiry immediately following an earnings release.\n", "\n", "Have a look at companies that trade weekly options and are reporting a on Thursday. If they report after the close, the price of the one-day straddle at the bell will be the purest sample of information.\n", "\n", "The cells below will demonstrate how to get the data from free sources, using the OpenBB Platform." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "da3wLFHJaK1n" }, "outputs": [], "source": [ "# If using in Google Colab, install the OpenBB library.\n", "\n", "!pip install openbb[\"all\"]\n", "\n", "# Restart the runtime before the next block" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "7xcKh78TaTot", "outputId": "1b00dbc7-21cd-421a-b191-b2e8685f491d" }, "outputs": [], "source": [ "from datetime import datetime, timedelta\n", "\n", "import pandas as pd\n", "from openbb import obb\n", "\n", "obb.user.preferences.output_type = \"dataframe\"\n", "obb.user.credentials.nasdaq_api_key = \"PLACE_HOLDER\" # You don't actually need to replace this." ] }, { "cell_type": "markdown", "metadata": { "id": "WyKBFJg-R_r2" }, "source": [ "If the earnings date falls on an option expiry, contracts expiring that day will not provide exposure to the after-market earnings reports." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 711 }, "id": "49D8bfFFPEwC", "outputId": "b2eebaaa-ef2c-456a-fca2-96f6bee41b2d" }, "outputs": [ { "data": { "text/html": [ "
| \n", " | report_date | \n", "symbol | \n", "name | \n", "eps_previous | \n", "eps_consensus | \n", "num_estimates | \n", "period_ending | \n", "previous_report_date | \n", "reporting_time | \n", "market_cap | \n", "
|---|---|---|---|---|---|---|---|---|---|---|
| 26 | \n", "2024-03-07 | \n", "AVGO | \n", "Broadcom Inc. | \n", "9.83 | \n", "9.06 | \n", "8.0 | \n", "2024-01 | \n", "2023-03-02 | \n", "after-hours | \n", "6.108766e+11 | \n", "
| 27 | \n", "2024-03-07 | \n", "COST | \n", "Costco Wholesale Corporation | \n", "3.30 | \n", "3.60 | \n", "14.0 | \n", "2024-02 | \n", "2023-03-02 | \n", "after-hours | \n", "3.259489e+11 | \n", "
| 553 | \n", "2024-02-28 | \n", "CRM | \n", "Salesforce, Inc. | \n", "1.01 | \n", "1.72 | \n", "16.0 | \n", "2024-01 | \n", "2023-03-01 | \n", "after-hours | \n", "2.842532e+11 | \n", "
| 554 | \n", "2024-02-28 | \n", "RY | \n", "Royal Bank Of Canada | \n", "2.26 | \n", "2.10 | \n", "4.0 | \n", "2024-01 | \n", "2023-03-01 | \n", "pre-market | \n", "1.380355e+11 | \n", "
| 796 | \n", "2024-02-27 | \n", "LOW | \n", "Lowe's Companies, Inc. | \n", "2.28 | \n", "1.68 | \n", "15.0 | \n", "2024-01 | \n", "2023-03-01 | \n", "pre-market | \n", "1.325692e+11 | \n", "
| 28 | \n", "2024-03-07 | \n", "PBR | \n", "Petroleo Brasileiro S.A.- Petrobras | \n", "1.25 | \n", "1.13 | \n", "3.0 | \n", "2023-12 | \n", "2023-03-02 | \n", "not-supplied | \n", "1.146585e+11 | \n", "
| 555 | \n", "2024-02-28 | \n", "TJX | \n", "TJX Companies, Inc. (The) | \n", "0.89 | \n", "1.11 | \n", "10.0 | \n", "2024-01 | \n", "2023-02-22 | \n", "pre-market | \n", "1.129534e+11 | \n", "
| 29 | \n", "2024-03-07 | \n", "PBR.A | \n", "Petroleo Brasileiro S.A.- Petrobras | \n", "1.25 | \n", "NaN | \n", "5.0 | \n", "2023-12 | \n", "None | \n", "not-supplied | \n", "1.108105e+11 | \n", "
| 383 | \n", "2024-02-29 | \n", "BUD | \n", "Anheuser-Busch Inbev SA | \n", "0.98 | \n", "0.76 | \n", "4.0 | \n", "2023-12 | \n", "2023-03-02 | \n", "pre-market | \n", "1.101379e+11 | \n", "
| 384 | \n", "2024-02-29 | \n", "TD | \n", "Toronto Dominion Bank (The) | \n", "1.64 | \n", "1.46 | \n", "4.0 | \n", "2024-01 | \n", "2023-03-02 | \n", "pre-market | \n", "1.074778e+11 | \n", "
| 797 | \n", "2024-02-27 | \n", "AMT | \n", "American Tower Corporation (REIT) | \n", "2.34 | \n", "2.10 | \n", "7.0 | \n", "2023-12 | \n", "2023-02-23 | \n", "pre-market | \n", "8.764370e+10 | \n", "
| 1099 | \n", "2024-02-26 | \n", "WDAY | \n", "Workday, Inc. | \n", "-0.14 | \n", "0.32 | \n", "6.0 | \n", "2024-01 | \n", "2023-02-27 | \n", "after-hours | \n", "8.064106e+10 | \n", "
| 217 | \n", "2024-03-05 | \n", "CRWD | \n", "CrowdStrike Holdings, Inc. | \n", "-0.17 | \n", "0.18 | \n", "14.0 | \n", "2024-01 | \n", "2023-03-07 | \n", "after-hours | \n", "7.466342e+10 | \n", "
| 556 | \n", "2024-02-28 | \n", "SNOW | \n", "Snowflake Inc. | \n", "-0.60 | \n", "-0.49 | \n", "4.0 | \n", "2024-01 | \n", "2023-03-01 | \n", "after-hours | \n", "7.429667e+10 | \n", "
| 385 | \n", "2024-02-29 | \n", "CNQ | \n", "Canadian Natural Resources Limited | \n", "1.44 | \n", "1.53 | \n", "5.0 | \n", "2023-12 | \n", "2023-03-02 | \n", "pre-market | \n", "7.205709e+10 | \n", "
| 386 | \n", "2024-02-29 | \n", "NTES | \n", "NetEase, Inc. | \n", "0.88 | \n", "1.62 | \n", "2.0 | \n", "2023-12 | \n", "2023-02-23 | \n", "pre-market | \n", "7.017184e+10 | \n", "
| 218 | \n", "2024-03-05 | \n", "TGT | \n", "Target Corporation | \n", "1.89 | \n", "2.38 | \n", "16.0 | \n", "2024-01 | \n", "2023-02-28 | \n", "pre-market | \n", "6.940624e+10 | \n", "
| 798 | \n", "2024-02-27 | \n", "BMO | \n", "Bank Of Montreal | \n", "2.39 | \n", "2.28 | \n", "4.0 | \n", "2024-01 | \n", "2023-02-28 | \n", "pre-market | \n", "6.832777e+10 | \n", "
| 387 | \n", "2024-02-29 | \n", "DELL | \n", "Dell Technologies Inc. | \n", "1.55 | \n", "1.47 | \n", "4.0 | \n", "2024-01 | \n", "2023-03-02 | \n", "after-hours | \n", "6.247146e+10 | \n", "
| 30 | \n", "2024-03-07 | \n", "MRVL | \n", "Marvell Technology, Inc. | \n", "0.34 | \n", "0.29 | \n", "12.0 | \n", "2024-01 | \n", "2023-03-02 | \n", "after-hours | \n", "6.040262e+10 | \n", "
| \n", " | contract_symbol | \n", "expiration | \n", "strike | \n", "option_type | \n", "open_interest | \n", "volume | \n", "theoretical_price | \n", "last_trade_price | \n", "tick | \n", "bid | \n", "... | \n", "change | \n", "change_percent | \n", "implied_volatility | \n", "delta | \n", "gamma | \n", "theta | \n", "vega | \n", "rho | \n", "last_trade_timestamp | \n", "dte | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "CRM240301C00135000 | \n", "2024-03-01 | \n", "135.0 | \n", "call | \n", "0 | \n", "0 | \n", "157.9118 | \n", "0.00 | \n", "no_change | \n", "157.15 | \n", "... | \n", "0.000 | \n", "0.000 | \n", "2.1031 | \n", "0.9997 | \n", "0.0000 | \n", "0.0000 | \n", "0.0004 | \n", "0.0210 | \n", "NaT | \n", "5 | \n", "
| 1 | \n", "CRM240301P00135000 | \n", "2024-03-01 | \n", "135.0 | \n", "put | \n", "64 | \n", "5 | \n", "0.0038 | \n", "0.01 | \n", "down | \n", "0.00 | \n", "... | \n", "-0.070 | \n", "-0.875 | \n", "1.6854 | \n", "-0.0002 | \n", "0.0000 | \n", "-0.0026 | \n", "0.0003 | \n", "0.0000 | \n", "2024-02-23 13:27:03 | \n", "5 | \n", "
| 2 | \n", "CRM240301C00140000 | \n", "2024-03-01 | \n", "140.0 | \n", "call | \n", "0 | \n", "0 | \n", "152.9175 | \n", "0.00 | \n", "no_change | \n", "152.00 | \n", "... | \n", "0.000 | \n", "0.000 | \n", "0.0000 | \n", "0.9997 | \n", "0.0000 | \n", "0.0000 | \n", "0.0004 | \n", "0.0221 | \n", "NaT | \n", "5 | \n", "
| 3 | \n", "CRM240301P00140000 | \n", "2024-03-01 | \n", "140.0 | \n", "put | \n", "0 | \n", "0 | \n", "0.0040 | \n", "0.00 | \n", "no_change | \n", "0.00 | \n", "... | \n", "0.000 | \n", "0.000 | \n", "1.6954 | \n", "-0.0003 | \n", "0.0000 | \n", "-0.0028 | \n", "0.0004 | \n", "0.0000 | \n", "NaT | \n", "5 | \n", "
| 4 | \n", "CRM240301C00145000 | \n", "2024-03-01 | \n", "145.0 | \n", "call | \n", "0 | \n", "0 | \n", "147.9232 | \n", "0.00 | \n", "no_change | \n", "147.10 | \n", "... | \n", "0.000 | \n", "0.000 | \n", "1.7827 | \n", "0.9997 | \n", "0.0000 | \n", "0.0000 | \n", "0.0004 | \n", "0.0232 | \n", "NaT | \n", "5 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 163 | \n", "CRM240301P00377500 | \n", "2024-03-01 | \n", "377.5 | \n", "put | \n", "0 | \n", "0 | \n", "84.7275 | \n", "0.00 | \n", "no_change | \n", "83.80 | \n", "... | \n", "0.000 | \n", "0.000 | \n", "0.0000 | \n", "-0.9971 | \n", "0.0009 | \n", "-0.0457 | \n", "0.0032 | \n", "-0.0049 | \n", "NaT | \n", "5 | \n", "
| 164 | \n", "CRM240301C00380000 | \n", "2024-03-01 | \n", "380.0 | \n", "call | \n", "41 | \n", "3 | \n", "0.0825 | \n", "0.14 | \n", "up | \n", "0.08 | \n", "... | \n", "0.005 | \n", "0.037 | \n", "0.8024 | \n", "0.0087 | \n", "0.0008 | \n", "-0.0416 | \n", "0.0096 | \n", "0.0004 | \n", "2024-02-23 14:41:10 | \n", "5 | \n", "
| 165 | \n", "CRM240301P00380000 | \n", "2024-03-01 | \n", "380.0 | \n", "put | \n", "0 | \n", "0 | \n", "87.2249 | \n", "0.00 | \n", "no_change | \n", "86.30 | \n", "... | \n", "0.000 | \n", "0.000 | \n", "0.0000 | \n", "-0.9982 | \n", "0.0006 | \n", "-0.0432 | \n", "0.0014 | \n", "0.0000 | \n", "NaT | \n", "5 | \n", "
| 166 | \n", "CRM240301C00390000 | \n", "2024-03-01 | \n", "390.0 | \n", "call | \n", "51 | \n", "59 | \n", "0.0441 | \n", "0.11 | \n", "up | \n", "0.04 | \n", "... | \n", "0.010 | \n", "0.100 | \n", "0.8468 | \n", "0.0049 | \n", "0.0004 | \n", "-0.0242 | \n", "0.0057 | \n", "0.0002 | \n", "2024-02-23 13:57:21 | \n", "5 | \n", "
| 167 | \n", "CRM240301P00390000 | \n", "2024-03-01 | \n", "390.0 | \n", "put | \n", "0 | \n", "0 | \n", "97.2249 | \n", "0.00 | \n", "no_change | \n", "96.40 | \n", "... | \n", "0.000 | \n", "0.000 | \n", "0.8974 | \n", "-1.0000 | \n", "0.0000 | \n", "-0.0432 | \n", "0.0000 | \n", "0.0000 | \n", "NaT | \n", "5 | \n", "
168 rows × 27 columns
\n", "| \n", " | contract_symbol | \n", "expiration | \n", "strike | \n", "option_type | \n", "open_interest | \n", "volume | \n", "theoretical_price | \n", "last_trade_price | \n", "tick | \n", "bid | \n", "... | \n", "change | \n", "change_percent | \n", "implied_volatility | \n", "delta | \n", "gamma | \n", "theta | \n", "vega | \n", "rho | \n", "last_trade_timestamp | \n", "dte | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 96 | \n", "CRM240301C00295000 | \n", "2024-03-01 | \n", "295.0 | \n", "call | \n", "540 | \n", "315 | \n", "9.8163 | \n", "10.05 | \n", "down | \n", "9.85 | \n", "... | \n", "-0.375 | \n", "-0.0360 | \n", "0.6666 | \n", "0.4904 | \n", "0.0148 | \n", "-0.7900 | \n", "0.1620 | \n", "0.0254 | \n", "2024-02-23 15:59:01 | \n", "5 | \n", "
| 97 | \n", "CRM240301P00295000 | \n", "2024-03-01 | \n", "295.0 | \n", "put | \n", "141 | \n", "47 | \n", "11.7541 | \n", "11.85 | \n", "up | \n", "11.75 | \n", "... | \n", "0.375 | \n", "0.0327 | \n", "0.6658 | \n", "-0.5107 | \n", "0.0148 | \n", "-0.7925 | \n", "0.1619 | \n", "-0.0272 | \n", "2024-02-23 15:59:59 | \n", "5 | \n", "
2 rows × 27 columns
\n", "| \n", " | contract_symbol | \n", "expiration | \n", "strike | \n", "option_type | \n", "open_interest | \n", "volume | \n", "theoretical_price | \n", "last_trade_price | \n", "tick | \n", "bid | \n", "... | \n", "change | \n", "change_percent | \n", "implied_volatility | \n", "delta | \n", "gamma | \n", "theta | \n", "vega | \n", "rho | \n", "last_trade_timestamp | \n", "dte | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 94 | \n", "CRM240301C00292500 | \n", "2024-03-01 | \n", "292.5 | \n", "call | \n", "155 | \n", "154 | \n", "10.9659 | \n", "11.25 | \n", "up | \n", "11.0 | \n", "... | \n", "-0.350 | \n", "-0.0302 | \n", "0.6679 | \n", "0.5271 | \n", "0.0148 | \n", "-0.7864 | \n", "0.1617 | \n", "0.0272 | \n", "2024-02-23 15:50:02 | \n", "5 | \n", "
| 95 | \n", "CRM240301P00292500 | \n", "2024-03-01 | \n", "292.5 | \n", "put | \n", "96 | \n", "119 | \n", "10.4037 | \n", "10.55 | \n", "up | \n", "10.4 | \n", "... | \n", "0.375 | \n", "0.0369 | \n", "0.6640 | \n", "-0.4739 | \n", "0.0148 | \n", "-0.7890 | \n", "0.1616 | \n", "-0.0254 | \n", "2024-02-23 15:59:59 | \n", "5 | \n", "
2 rows × 27 columns
\n", "| \n", " | contract_symbol | \n", "expiration | \n", "strike | \n", "option_type | \n", "open_interest | \n", "volume | \n", "theoretical_price | \n", "last_trade_price | \n", "tick | \n", "bid | \n", "... | \n", "change | \n", "change_percent | \n", "implied_volatility | \n", "delta | \n", "gamma | \n", "theta | \n", "vega | \n", "rho | \n", "last_trade_timestamp | \n", "dte | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 96 | \n", "CRM240301C00295000 | \n", "2024-03-01 | \n", "295.0 | \n", "call | \n", "540 | \n", "315 | \n", "9.8163 | \n", "10.05 | \n", "down | \n", "9.85 | \n", "... | \n", "-0.375 | \n", "-0.0360 | \n", "0.6666 | \n", "0.4904 | \n", "0.0148 | \n", "-0.790 | \n", "0.1620 | \n", "0.0254 | \n", "2024-02-23 15:59:01 | \n", "5 | \n", "
| 95 | \n", "CRM240301P00292500 | \n", "2024-03-01 | \n", "292.5 | \n", "put | \n", "96 | \n", "119 | \n", "10.4037 | \n", "10.55 | \n", "up | \n", "10.40 | \n", "... | \n", "0.375 | \n", "0.0369 | \n", "0.6640 | \n", "-0.4739 | \n", "0.0148 | \n", "-0.789 | \n", "0.1616 | \n", "-0.0254 | \n", "2024-02-23 15:59:59 | \n", "5 | \n", "
2 rows × 27 columns
\n", "