Synthetic Long Put Options Trading Strategy In Python

6 min read

By Viraj Bhagat

There are numerous traders out there practising countless trading strategies. Some familiar ones are the Iron Butterfly, Long Strangle, Bear Spread, etc. Options Trading Strategies have carved their very own space in this quick life of trading and helped traders vastly by benefiting them by improving trading strategies. One often comes across Synthetic Options while doing so, which brings us to our trading strategy for today, Synthetic Long Put Options Trading Strategy. While trading, it is always essential to know that it is not possible to survive solely on the basis of old and traditional trading methods and practices. The world is shifting towards algorithmic trading, and it is essential for traders to improve their trading practises and methods for their betterment. This also results in quick replications of models, strategies and even practises and evolution of the same and as a result, today, we see many modified options trading strategies. Traders practise synthetic trading to make use of their calls and puts instead of the original thing, as another trading instrument, to make sure it stays unique to the market, is customizable, helps take the advantage of the market and can be practised easily. One of which we would be studying today.

What Is A Synthetic Long Put?

It can be graphically represented as: Synthetic Long Put This combination is just similar to a Long Put and has similar qualities. In a put option, one enters only to benefit of the price movement in the underlying stock and there is no underlying position in the stock. This will simulate a long put position and the payoff would be equivalent to the Long Put. Thus, it is often practised in place of Long Put. Here, one can save costs making few transactions by holding the calls and shorting the stocks. Combined, these two components create the exact risk/reward profile of a straight long put.

Before we proceed, let's quickly recap some basics of Synthetic Positions in Trading.

What Are Synthetic Positions In Trading?

Synthetic Positions are often used to mimic the market positions as they are able to perform similar to the original thing and have similar risks and rewards. They can be created in the following 2 ways:
#1 By combining different options contracts to emulate a long or a short position on a stock.
#2 By combining options contracts and stocks to emulate a basic strategy

Types of Synthetic Positions

There are six different types of Synthetic Positions which exist and have been used by Traders for trading. These are as follows:

Long Call Spread = Short Put Spread

Short Call Spread = Short Put Spread

As far as a Synthetic put goes, it is a combination of a Short Stock and a Long Call, providing Liquidity and flexibility. It is a strategy that makes it look like a Put option, but it is Synthetic Put.

Why Synthetic Positions?

One often questions the purpose of creating a strategy similar to the original one and how it would benefit them in the long run. Well, it makes the most efficient use of the capital unlike the normal trading strategies. We discuss all this and much more in detail. In this article I will specifically focus on the Synthetic Long Put Options Trading Strategy.

When To Enter Into A Synthetic Put?

A trader has initiated a short futures position and feels that stocks are being oversold and anticipating the danger, he is concerned about the long-term weakness of the security. If and when the stock declines, he isn’t quite sure if that would really happen and buys a call to hedge the downside of the short future. This strategy will prove to be more fruitful if it spirals downwards as quickly and swiftly as possible. The trader has a short position in the futures, which if the stock rises, will be protected by the long call option. It is also often considered as an improvement on the short stock position.

Synthetic Long Put Trading Strategy Highlights

Construction Of Synthetic Long Put Strategy

  • Short 100 Shares
  • Long 1 ATM Call (Lot size = 100)

Maximum Gain/Profit = Short sale price/Price of Stock - Premium paid Maximum Loss = Strike price - Short sale price premium paid Price of Underlying >/= Strike Price of Long Call Break-even Point = Strike Price + Premium Paid At the breakeven point, the Strike Price is inversely proportional to the profit

Implementing The Synthetic Long Put Trading Strategy

I will use SBI (Ticker – SBIN) for this example. SBIN Stock Price Last 1-month stock price movement (Source – Google Finance). There has been a lot of movement in the stock price of SBI, the highest being 255.70 and lowest being 249.25 in last 1 month (as on 28 Mar. 2018) which is the current value as per Google Finance. For the purpose of this example; I will Buy 1 ATM Call (Strike Price: 250 and Premium: 9.80) and Sell 1 Futures (Last Price: 250.70). Here is the option chain of SBIN for the expiry date of 26th April 2018 from SBIN Options Chain Synthetic Put And here’s the option chain for SBIN Futures SBIN Futures Options Chain

How To Calculate The Synthetic Long Put Strategy Payoff In Python?

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

Importing The Library

Import Libraries
import numpy as np
import matplotlib.pyplot as plt
Define Parameters
# SBIN stock price
spot_price = 249.25
# Long call
strike_price_long_call = 250
premium_long_call = 9.80
# Stock price range at expiration of the put
sT = np.arange(150,350,1)

Call Payoff

We define a function that calculates the payoff of a call option. The function takes sT which is a range of possible values of stock price at expiration, strike price of the call option and premium of the call option as input. It returns the call option 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='g')
plt.xlabel('Stock Price')
plt.ylabel('Profit and loss')

Long Call Payoff

Stock Payoff

stock_payoff = (sT - spot_price)*-1.0

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,stock_payoff,label='Stock Payoff',color='b')
plt.xlabel('Stock Price')
plt.ylabel('Profit and loss')

Stock Payoff

Synthetic Long Put Payoff

payoff_synthetic_long_put = payoff_long_call + stock_payoff
# 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_synthetic_long_put,label='Synthetic Long Put')
plt.xlabel('Stock Price')
plt.ylabel('Profit and loss')

Synthetic Long Put Payoff

print ("Max Profit:", max(payoff_synthetic_long_put))
print ("Max Loss:", min(payoff_synthetic_long_put))

Max Profit: 89.45 INR Max Loss: -10.55 INR Since the above payoff diagram represents the payoff diagram of a Put Option, it is called as a Synthetic Long Put.


This strategy is quite similar to a Put strategy in terms of similar risk and reward. Those traders who are not so sure about selling a futures contract or constructing and aggressive option spread but are looking to profit can practise this strategy. It is imperative to remember that options have an expiry unlike stocks if one wishes to create a Synthetic Long Put.

Modern trading demands a systematic approach and the need to steer yourself away from trading from the gut. Learn how you too can trade options in a systematic manner with our course on Systematic Options Trading. Plus, you get to explore explore options trading strategies like a butterfly, iron condor, and spread strategies. Enroll now!

Download Data File

  • Synthetic Long Put Trading Strategy - Python Code

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.

EOV webinar