John Locke (@Locke4Success) is a reputable source when it comes to Options Trading Strategies. You can find many of his trading strategies on YouTube, for free.
His strategies and their variants are often simulated with MesoSim.We are now adding his Super Bull strategy as a featured trade to our strategy library.
The rules were constructed as discussed in his youtube videos.
Structure
SuperBull is a Bullish Call Vertical Spread that is initiated precisely at 65 DTE.
Vertical spreads are characterized by defined risk and limited upside potential.
Rules
The rules are summarized in the two screenshots and explained in the video in the Guidelines section.
Entry
Timing and expirations
The trade is entered exactly at 65 Days To Expiration, utilizing the generic monthly expiration cycles:
"Expirations": [ {
"Name": "exp1",
"DTE": "65",
"Min": 65,
"Max": 65,
"Roots": {
"Include": [ "SPX” ]
}
}
]
Strike Selection
The strikes are selected in a manner where the long legs are positioned 20 points above the current price of the underlying asset and the shorts are chosen to achieve a Risk/Reward ratio that is close to 1.0
To construct the spread we are using MesoSim’s Complex StrikeSelector feature.
Long Call
The strike closest to 20 points above the underlying price can be determined by setting the Complex StrikeSelector’s Target to underlying_price + 20
and specifying the constraint to ensure that the chosen leg’s strike will be always above the underlying price. This constraint is necessary because the Selector selects the nearest contract to our target, which - in some cases - may be below the underlying price.
The Statement field of the selector is evaluated for each contract and represents the strike. According to the SuperBull rules, our target will be 20 points above the current underlying price.
{
"Name": "long",
"Qty": "1",
"ExpirationName": "exp1",
"StrikeSelector": {
"Complex": {
"Statement": "leg_long_strike",
"Target": "underlying_price + 20",
"Constraint": "leg_long_strike > underlying_price"
}
},
"OptionType": "Call"
}
Short Call
Our objective is to choose the short leg in a way that the Risk/Reward ratio of the spread is close to 1.Risk/Reward ratio can be calculated:
risk_reward=Entry Debit / Max Profit
Where
Entry Debit (maximum loss) = Long Leg’s Price - Short Leg’s Price Max Profit = Short Leg’s Strike - Long Leg’s Strike - Entry Debit
This calculation can be defined as:
"Complex": {
"Statement": "(leg_long_price * leg_long_qty + leg_short_price * leg_short_qty) / ((leg_short_strike - leg_long_strike) * leg_long_qty - (leg_long_price * leg_long_qty + leg_short_price * leg_short_qty))",
"Target": "1",
"Constraint": "leg_short_strike > leg_long_strike"
}
About the Risk/Reward ratio
While John suggests aiming for a 1:1 Risk/Reward ratio, he shows multiple examples where the trade is initiated with a ratio lower than that. He explains that this is due to the unusual volatility skew observed on those particular days. In such trades, the risk/reward ratio was around 1.5 at the initiation.
Sizing
John suggests that the trade should be sized so that it risks a maximum of 10% of the account size. This rule was implemented in our run using Entry.AbortConditions
: We abort the entry if the Entry Debit would be greater than 10% of our NAV.
In our initial attempts, we used one contract for each leg. This turned out to be inadequate: Most of the time we under-sized the position (Maximum Risk was around 1% of NAV). To alleviate this problem we introduced Entry.QtyMultiplier
to MesoSim, which is capable of scaling all the legs, once they are identified. We leverage this feature to target a maximum loss of 10% (in terms of account size) for our trades.
Exit
The exit rules for the strategy can be summarized as follows:
When the next monthly expiration becomes 65 days away, we enter a second trade. From that point onwards, we monitor the progress of the first trade. If the first generates a positive return, we exit the trade. However, if the first trade is at a loss we wait until it becomes profitable or reaches expiration.
These rules in MesoSim can be expressed as:
"Exit": {
"Schedule": {
"BeforeMarketCloseMinutes": 30,
"Every": "day"
},
"Conditions": [
"(pos_in_flight > 1) and (days_in_trade > 28) and (pos_pnl > 0)"
]
}
OptionNet Explorer accuracy
OptionNet Explorer is frequently utilized by options traders for modeling and manually simulating trades. It is essential to comprehend the accuracy and limitations of its simulation and real trading accuracy before engaging in trading activities. This section provides concise insights into these limitations, allowing the reader to better understand the comparison between MesoSim and OptionNet simulated results.
Backtest result resolution
ONE displays the strategy’s summary PnL chart using only the realized dollar amounts.
This represents the lowest resolution possible for backtesting as it lacks information about drawdowns experienced during the trades.
Furthermore, common financial metrics, like CAGR (Compound Annual Growth Rate), Max Drawdown, and Sharpe Ratio are absent from ONE’s report.
Live Trading accuracy
OptionNet Explorer can be utilized for initiating and monitoring live trades. However, there is one potential accuracy issue to be aware of. When entering complex (multi-legged) trades using the compounded Option Price, the individual leg prices in OptionNet often differ from the actual fills. Therefore, it is necessary to manually adjust the prices of the individual legs after entering the trade. This adjustment can be performed using the Trade Log window.
Lack of benchmark
OptionNet Explorer does not have the feature of comparing strategies to other strategies or benchmarks, such as the S&P-500 (^SPX).
Without reference points, it becomes challenging to determine whether the strategy “beat the market” or not.
Compared to MesoSim
In contrast, MesoSim’s performance reporting tracks daily NAV values and computes quantitative performance metrics for both the strategy and the benchmark, such as Sharpe, Sortino, Omega, and more.
This information provides a more precise representation of the strategy’s performance, allowing the user to better understand its expected performance.
Please note that we do not mean to suggest that MesoSim is better than OptionNet. Instead, we state that OptionNet's functionality can be extended by MesoSim's automated backtesting and performance reporting capabilities.
In other words: MesoSim is a companion service to OptionNet Explorer.
SuperBull Results
We’ll be using the 2013 - 2023 time period to assess the strategy performance under various market conditions.
Overview
You can access the associated MesoSim run here: https://portal.deltaray.io/backtests/45d26d23-6e7f-4655-9893-be15f29ea140
Analysis
Our win rate of 85.2% (81/95) confirms that we are close to what John achieves (86%) with this trade.
Both the Log Return and yearly breakdown charts show that the trade performs well during Bull Markets, such as 2013-2014, 2019, and 2021. However, it exhibits higher volatility during sideways markets.
If we compare SuperBull with the S&P-500 Buy and Hold strategy we can conclude that it performs better in the validation period:
- Higher CAGR: 16.7% vs 10.11%
- Slightly lower max drawdown: -34.06% vs -34.83%
- Improved Sharpe ratio 0.89 vs 0.67
- It has low margin requirements
Surprisingly, this strategy didn't exhibit a large drawdown during COVID as the Maximum Loss based Entry Filter prevented it from entering during market turmoil.
The Relaxed SuperBull
Rafael Munhoz, a key contributor to our community has thoroughly analyzed this trade and developed his own variant. Based on his experience, it proved challenging to find optimal trades that offered a 1:1 risk/reward ratio. He made adjustments to the trade to address these challenges and generously shared his results with us.
Entry Differences
The original trade targets verticals using the 1:1 risk/reward ratio exactly at 65DTE.Rafael made a decision to relax these rules:
- Consider trades between 65 to 75 DTE, targeting 60
- Allow for an expanded range of risk/reward values using the inverted metric:
reward/risk >= 0.7
- Define the Call Debit spread using ATM Delta=48 and Debit price of $500
- Enable up to 10 positions in flight
- Trade -2x2 contracts in each position
Exit Improvements
The original exit rules are substituted with the following, more conventional, triple barrier type of exit strategy:
- Profit Target: 50% of max profit (entry debit)
- Stop Loss: 200% of max profit
- Max Days In Trade: 60
Results
You can access the MesoSim run here: https://portal.deltaray.io/backtests/5cc071d8-d9c1-43c0-8107-644de848dcdc
His results are improving the original trade by having higher CAGR, reduced Drawdown, (and therefore) improved Sharpe:
- CAGR: 19.4% vs 16.7%
- Max Drawdown: 30.55% vs 34.06%
- Sharpe: 1.06 vs 0.89
Similar to the original trade, the Relaxed SuperBull also excels in bull markets andit has outstanding performance in the 2013-2014 period.
Due to its more dynamic exit criteria and re-entry rules, it responds fairly well to crashes, such as COVID.
However, unlike the other trade, this variant demands more attention from the trader as the entries and exits are more frequent and dynamic compared to the original strategy.
Thanks and final note
Both Rafael and ourselves believe that John's trade is worth studying. None of us is affiliated with John in any way.
We would like to thank John Locke and Rafael Munhoz for sharing the SuperBull and the SuperBull-Relaxed trades with the options trading community!