This RSI Strategy had an 80%+ Win-Rate since 1990 | RSI PowerZones [2021]

What if I told you that I could teach you an investment strategy that has accurately predicted the direction of the US Stock Market more than 80% of the time from 1990 through 2021? This strategy holds its trades on average just 4 to 7 days and requires almost no oversight from the investor. The strategy can actually dispatch alerts whenever a signal is triggered so you know exactly when to enter and exit your position. Better still, you can also connect the strategy directly to your brokerage account to automatically buy and sell on your behalf whenever a signal is triggered?

In today’s post I’m going to introduce you to high probability investing by executing a highly popular (and profitable) investment strategy against various markets to demonstrate how well the strategy has performed over the previous 30 years.

I’ll show you how to setup your chart and implement the strategy yourself. So stick around because if any of this sounds interesting to you then today’s post is going to be something really special.

INTRODUCTION

For this strategy you only need to understand just two technical indicators. Indicators are formulas we can overlay on top of a candlestick chart to give us extra insight into the behavior of market participants. The two indicators we need for this strategy are the 200-day Simple Moving average and the Relative Strength Index (or RSI).

First is the 200-day moving average. I could talk for an hour about this indicator but for the purpose of today’s lesson you just need to understand that the 200-day moving average is the Rubicon and prices should never cross below it. If a price falls below its 200-day SMA then there’s a very high probability that bad things are in store for the stock.

The second indicator is the Relative Strength Index or RSI. The RSI is a momentum indicator that compares the current price with an average of its previous prices. Most people use the RSI to measure overbought and oversold conditions which is just another way of saying the RSI indicator reflects the amount of fear and greed in the market. The vast majority of active investors are likely looking at the RSI so (in my opinion) its default settings are fairly useless. We will make a minor change to this oscillator to give us a potential edge.

RSI POWERZONE STRATEGY

Strategy Rules

Lets get right to the strategy rules:

Rule #1: The market must be above its 200-day simple moving average
Rule #2: The 4-Period RSI reading must be below 30
Rule #3: If the 4-Period RSI reading falls below 25 anytime the trade is active buy more
Rule #4: Sell (close) the position when the RSI crosses above 55

We are gonna ignore Rule #3 in this video since I want to focus on the signals specifically, not the profits you can earn.

Chart Setup

Follow the steps in this video to get your chart setup for this strategy.

Everything I am going to show you today you can do for free on tradingview.com. You do need to create an account but again, its free. Once you have an account, click on the link on the tradingview homepage that says Chart.

If your chart isn’t showing the S&P500 chart then set SPY as the ticker symbol. Make sure the chart period is set to Days

This strategy requires just 2 technical indicators so lets add them now. First we need the 200 day simple moving average so search for moving average in the indicators window. Change the Length property of the moving average to 200 and set the style color to Red.

Remember that our first buy signal is any closing bar above the 200 day moving average. Essentially this means every bar since the Jun29th 2021 is a buy signal. Of course, we don’t enter trades based on one buy signal.

Next we need the Relative Strength Index indicator. Back as the Indicators window search for RSI and select the indicator that says ‘Relative Strength Index’. Open the RSI indicator settings and change the Length property from 14 to 4.

When you move your cursor over any bar the RSI reading will appear next to the indicator label.

Without doing anything else, can you spot a BUY signal based on our two entry rules?

Look at the 14th of December. We can see the RSI closed under 30 and the closing price is above the 200 MA. We would expect our strategy to trigger a BUY on the opening bar of the 15th of December.

Robinhood App
Get Free Stocks!

Backtest Results

Okay so lets apply our strategy onto the chart and see how well, or not well these rules performed historically. I’m going to select my strategy from the indicators window. You won’t have this strategy obviously but don’t worry, the last half of the post we will create this strategy together.

We’ve applied the strategy to the chart and we can see that this strategy has returned has 80% win-rate. It generated 219 buy signals and 180 of those signals were winners. On average each trade that was placed returned just over $100 and each trade lasted about 7 days from start to finish.

Lets take a look at some other markets. How about the NASDAQ.

NASDAQ was also a good market for this strategy too. It was right 77% of the time. Of course this backtest starts in 1990 and some people would say who cares about a 30 year history, especially when someone who just bought and held the QQQ ETF would have absolutely destroyed the active traders here.

And that’s a great point, so lets reduce the backtest from 30 years to just 2020.

Okay so we’ve fast-forwarded time to only look at the performance of this strategy from January 1st 2020 to December 31st 2020. Our win percentage actually went up to 80%. If we look at the list of signals we can see that of the 5 signals triggered, only 1 was a failed trade and that was during the pandemic crash in the spring.

This strategy is designed and taught specifically for trading the liquid ETF market (so like the SPY, and the QQQ, and the IWM) but a lot of people don’t know that this strategy wins in a lot of markets.

I really probably shouldn’t show you this data because there are a lot of people who earn their living trading this strategy every week but here we go.

Lets take a look at some other random markets from my watchlist, like Microsoft, for example. In 2020 this strategy triggered 10 buy alerts and 9 of them were winners. Each trade lasted just 6 days and returned $350 per trade.

Crowdstrike… 100% win-rate. 6 trades, 6 wins.

Pinterest …. 100% win-rate. 5 trades, 5 wins.

Gamestop … 100% win-rate. 5 trades, 5 wins.

Tesla … 83% win-rate. 6 trades, 5 wins.

And the biggest of them all, Bitcoin, 92% win-rate. 12 trades, 11 wins, and an astounding average trade return of $40,000 dollars per trade.

Are you starting to understand the value in probabilities based investing? I’m sure by now you want to be able to do this too on your own charts so lets move along to creating the strategy!

Creating the Strategy Backtest

Start by creating a new script in TradingView by clicking the Pine Script tab and then Open > New Blank Strategy.

Start off by defining the name of the strategy and the rules of the strategy.

//@version=4
//Author: https://www.tradingview.com/u/nealosis/ © 2021 Baileysoft Solutions
//This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

strategy("RSI Powerzones", overlay=true)

// Strategy Rules:
// 1. $SPY must be trading above its 200-day simple moving average. 
// 2. When the 4-period RSI of $SPY closes under 30 buy $SPY on the close.
// 3. Buy a second unit if the 4-period RSI closes below 25 at any time while the position is open.
// 4. Sell when the 4-period RSI closes above 55
//
// Prefer 70-80 delta in-the-money call contracts

Next we want to define the user-editable variables. These allow the user of the backtest to easily change signal values to experiment with the strategy by tweaking certain conditions

// Entry and exit criteria
RSIEntry = 30 // RSI Entry signal
RSIExit = 55 // RSI Exit signal
RSILength = 4 // Oscillator length

Next we want to get the values of the 200-day moving average and the RSI reading for each bar on the chart.

longSMA = sma(close,200) // SMA Entry Signal
rsi = rsi(close, RSILength) // RSI reading at the close of each bar

Next we want to set a long condition, in other words what conditions should be met for the strategy to trigger a BUY or ENTER message. Our first condition is the 200-day SMA. When the close of any bar is above the 200-day moving average, that is a long signal.

longCondition = (close > longSMA) // Step one of entry

We want to be able to control the range of bars in the backtest so we need to define the start and stop date ranges for our backtest.

testPeriodStart = timestamp(1990,1,1,0,0) // Start Date
testPeriodStop = timestamp(2021,12,31,0,0) // End Date

That that we have some ranges, in this case the start is 1/1/1990 and the end is 12/31/2021 we next need to create a function that will return true if the current bar is within the required range.

// Current bar within date range?
testPeriod() => 
    time >= testPeriodStart and time <= testPeriodStop ? true : false

The last thing we need to do is create our entry and exit logic. We will trigger a BUY/ENTER signal when the close is 1) above the 200-day SMA, 2) Within the range we are testing, and 3) the RSI oscillator reading is equal to or less than the user provided entry reading (currently 30)

// if the current bar meets all entry criteria, place a trade
if (longCondition and testPeriod()) 
    strategy.entry("CALL", strategy.long, 100, when = rsi <= RSIEntry)
    strategy.close("CALL", when = rsi >= RSIExit)

STRATEGY SOURCE CODE

Below is the full strategy source code. Its a little more advanced than the basic version we created during the presentation but this one allows you to use the settings window in tradingview.com to toggle the backtest variables interactively without having to change the source code.

//@version=4
//Author: https://www.tradingview.com/u/nealosis/ © 2021 Baileysoft Solutions
//This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

strategy("RSI Powerzones", overlay=true)

// Strategy Rules:
// 1. $SPY must be trading above its 200-day simple moving average. 
// 2. When the 4-period RSI of $SPY closes under 30 buy $SPY on the close.
// 3. Buy a second unit if the 4-period RSI closes below 25 at any time while the position is open.
// 4. Sell when the 4-period RSI closes above 55
//
// Prefer 70-80 delta in-the-money call contracts

// User provided values
testStartYear = input(1990, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? #6c6f6c : na
bgcolor(testPeriodBackgroundColor, transp=97)

// Entry and exit RSI readings
RSIEntry = input(30, "RSI Entry")
RSIExit = input(55, "RSI Exit")
RSILength = input(4, "RSI Length")

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

longSMA = sma(close, 200)  // 200-day moving average
rsi = rsi(close, RSILength)  // relative strength indicator with custom length

longCondition = close > longSMA  // closing price is above 200-day sma 

if longCondition and testPeriod()
    strategy.entry("CALL", strategy.long, 100, when=rsi <= RSIEntry)
    strategy.close("CALL", when=rsi >= RSIExit)

DONATIONS & SUPPORT

If you are finding value in my research or the YouTube content please kindly consider making a small donation to keep this project going.

   37y3Twv4QK4wJSDh2UQ4simNTNxUKq486s

RESOURCES

Portfolios

Please consider using my M1 Finance affiliate link if you decide to invest in one of the portfolios we have analyzed.

Recommended Books

Please consider buying any of these books as audiobooks from Audible.com!