/ STRATEGY

Slingshot Trading Strategy: Explained & Backtested

Have you ever tried trading the markets with a slingshot? No, I’m not talking about using a slingshot to shoot arrows or rocks at your target. I’m talking about using Scot1and’s Slingshot Trading Setup.

In this blog post, I will be discussing the trading setup and how you can use it to trade the markets.

Here’s what you’ll be learning today:

For Nerds/Programmers (and I say that proudly):

Who Is Scot1and?

Scotland is a professional trader with multiple triple-digit annual returns under his belt. He posts his trades publicly on Twitter under his handle @scot1andT, and the slingshot is one of his bread-and-butter setups.

What Is the Slingshot?

Scot1and developed the slingshot setup to get into a powerful stock after a pullback just as the downward momentum stops and the stock begins to go back up.

The slingshot indicator, which is a component of the slingshot setup, fires when the current bar’s close crosses the 4-ema of the highs.

How to Trade the Slingshot Setup

Like everything in trading, there’s a lot of nuance and understanding of market dynamics. But in essence, here are the rules:

  • A slingshot indicator cross (duh)
  • A pullback in a strong stock (required)
  • A range break (required)
  • Consolidation (recommended)

The stop loss is at the low of the slingshot indicator trigger bar, which is why we want consolidation as it lowers the amount of risk on the trade.

If you have difficulty seeing range contraction, you can add the ADR or ATR to your charts.

Setting up the Slingshot Indicator in TradingView

Add the following code to the Pine Editor. Thank you, @taplot.

// This source code is subject to the terms of the Mozilla Public License
// 2.0 at https://mozilla.org/MPL/2.0/
// © TaPlot

//@version=5

//Code written by TA Plot https://twitter.com/TaPlot
//Written on 11/28/2021

indicator(title="TAPLOT SlingShot", shorttitle="Sling Shot", overlay=true)
C_Paintbar = input.color(title="Bar Color", defval=color.new(color.orange,0))

Paintbar=input(true,'Paint Bar?')
ShowShape=input(false,'Show SlingShot?')

EMAlen = input.int(4, minval=1, title="EMA-Length")

//MA line calculation
EMALine = ta.ema(high, EMAlen)
plot(EMALine, title="EMA")

slingshot = close > EMALine and close[1] < EMALine[1] and close[2] < EMALine[2] and close[3] < EMALine[3]

plotshape(slingshot and ShowShape?1:na,style=shape.labelup, location=location.belowbar, size=size.tiny)
barcolor(Paintbar and slingshot? C_Paintbar : na)

The Slingshot Backtest Results

I used the following parameters for this backtest:

  • Period: Hourly
  • Universe: QQQ
  • Filter: Stocks above 50-day SMA (strong stocks)
  • Filter: Stocks below their 10-day EMA (pullback)
  • Entry: Slingshot (Close above hourly 4-period EMA)
  • Exit: RR ratio or stop loss hit

2020-01-01 to 2021-12-31

rr won lost win_streak lose_streak total win_perc edge
1 2075 1725 14 9 3800 0.546053 0.092105
2 1425 1876 8 14 3301 0.431687 0.295062
3 1072 1867 7 17 2939 0.364750 0.459000
4 874 1845 6 16 2719 0.321442 0.607209
5 718 1821 5 17 2539 0.282788 0.696731
6 587 1769 5 26 2356 0.249151 0.744058
7 514 1717 5 26 2231 0.230390 0.843120
8 458 1679 5 26 2137 0.214319 0.928872
9 427 1667 5 26 2094 0.203916 1.039160
10 386 1633 4 26 2019 0.191184 1.103021

2018-01-01 to 2019-12-31

rr won lost win_streak lose_streak total win_perc edge
1 1152 1031 11 9 2183 0.527714 0.055428
2 710 1065 6 14 1775 0.400000 0.200000
3 510 1025 5 14 1535 0.332248 0.328990
4 381 997 4 14 1378 0.276488 0.382438
5 302 934 4 14 1236 0.244337 0.466019
6 239 885 4 14 1124 0.212633 0.488434
7 214 868 5 14 1082 0.197782 0.582255
8 173 828 4 14 1001 0.172827 0.555445
9 150 793 3 14 943 0.159067 0.590668
10 128 769 3 14 897 0.142698 0.569677

2016-01-01 to 2017-12-31

rr won lost win_streak lose_streak total win_perc edge
1 1255 959 11 7 2214 0.566847 0.133695
2 766 998 8 10 1764 0.434240 0.302721
3 559 941 8 11 1500 0.372667 0.490667
4 421 937 5 12 1358 0.310015 0.550074
5 344 885 5 12 1229 0.279902 0.679414
6 294 852 5 12 1146 0.256545 0.795812
7 257 814 4 13 1071 0.239963 0.919701
8 220 785 4 13 1005 0.218905 0.970149
9 209 781 4 13 990 0.211111 1.111111
10 186 737 4 13 923 0.201517 1.216685

The hourly slingshot works even during the period including Covid.

The daily and the hourly results are roughly similar from a risk-reward perspective, with the hourly slingshot providing many more trading opportunities. I had to use other trading parameters to surface that information due to lack of trades.

The Bottom Line

This is a simple vectorized backtest using basic parameters and logic.

Using confluence, such as an undercut and reclaim (U&R) of the 50-day or combining the hourly slingshot with a daily, will provide better results – and this says nothing about range contraction and breaks.

The goal with this backtest is to identify if the setup works at a high level, which it does – it’s up to you to refine it as Scot1and has. If you do this, maybe someday you’ll be hitting triple-digit annual returns like the man himself.

leo

Leo Smigel

Based in Pittsburgh, Analyzing Alpha is a blog by Leo Smigel exploring what works in the markets.