Trading Idea #002 – Connors RSI 1

I have not done any research or work on mean reversion systems until about a month ago, when I listened to a series of Better System Trader podcasts featuring guest Cesar Alvarez. In other words, I’m a total noob. I dug deeper into this concept and found several mean reversion methods that have been popularized by Larry Connors (hence why Connors RSI) and Alvarez, who worked together in the past. Since I am primarily a futures trader, I wondered how well it would work on these markets, since a lot of these types of systems are written. Here is my first mean reversion system ever.

Phase 1: Plan & Design

1. Trading Idea

The big idea is a mean-reversion system, using a 2-period RSI for entries, 5-period simple moving average (SMA) for exit, and a 200-period SMA as a trend filter.  If trend is bullish (up) and RSI(2) falls into oversold range, go long, exit when price closes above 5-period SMA.  If trend is bearish (down) and RSI(2) rises into overbought range, go short, exit when price closes below 5-period SMA.

This system is based on the trading methods described by Larry Connors and Cesar Alvarez (Short Term Trading Strategies That Work).

Being a futures guy first and foremost, this mean-reversion system will be for futures only and can be used as a basis for another system built for equities, which is how Connors and Alvarez present this in their various writings. 

2. System Definition

Indicators, Variables, Values, Parameters:

NameParameterComments
RSILength = 2Standard RSI, not optimizable
RSI OversoldThreshold = 90-95Optimizable, step 1
RSI OverboughtThreshold = 5-10Optimizable, step 1
StopLoss1.5 times greatest loss in backtestThis is only for a catastrophic loss, as the Connors RSI needs room to ‘breathe’

Initial Capital:

  • N/A > will assume 1 contract and determine account size for each instrument during Monte Carlo analysis

Position Sizing:

  • Futures: 1 contract, no pyramiding or further position sizing

Entry:

  • Long:
    • RSI(2) < RSI Oversold and
    • Close > 200-period SMA
  • Short:
    • RSI(2) > RSI Overbought and
    • Close < 200-period SMA

Stop:

Determine appropriate stop loss after backtesting.  Stops should rarely, if ever, be hit.

Exit(s):

Exit when Close > 5-period SMA

Profit Target: None

Challenges: None

3. Performance Objectives

The Connors RSI system will meet the following objectives:

ObjectiveGoal
Achieved via
Testing?
Strategy Type (trend, mean-reversion,
day, swing, etc.)
Mean-reversionYes
Risk of ruin0%Yes
Profit Factor> 1.5Yes
Win Percent> 30%Yes
Max Drawdown %< 35%Yes
Profit/Drawdown Ratio> 2.0Yes
Ulcer Indexn/a
Serenity Ration/a
Ready Date2021/02/122021/02/10

This idea is S.M.A.R.T.: Specific, Measurable, Achievable, Realistic, Time-bound

4. Market Selection

Markets:

EnergiesCurrenciesFixed IncomeAgricultureMetalsSoftsIndexesEquities
XXXXX

Instruments:

NameSymbolExchange / BrokerComments
GasolineRBTS
Heating OilHOTS
Natural GasNGTS
Euro FXECTS
Swiss FrancSFTS
CopperHGTS
SilverSITS
Dow E-Mini $5YMTS
S&P 500 E-MiniESTS
Nasdaq E-MiniNQTS
Russel 1000 E-MiniRTYTS
WheatWTS
Lean HogsLHTS

Chart Type, Timeframe, Session, Time Zone:

AttributeValueComments
Chart TypeRegular CandlestickCharting is only useful for validating entry and exit signals
Timeframe / Interval(s)60 minute,
240 minute,
480 minute,
Daily
SessionRegular
Time ZoneExchange

Phase 2: Build

5. Manual Test

Pass. There are some big losses, but the win rate is generally high. Backtesting and walk-forward analysis should prove whether this will prove profitable for any instrument. I have some new ideas for other systems (see commentary section).

6. Build

Process Diagram

Comments:

Easy build, simple system

7. Unit Test

Complete?

Phase 3: Test

8. Optimization

Using MultiOpt (an optimization and walk-forward analysis tool for TradeStation), I optimized the following two parameters:

ParameterRangeStep
RSI Oversold Threshold90-951
RSI Overbought Threshold5-101

9. Walk-Forward Analysis

For the walk-forward period, I started on August 24, 2013 and ended on August 8, 2020.  This test was unanchored.  Ending on this date allows me to reserve data for my incubation, assuming these pass Monte Carlo analysis. There were a lot of failures, but there were two successful instrument/timeframe combinations:

  • Copper (HG) – Daily > 252 in / 156 out days
  • Wheat (W) – Daily > 504 in / 252 out days

From here, I can move to Monte Carlo Simulation for these two instruments.

If you do not understand what this all means, that is okay.  I will be writing more about the walk-forward process at a future date.  However, if you follow along with the systems that I attempt to create every two weeks, this will make more sense as we go through the process.  Afterall, I am still learning too!

10. Monte Carlo Simulation

We passed!  Looking good thus far….

Walk-Forward TestMonte Carlo
InstrumentTimeframeProfit FactorWin PercentResultStart EquityRisk of RuinMedian ReturnReturn / DD1 Year Profit Prob
HGDaily1.9577.5%Pass$18,7500%15%1.2570%
WDaily2.5773.7%Pass$6,2500%15%1.8379%

Its ridiculously high Win Percent can be a misleading.  With mean-reversion systems you need a high win rate, as a single loss can be big.  One of the goals, as noted earlier, is to have a win % greater than 50%.  Ideally, this should be > 60-70%.

And the median return and return/DD (drawdown) ratio are kind of low, but the Connors RSI only takes between 5-6 trades per year, which is another feature of mean reversion.  I am going to proceed to incubation and see where we land.

11. Incubation

Incubation period for these Connors RSI systems is from August 2, 2020 to February 10, 2021.  The HG system required re-optimization in November, so these result include that:

 Incubation Test
Instrument# TradesProfit FactorWin PercentResult
HG62.183.3%Pass
W31.133.3%???

HG passed incubation, but did W?  By the numbers, the answer is ‘no’, but It was mildly profitable.  Given the small sample set, the win percent is an outlier with respect to what we saw in incubation.  Nothing in here screams “OUTLIER!!!!!”, so I think this is a conditional pass.

Phase 4: Deploy

I did not expect to make it this far, even though this type of Connors RSI system has proven to be profitable for equities.

12. Production / Portfolio Assignment

Copper (HG):

  • I feel comfortable adding this to our list of production-ready strategies. 
  • I will assign this strategy to our brand new SAT Portfolio, where it will sit alone until we have another passing strategy to go along.  I will be creating a separate page where we will track the performance on a monthly and maybe weekly basis, to see how it performs.

Wheat, Soft Red (W):

  • I think this should go into incubation for another 1-3 months.  I am certain it will bounce back, but I will review every month. 

Trading System Result: PASS

Notes and Commentary

This is the first of several mean-reversion Connors RSI system that I have in my system pipeline.  I was pleasantly surprised at the results, though I did expect at least one of the indexes and currency futures to pass.  This is the purpose of having a rigorous and statistically significant process for system development: take only the systems with the greatest chance of success. 

There is no guarantee that either passing system will continue to work, but we do have an edge.

When an idea fails, we throw it away, as was the case with our first strategy, the Golden Cross 1.  Changing anything after setting our rules is curve-fitting.  If it fails once at any point in the process, it gets thrown away. 

However, each failure is a seed to the next idea or set of ideas. 

So here is what is next for this mean-reversion strategy:

  • Optimize the slow trend: The great Perry Kaufman uses 80-period Simple Moving Average (SMA) as a trend filter.  Using this idea, we can gently optimize at 80, 120, 160, and 200 periods.  Shorter periods would make this more reactive to trend changes.
  • Exit after Slow SMA  indicates a trend change:  I noticed while doing my manual testing that some of the worst losses came as the SMA was just about to change trend.  In this example below, once a bar closes below the Slow SMA (gray dashed line), I should exit.  It may not improve the exit, but we shall see.  If nothing else, it frees up capital for other trading opportunities.
  • Optimize the stop loss:  Stop losses usually do not work well for mean-reversion, from what I have read.  I am generally not a fan of optimizing stop losses, but why not test it ourselves and gently optimize to see what happens?

Continuous Improvement Department:

I now have 1-3 new ideas which I will add to my list.  I did not make any changes to my rules during Step 5, Manual Testing, but rather made notes for improvements or new trading ideas.  Changing rules is curve-fitting (yes, I am repeating myself).  We can never be married to our ideas.  Take your idea out for a cup of coffee, see if anything clicks, if not, move along to the next idea (props to Laurent Bernut for the dating metaphor: Better System Trader Episode 177).

Do you have a trading idea that you want me to put through our process and see if it would make a valid trading system?  Leave me a message below and we can discuss.

Sources/References

Did you like what you read? Do you want to see more?  Subscribe now and receive our email twice every month, with the Trading System Idea of the Week and other fun stuff.

Don’t worry, we will never, ever, ever sell, overuse, or donate your email address. Promise.

Did you like what you read? Do you want to see more?  Subscribe now and receive our email twice every month, with the Trading System Idea of the Week and other fun stuff.

Don’t worry, we will never, ever, ever sell, overuse, or donate your email address. Promise.

3 thoughts on “Trading Idea #002 – Connors RSI 1

    1. Thanks! You can see the process diagram here: Our Trading System Design Process

      It is derivative of Kevin Davey’s, Perry Kaufman’s, and Bob Pardo’s processes, with my own software development experience. I will be adding more detail to that page in coming weeks, time permitting.

  1. I tried to code this strategy and ran through MultiOpt only to find very different results. I am not sure what I am doing wrong if anything but the results don’t have Wheat or Copper producing good results at all. I idea is simple enough to code pretty quickly. Do you mind if I send you a private email message to check my code?

Leave a Reply

Your email address will not be published. Required fields are marked *