{ "cells": [ { "cell_type": "raw", "metadata": {}, "source": [ "---\n", "title: \"How to calculate Max Pain using python\"\n", "summary: Next in option chain series, we now fetch the option chain and calculate the max-pain\n", "date: 2020-07-10T01:50:19Z\n", "tags: [\"Futures and Options\"]\n", "categories: [\"Posts\"]\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## What is max pain theory\n", "\n", "This [Zerodha Varsity article](https://zerodha.com/varsity/chapter/max-pain-pcr-ratio/) explains succinctly what Max Pain theory is. I urge you to read it because I've used this article as base to perform all calculations. I'll try to give a brief summary of it here.\n", "\n", "According to Max pain theory, at any given point of time option writers (sellers) will try to sell option contracts which will expire worthless at expiry. So Max pain is the point where option buyers will feel the maximum pain and option writers on the other hand stand to gain most as options is a zero sum game. [(investopedia link)](https://www.investopedia.com/terms/m/maxpain.asp)\n", "\n", "If you want to just want to look at the Max Pain values, it is already available on [niftytrader.in](https://www.niftytrader.in/options-max-pain-chart-live), but read on if you want to know how to calculate it.\n", "\n", "## Pre-rquisites\n", "\n", "`pip install requests bs4 pandas lxml matplotlibmatplotlib`\n", "\n", "## Let us get directly into the code\n", "\n", "Please download [*option_chain.py*](../option_chain.py) for this exercise and place it in your project folder. You can also read thru [previous post](../fetch) if you want understand how to fetch option chain from NSE's website.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from option_chain import option_chain\n", "nifty_chain = option_chain(\"NIFTY\", \"OPTIDX\", \"30JUL2020\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ":warning: Please remember to replace the expiry date as appropriate because you might be reading this article post 30 July 2020" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def total_loss_at_strike(chain, expiry_price):\n", " \"\"\"Calculate loss at strike price\"\"\"\n", " # All call options with strike price below the expiry price will result in loss for option writers\n", " in_money_calls = chain[chain['Strike Price'] < expiry_price][[\"CE OI\", \"Strike Price\"]]\n", " in_money_calls[\"CE loss\"] = (expiry_price - in_money_calls['Strike Price'])*in_money_calls[\"CE OI\"]\n", "\n", " # All put options with strike price above the expiry price will result in loss for option writers\n", " in_money_puts = chain[chain['Strike Price'] > expiry_price][[\"PE OI\", \"Strike Price\"]]\n", " in_money_puts[\"PE loss\"] = (in_money_puts['Strike Price'] - expiry_price)*in_money_puts[\"PE OI\"]\n", " total_loss = in_money_calls[\"CE loss\"].sum() + in_money_puts[\"PE loss\"].sum()\n", "\n", " return total_loss" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "List of strike prices" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "strikes = list(nifty_chain['Strike Price'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us calculate loss for each strike price" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "losses = [total_loss_at_strike(nifty_chain, strike)/1000000 for strike in strikes] " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plotting losses vs strike price" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "plt.plot(strikes, losses)\n", "plt.ylabel('Total loss in rs (Millon)')\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Max pain value ie. Minimum loss to option writers at strike price" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Max pain > 10500.0\n" ] } ], "source": [ "m = losses.index(min(losses))\n", "print(\"Max pain > {}\".format(strikes[m]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## How to use max pain\n", "Again quoting from [Zerodha Varsity](https://zerodha.com/varsity/chapter/max-pain-pcr-ratio/) with some modification-\n", ">Most traders use this max pain level to identity the strikes which they can write. In this case, since 10500 is the expected expiry level, one can choose to write call options above 10500 or put options below 10500 and collect all the premiums.\n", "\n", "This max pain value is actually a moving target, it may change day to day so its a good to have a ±5% buffer range and revisit the strategy if max pain value goes beyond the range\n", "\n", "### Resources\n", "You can download [*option_chain.py*](../option_chain.py) and [*max-pain.ipynb*](../max-pain.ipynb). (Right click on the link and save)\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" } }, "nbformat": 4, "nbformat_minor": 4 }