Trading Idea #030 – Momentum Pinball 1

Welcome to Momentum March*! The idea I present here is based on the Momentum Pinball system described by Laurence Connors and Linda Bradford-Raschke in their classic book, Street Smarts. I have had this on my radar for a few years, but I decided that it was time that I tried to develop a system around this idea.

As I researched this idea, I found that Momentum Pinball system was developed based on an earlier idea presented by George Douglass Taylor back in 1950. In other words, this idea is a derivative of a derivative of Taylor’s system for trading. Connors and Bradford-Raschke demonstrate this system on the S&P 500 futures contract, though they indicate it could be used for equities.

The idea is to look at a prior day’s momentum into an extreme, then bet against that momentum to expect a rebound. This system is not a momentum system as described in the last system I presented. This idea is really mean-reversion. This makes sense since Connors is legendary for his mean-reversion trading ideas.

If I keep this up, I may soon be known as that ‘mean-reversion guy’. Can a 72 year old trading idea still work in today’s markets? Let’s find out.

* Although I call this ‘Momentum March’, I am mostly doing so tongue-in-cheek.

Phase 1: Plan & Design

1. Trading Idea

The trading idea seems complicated, but in practice it is simple. I will use three data series:

  • 5 minute: this is the main data series and the one we use for executing trades; I will call this Data1
  • 60 minute: this is the data series used for setting up our entries and initial stops; I will call this Data2
  • Daily: This is used to calculate the LBR/RSI, which provides our first signal for trading and the direction of the trade: I will call this Data3

I will also use an indicator introduced in the book, known as LBR/RSI:

  • 3-period RSI of a 1-period rate of change of Data3 (daily)

If LBR/RSI < 30, buy above the high of the 1st bar of Data2

If LBR/RSI > 70, sell short below the low of the 1st bar of Data2

We set stops below the low of 1st bar of Data2 for long positions; above the high of the 1st bar of Data2 for short positions. We allow on additional entry per session if we are stopped out.

The rules outlined in the book instruct us to use a trailing stop once we are in a trade, but the rules and parameters for the trailing stop are not clear, thus I will not use a trailing stop. The original rules specify holding this overnight if profitable and exiting at some point the next day. However, the book was written in 1995 when overnight trading was minimal and algorithmic trading was in its infancy. I do not believe holding positions overnight until the next regular session opens is profitable any longer (I have not tested this belief). This system will exit 5 minutes prior to the close.

2. System Definition

Input Parameters:

Input(Default)Data TypeOptimizable?Comments
Risk_Capital(2500)IntegerYesRisk_Capital
Leverage(2)IntegerYesMultiplier for risk capital

Variables:

VariableData TypeDefaultCalculation
NumSharesInteger1None: this is our position size
LBR_RSIDouble03-period RSI of the 1 -period rate of change of Data3 (daily)
Open_Bar_HighDouble0Stores the high of the 1st bar of Data2; used for entries and stops
Open_Bar_LowDouble0Stores the low of the 1st bar of Data2; used for entries and stops

Initial Capital:

  • $5,000 per instrument
    • This amount will allow for some drawdown in the system

Leverage:

  • 2:1

Position Sizing:

  • $5,000 ($2.5k x 2)

Entry:

  • Long:
    • If Close > Close[10 bars ago]
    • Buy next bar at market
  • Short:
    • If Close < Close[10 bars ago]
    • Sell short next bar at market

Long entry:

  1. If the LBR/RSI < 30, then…
  2. When first bar of Data2 closes, then…
  3. Place buy stop one tick/small point value above Data2 1st bar high
  4. If stopped out, repeat step 3
  5. If stopped out again, no reentry for the day

Short entry:

  1. If the LBR/RSI > 30, then…
  2. When first bar of Data2 closes, then…
  3. Place sell short stop one tick/small point value below Data2 1st bar high
  4. If stopped out, repeat step 3
  5. If stopped out again, no reentry for the day

Exits:

  • End of day, 5 minutes before close

Stop Loss:

  • Long: Place sell stop at one tick/small point value below Data2 1st bar low
  • Short: Place buy-to-cover stop at one tick/small point value above Data2 1st bar high

Profit Target:

  • None

Challenges:

I have a couple challenges.  Firstly, using three different data streams in a system is challenging, mainly when we get to step 7, Unit Test. Secondly, I may not have enough minute based data for backtesting, thus making my backtesting window shorter than I prefer.

3. Performance Objectives

The system will meet the following objectives:

ObjectiveGoal
System Type (trend, mean-reversion, day, swing, etc.)Mean-reversion
Risk of Ruin0%
Profit Factor>= 1.5
Adjusted Profit Factor> 1.0
Win Percent> 40%
Max Drawdown %< 35%
Profit/Drawdown Ratio> 2.0
Ready Date2022/03/15

I want to see a relatively high win rate, though not as high as a traditional mean-reversion system. This is a novel Momentum Pinball idea (to me), so I want to see what happens.

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

4. Market Selection

This Momentum Pinball system was designed with S&P 500 futures, but the authors indicate it can be used for individual equities. I will use index ETFs as a proxy for futures, as I currently do not have a full data set of futures data assembled for backtesting.

Markets:

EnergiesCurrenciesFixed IncomeAgricultureMetalsSoftsIndexesEquities
X
(index ETF’s)
X

Instruments:

Market SectorInstrumentSymbolComments
ETF’sSPY, DIA, QQQ, IWMSameThese ETFs are proxies for e-mini S&P 500, Dow, Nasdaq 100, and Russell 2000 futures, respectively
StocksBAC, VALE, F, X, C, PFE, JPM, WFC, RF, KEY, T, MT, TGT, FCX, PBR, ABEVSameRandom selection of the highest volume equities on January 3rd, 2017, with a price below $100 (split adjusted)

Chart Type, Timeframe, Session, Time Zone:

AttributeValueComments
Chart TypeRegular CandlestickCharting is only useful for validating entry and exit signals
Timeframe / Interval(s)One set of timeframes: 5 minute, 60 minute, DailyAlthough we could derive highs and lows from the minute based data, the Daily price is needed as settlement prices often differ from the market prices.
SessionRegularThe authors indicate that we should trade this only during the regular US stock trading session hours; no pre-market, post-market, or other overnight sessions
Time ZoneExchange 

Phase 2: Build

5. Manual Test

Pass. This passes, though I cannot say that it will be profitable or not. About half the trades are profitable, but the backtest will reveal more. I am wondering if the results will be comparable to a coin flip.

6. Build

Process Diagram

Comments:

This was difficult to build. Perry Kaufman has his version of this system in his book, Trading Systems and Methods, but I found that the code he provided did not execute as described in Street Smarts. I tried to use his code as a baseline, but in the end, I scrapped nearly all of it for my own.

7. Unit Test

The unit test was more difficult than the build. I had an extremely difficult time getting my system to accurately calculate the LBR_RSI from Data3. In the end, I calculated it outside via an indicator and pulled it into the code.

In addition, there were other issues:

  • Missed entries
  • Stop order entries hit at different prices
  • Stop order exits hit at unexpected prices

This mostly came down to errors in my code and how I was handling my variables. The second re-entry on the day complicated things quite a bit.

Here are some trades on a chart (note, this image shows the 60-minute bars and omits the 5-minute chart:

Complete?

Phase 3: Test

8. Optimization

There is no optimization for this system. This Momentum Pinball idea predates optimization and even automated trading if you go back to Taylor. That is how old this idea is.

9. Walk-Forward Analysis

The difficulties I experienced in the Unit Test step ended up disrupting my backtesting workflow. The portfolio tool cannot pull indicator data because indicators are not used, which meant testing each symbol individually and recording those results.

I used data from January 1, 2017, through July 2, 2021. I could only go back this far since my data provider has minute-level data only back to 2017 and I am using a 60-minute timeframe.

Since QQQ was the only symbol that passed, I looked at the other performance goals and they looked good, too. Max drawdown was a modest 6.67%.

QQQ advanced to Monte Carlo Simulation.

10. Monte Carlo Simulation

Here are the results of the Monte Carlo simulation for QQQ (courtesy of the Strategy Factory):

We have a Return/Drawdown Ratio (Return/DD) goal of >= 2.0. This does not pass that criterion; thus, this symbol and system fail. I tried lowering the Starting Equity to $3,000, which is the lowest we could go based on the system’s drawdown, but the Return/DD only improved to 1.79. This system would likely be profitable, but it might not be worth tying up capital that could be utilized by more profitable systems. I can think of easier ways to make $238 per year.

At this point we fail, so we can advance to the Notes and Commentary.

11. Incubation

We did not make it this far.

Phase 4: Deploy

12. Production / Portfolio Assignment

We did not make it this far.

Trading System Result: FAIL

Notes and Commentary

Firstly, I confess that I messed up. I allowed confirmation bias to creep in and influence my idea development. I changed the rules of the original Momentum Pinball to suit what I thought I knew. Here is the rule from Street Smarts:

If the trade closes with a profit, carry it overnight. Exit on morning follow-through the next day (day three). Be sure to exit this trade by the close of the next day. Taylor would look to exit a long trade “just above the high of the previous day.”

I thought that holding a trade overnight was a bad idea and outdated. However, I went through every trade on the SPY that closed the day with a profit, and found that 59% of the time, it would have had a higher profit. My bias told me that most of the trades would have closed the next day at a loss. This isn’t to say that the Momentum Pinball system would have been more profitable overall, but I don’t know because I let my bias warp my process.

Secondly, there are some other things that were just problematic with this system:

  • Not enough data for sufficient backtesting
  • Very difficult to test and debug the code

This Momentum Pinball idea is opportunist in nature; it looks for the right conditions and then takes the trade. Even the single symbol, QQQ, was not profitable enough to consider adding to our portfolio. By the end, given all the difficulty I encountered, I really came to hate this system.

Continuous Improvement Department:

Here are a few things that I will try to improve:

  1. Carry a profitable trade overnight, as described in the original rules
  2. Stop allowing bias to creep into the development process; challenge and test every assumption!

That is all I would attempt to improve.

One final, post-script, if you will: Perry Kaufman calculated rate of change (ROC) as: close – close[1 bar ago] . This is different from the rate of change that I have been using: (close / close[1 bar ago] – 1) * 100. I am not saying he is wrong (he’s a legend and I’m not), but it is a different approach. Scanning back through the text of Street Smarts, my ROC calculation may be incorrect. I may have to reconsider this in the future.

There is a second Momentum Pinball system in Street Smarts, so I will present this in the near future. Stick a fork in it (or me); I’m done.

Next Trading System Idea: Oddball 1 or 2 (yes, seriously). I found this system by accident a few weeks ago, while researching this system. The Oddball systems appear to be momentum driven. They are both very different, odd, and probably something that will at least be interesting. I may not be able to get the data required to back-test these systems, so this may change in two weeks. In any case, from Pinball to Oddball, I’ll have something interesting for you to consume.

As always, thank you for reading. If you find this useful, share this post, subscribe to our twice-monthly newsletter, and check out some of our other systems. Do you have a trading idea that you want me to put through our process to see if it would make a valid trading system?  Leave a comment 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 per 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 per 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.

Leave a Reply

Your email address will not be published.