The Broken Wing Butterfly Option Spread

Table of Contents

Say we have the following values:

Stock Price 100
Stock Volatility 0.3
Risk-free rate 0.05
Call premium 1.00
time 1/12

For our butterfly and broken-wing butterfly we'll use the following strike prices in the table below. Using the Black-Scholes option pricing model, we can calculate the call option price for each strike.

import numpy as np
from scipy.stats import norm

def bs(stock, strike, rf, vol, time):
    d1 = (1 / (vol * np.sqrt(time))) * (np.log(stock / strike) + (rf + (vol * vol) / 2) * time)
    d2 = d1 - vol * np.sqrt(time)
    call = norm.cdf(d1) * stock - norm.cdf(d2) * strike * np.exp(-rf * time)
    return round(call, 2)
Strike Price Call Premium
90 10.78
100 3.66
110 0.68
120 0.07

1. Butterfly

import seaborn
import numpy
import matplotlib.pyplot as plt
plt.style.use("dark_background")

class Butterfly:
    def __init__(self, strike_1, strike_2, strike_3, price_1, price_2, price_3):
        self.strike_1 = strike_1
        self.strike_2 = strike_2
        self.strike_3 = strike_3
        self.price_1 = price_1
        self.price_2 = price_2
        self.price_3 = price_3

    def plot(self):
       lower_range = self.strike_1 - 10
       upper_range = self.strike_3 + 10
       underlying_price = list(range(lower_range, upper_range+1))
       profit_strike_1 = numpy.array([max(i - self.strike_1, 0) - self.price_1 for i in underlying_price])
       profit_strike_2 = -2 * numpy.array([max(i - self.strike_2, 0) - self.price_2 for i in underlying_price])
       profit_strike_3 = numpy.array([max(i - self.strike_3, 0) - self.price_3 for i in underlying_price])
       spread_profit = profit_strike_1 + profit_strike_2 + profit_strike_3
       spread_plot = seaborn.lineplot(x = underlying_price, y = spread_profit)
       fig = spread_plot.get_figure()
       fig.savefig("butterfly_profit.png")
       ## spread_plot
       ## plt.show()

    def max_min(self):
        ## calculate max gain, max loss, and b/e-------


2. Broken-Wing Butterfly

Author: Matt Brigida, Ph.D.

Created: 2022-03-31 Thu 13:12

Validate