Straddle Options Trading Strategy Using Python

24 Shares

Straddle Options Strategy Using Python

By Viraj Bhagat

Introduction

An option is an easy-to-understand yet versatile instrument in the financial market whose popularity has grown by leaps and bounds in the past decade. They can be tapped to boost returns by leveraging your market position. Options are quite flexible, ie. one can also use them for managing risk by hedging, and for making a profit from a direction-wise movement of the market.

The purpose of this article is to provide an introductory understanding of the Straddle Options in Trading and can be used to create your own trading strategy.

What Is Straddle Options Strategy?

A straddle is an Options Trading Strategy wherein the trader holds a position in both Call and Put Options with the same Strike Price, the same expiry date and with the same underlying asset, by paying both the premiums.

Straddle Options Trading Strategy Using PythonClick To Tweet

How To Practice Straddle Options Strategy?

There are two ways to practise Straddle Options Strategy.

  • Directional Play: In such a dynamic market, there is a very high possibility of a stock going high or low, fluctuating with time which portrays an uncertain future for that particular stock. In this case, the price of the stock could go either way, ie. Its future is uncertain. This is often termed as “Implied Volatility”.
  • Volatility Play: It is a different way of playing the Straddle Options Strategy. It could be either an earnings announcement coming up or the Annual Budget declaration, etc. and it is suspected that the volatility would increase before the earnings are released. As per the general notion, people would flock to buy these stocks. It is at such times when Traders buy Straddle Options Strategy way too early. It has to be understood that the market would be aware of this fact which would lead to a downright increase in the ATM Call and ATM Put Options, making them pretty expensive. The key here is to exit before the event occurs.

In cases where the fate of the stock is known or can be projected, the situation can be considered exceptional.

Types Of Straddle Options Strategy

Straddle Options Strategy is of 2 Types:

  • Long Straddle: When a Call and Put option having the same Strike Price is purchased, it is considered a Long Straddle
  • Short Straddle: It is the exact opposite of a Long Straddle

Long Straddle

They are typically traded at or near the price of the underlying asset, but they can be traded otherwise as well.

Straddle Options Strategy works well in low IV regimes and the setup cost is low but the stock is expected to move a lot. It puts the Long Call and Long Put at the same exact Price, and they have the same expiry on the same asset. This is unlike that in the Strangle options trading strategy where the price of options varies.

The strategy would ideally look something like this:

Straddle Options GIF

Straddle Options Strategy Highlights

Moneyness of the options to be purchased

It can be done by either of these methods:

  • In The Money Call Option
  • In The Money Put Option

Maximum Loss: Call Premium + Put Premium

Breakeven

At expiration, if the Strike Price is above or below the amount of the Premium Paid, then the strategy would break even.

In either case of Strike Price being above or below,

  • the value of one option will be equal to the premium paid for the options, and
  • the value of the other option will be expiring worthless.

It can be described as below:

  • Upside Breakeven = Strike + Premiums Paid
  • Downside Breakeven = Strike – Premiums Paid

Learn Algorithmic trading from Experienced Market Practitioners




  • This field is for validation purposes and should be left unchanged.

How To Profit From Straddle Options Strategy?

The instrument (in this case, the stock) if drastically moves in either direction, or there is a sudden and sharp spike in the IV, that is the time when the Straddle can be profitable. More the expansion of volatility, better the benefits. This means that there is a high possibility of substantial Profit, and the Maximum Loss would be that of the Premium.

Now, if the market moves by less than 10%, then it is difficult to make a profit on this strategy. The Maximum Risk materialises if the stock price expires at the Strike Price.

Implementing The Straddle Options Strategy

I will use PNB (Pujab National Bank) (Ticker – NSE: PNB) option for this example.

Traders benefit from a Long Straddle strategy if the underlying asset moves a lot, regardless of which way it moves. The same has been witnessed in the share price of PNB if you have a look at the chart below:

PNB NSE chart

Last 1-month stock price movement (Source – Google Finance)

There has been a lot of movement in the stock price of PNB, the highest being 194.65 and lowest being 117.05 in last 1 month which is the current value as per Google Finance and an IV of 18.25%

For the purpose of this example; I will buy 1 in the money Put and 1 out of the money Call Options.

Here is the option chain of PNB for the expiry date of 29th March 2018 from Source: nseindia.com

Call chain

Puts chain

I will pay INR 16.05 for the call with a strike price of 110 and INR 8.30 for the put with a strike price of 110. The options will expire on 29th March 2018 and to make a profit out of it, there should be a substantial movement in the PNB stock before the expiry.

The net premium paid to initiate this trade will be INR 24.35 hence the stock needs to move down to 85.65 on the downside or 134.35 on the upside before this strategy will break even.

Considering the massive amount of volatility in the market due to various factors and taking into account the market recovery process from the recent downfall we can assume that there can be an opportunity to book a profit here.

How To Calculate The Straddle Options Strategy Payoff In Python?

Now, let me take you through the Payoff chart using the Python programming code.

Import Libraries

import numpy as np
import matplotlib.pyplot as plt
import seaborn
Define parameters
# PNB stock price 
spot_price = 117.05 

# Long put
strike_price_long_put = 110 
premium_long_put = 8.3

# Long call
strike_price_long_call = 110 
premium_long_call = 16.05

# Stock price range at expiration of the put
sT = np.arange(0,2*spot_price,1)

Call Payoff

We define a function that calculates the payoff from buying a call option. The function takes sT which is a range of possible values of the stock price at expiration, the strike price of the call option and premium of the call option as input. It returns the call option payoff.

The payoff should ideally look like this:

Straddle Payoff

def call_payoff(sT, strike_price, premium):
    return np.where(sT > strike_price, sT - strike_price, 0) - premium

payoff_long_call = call_payoff (sT, strike_price_long_call, premium_long_call)
# Plot
fig, ax = plt.subplots()
ax.spines['top'].set_visible(False) # Top border removed 
ax.spines['right'].set_visible(False) # Right border removed
ax.spines['bottom'].set_position('zero') # Sets the X-axis in the center
ax.plot(sT,payoff_long_call,label='Long Call',color='r')
plt.xlabel('Stock Price')
plt.ylabel('Profit and loss')
plt.legend()
plt.show()

Call Payoff

Put Payoff

We define a function that calculates the payoff from buying a put option. The function takes sT which is a range of possible values of the stock price at expiration, the strike price of the put option and premium of the put option as input. It returns the put option payoff.

def put_payoff(sT, strike_price, premium):
    return np.where(sT < strike_price, strike_price - sT, 0) - premium 

payoff_long_put = put_payoff(sT, strike_price_long_put, premium_long_put)
# Plot
fig, ax = plt.subplots()
ax.spines['top'].set_visible(False) # Top border removed 
ax.spines['right'].set_visible(False) # Right border removed
ax.spines['bottom'].set_position('zero') # Sets the X-axis in the center
ax.plot(sT,payoff_long_put,label='Long Put',color='g')
plt.xlabel('Stock Price')
plt.ylabel('Profit and loss')
plt.legend()
plt.show()

Put Payoff

Learn Algorithmic trading from Experienced Market Practitioners




  • This field is for validation purposes and should be left unchanged.

Straddle Payoff

payoff_straddle = payoff_long_call + payoff_long_put

print ("Max Profit: Unlimited")
print ("Max Loss:", min(payoff_straddle))
# Plot
fig, ax = plt.subplots()
ax.spines['top'].set_visible(False) # Top border removed 
ax.spines['right'].set_visible(False) # Right border removed
ax.spines['bottom'].set_position('zero') # Sets the X-axis in the center

ax.plot(sT,payoff_long_call,'--',label='Long Call',color='r')
ax.plot(sT,payoff_long_put,'--',label='Long Put',color='g')

ax.plot(sT,payoff_straddle,label='Straddle')
plt.xlabel('Stock Price', ha='left')
plt.ylabel('Profit and loss')
plt.legend()
plt.show()


Max Profit: Unlimited
Max Loss: -24.35

The final output would look like this:

Straddle payoff graph

Short Straddle Options Strategy

It is the exact opposite of Long Straddle Options Strategy. However, Long Straddle is often practised than Short Straddle.

Conclusion

From the above plot, for Straddle Options Strategy it is observed that the max profit is unlimited and the max loss is limited to INR 24.35. Thus, this strategy is suitable when your outlook is moderately bearish on the stock.

In this article we have covered all the elements of Straddle Options Strategy using a live market example and by understanding how the strategy can be calculated in Python.

Next Step

Are you keen on learning more about algorithmic trading? Connect with us and get to know different worldviews on financial strategies. QuantInsti® aids people in acquiring skill sets which can be applied across various trading instruments and platforms. The Executive Programme in Algorithmic Trading (EPAT™) course covers training modules like Statistics & Econometrics, Financial Computing & Technology, and Algorithmic & Quantitative Trading. EPAT™ equips you with the required skill sets to be a successful trader.

Disclaimer: All investments and trading in the stock market involve risk. Any decisions to place trades in the financial markets, including trading in stock or options or other financial instruments is a personal decision that should only be made after thorough research, including a personal risk and financial assessment and the engagement of professional assistance to the extent you believe necessary. The trading strategies or related information mentioned in this article is for informational purposes only.

Download Data File

  • Straddle Options Strategy Python Code.txt

Login to DOWNLOAD these files for FREE!

Existing Users Log In