This week’s system was inspired by Jeff Swanson’s article this week at EasyLanguage Mastery, on the topic of John Ehlers’ zero-lag indicators. For those who know me, you will know that I am a huge fan of Ehlers’ work, even though I do not totally understand it. He deals a lot with digital signal processing (DSP), noise filtering, and cycle analytics. In other words….rocket science. I figured I would do an Ehlers system this week.
I have done a lot of work on his various indicators and systems, but I have never been able to make any of them work. This week I took a brand new idea (for me): the Inverse Fisher RSI. Let us see if this idea will work as a profitable system with an edge.
Phase 1: Plan & Design
1. Trading Idea
The big idea is to use John Ehler’s Inverse Fisher RSI to generate entry signals. We enter a long position when the RSI crosses over the -.5 line, and reverse our position (go short), when the RSI line crosses over the .5 line.
We are using the indicator as defined in his presentation (see reference section for a link) with no changes and no optimizable parameters. We will utilize a 20-bar high/low trailing stop.
If a false breakout occurs, we handle the reversal in two ways, depending on how far the RSI line moves.
Other than the trailing stop, this is designed to be an ‘always in the market’ strategy.
2. System Definition
Indicators, Variables, Values, Parameters:
|Inverse Fisher RSI||None||Use the Inverse Fisher RSI as defined, not modifications|
- N/A > will assume 1 contract and determine account size for each instrument during Monte Carlo analysis
- Futures: 1 contract
- Forex: $10,000
- Long: enter next bar at market when RSI crosses over -.5
- Short: enter next bar at market when RSI crosses under .5
- Trailing Stop:
- Long: lowest low of past 20 bars
- Short: highest high of past 20 bars
Other than trailing stops, there are no other exits. Entry signals are reversals if in a position.
Profit Target: None
- False breakouts look like they can be an issue. We will handle them in the following manner:
- If we are short and RSI is below 0, but retraces above 0, then go long at market
- If we are long and RSI is above 0, but retraces below 0, then go long at market
- If we are short and RSI does not make it to 0, but moves back up, reverse to a long when crossing over .5
- If we are long and RSI does not make it to 0, but moves back down, reverse to a short position when crossing under -.5
3. Performance Objectives
The system will meet the following objectives:
|Strategy Type (trend, mean-reversion, |
day, swing, etc.)
|Risk of ruin||0%|
|Profit Factor||> 1.5|
|Win Percent||> 30%|
|Max Drawdown %||< 35%|
|Profit/Drawdown Ratio||> 2.0|
This idea is S.M.A.R.T.: Specific, Measurable, Achievable, Realistic, Time-bound
4. Market Selection
Okay, I may be getting a little carried away with this, but I really want to see how this will work. Since I am not optimizing, this will come down to walk-forward analysis. I chose the forex pairs based on some analysis I have been doing on mean-reversion. Euro-US Dollar is not good for mean reversion, but the others are. I just want to see how this system performs on these four.
|Name||Symbol||Exchange / Broker||Comments|
|Russell 2000 E-Mini||RTY||TS|
|S&P 500 E-Mini||ES||TS|
|Eurodollar||ED||TS||Using continuous contract, nearest month, for testing|
|Euro FX Futures||EC||TS|
|Euro FX E-Mini||E7||TS|
|Japanese Yen Futures||JY||TS|
Chart Type, Timeframe, Session, Time Zone:
|Chart Type||Regular Candlestick||Charting is only useful for validating entry and exit signals|
|Timeframe / Interval(s)||Daily|
|The 1440 minute chart is almost the same as a daily chart, but the Close of the last bar is different. I want to see how this may affect the walk-forward test.|
Phase 2: Build
5. Manual Test
Pass. I tested on an equity (NYCB) and Eurodollar. It looks like it should work.
Since a stop is handled by the application, it is not shown here as part of the process.
7. Unit Test
Phase 3: Test
No optimization is needed for this system.
9. Walk-Forward Analysis
Ugh. I am not sure how much to share, but the results were bad all around and in this case, pictures speak louder than words. Here are a few equity curves:
Here are some additional observations:
- Stops were rarely hit, less than 5% of the time;
- Even though some instruments appeared to be good, by the number, the numbers were skewed by huge wins in 2019 and 2020 (as evidenced in the equity curves above);
- Win rates ranged from 32-36%, which I believe is about normal for a trend following system.
10. Monte Carlo Simulation
Did not make it this far.
Did not make it this far.
Phase 4: Deploy
Did not make it this far.
Notes and Commentary
For the life of me, I cannot seem to get any of Ehlers’ indicators and methods to work in a viable system, and this indicator is no exception. Just because I am a fan of his work, does not mean I have been successful with his methods. Maybe I am on a fool’s errand and this is way over my pay grade.
In any case, here are some things I can look at for future ideas:
- Optimize parameters: Optimize the RSI length (fixed at 5 for this system), optimize the cross-over (currently -.5 for buy long signal; .5 for sell short signal)
- Go long only: Long positions performed much better on long entries than on short.
- Add a trend filter: A trend filter like a slow moving average (80-200 period) may filter bad entries and prevent us from trading against the trend.
- Try Equities only: Since Ehlers demonstrated this with equities, maybe using this for equities, going long only, would work
Trading System Result: FAIL
- Sharpen Your Trading with the Fisher Transform, John Ehlers
- Cycle Analytics for Traders, John Ehlers, Chapter 15
- Cybernetic Analysis for Stocks and Futures, John Ehlers, Chapter 1
Did you like what you read? Do you want to see more? Subscribe now and receive our weekly email, 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.