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.

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, so 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)

Setting up the Slingshot Indicator in TradingView

Here are the TC2000 Slingshot settings. Thank you, @scot1landT.

Scot1land's Slingshot Setup for TC2000

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

rrwonlostwin_streaklose_streakwin_percedge
1207517251490.5460530.0921
2142518768140.4316870.2950
3107218677170.3647500.4590
487418456160.3214420.6072
571818215170.2827880.6967
658717695260.2491510.7440
751417175260.2303900.8431
845816795260.2143190.9288
942716675260.2039161.0391
1038616334260.1911841.1030

2018-01-01 to 2019-12-31

rrwonlostwin_streaklose_streakwin_percedge
1115210311190.5277140.0554
271010656140.4000000.2000
351010255140.3322480.3289
43819974140.2764880.3824
53029344140.2443370.4660
62398854140.2126330.4884
72148685140.1977820.5822
81738284140.1728270.5554
91507933140.1590670.5906
101287693140.1426980.5696

2016-01-01 to 2017-12-31

rrwonlostwin_streaklose_streakwin_percedge
112559591170.5668470.1336
27669988100.4342400.3027
35599418110.3726670.4906
44219375120.3100150.5500
53448855120.2799020.6794
62948525120.2565450.7958
72578144130.2399630.9197
82207854130.2189050.9701
92097814130.2111111.1111
101867374130.2015171.2166

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. Due to a lack of trades, I had to use other trading parameters to surface that information.

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. Maybe someday, you’ll be hitting triple-digit annual returns like the man himself if you do this.

Leave a Comment