Welcome to Forex Backtest Friday, a post series where I share the backtest results of the market tendencies I investigate.
This week, we'll be taking a look at the "best technical indicator in Forex", according to this article from Babypips. In it, the author says the best indicator is the Ichimoku Kinko Hyo.
If you're not familiar with Ichimoku,
- Tenkan Sen = Average of the highest high and lowest low over last 9 periods
- Kijun Sen = Average of the highest high and lowest low over last 26 periods
In the article, the author backtested the crossing of the Kijun Sen by the Tenkan Sen on the EUR/USD daily chart, resulting in 53 trades and a 30.34% profit over 5 years:
In my opinion, 53 trades is too small a sample size... and given that the largest number of test trades is 128 (for the Parabolic SAR), I'm guessing these backtests were done manually. If this is the case then there's a good chance of human subjectivity (bias) embedded in the results.
So I created a robot to run my own backtest of the Ichimoku indicator on the 1 hour and 4 hour time frames. This will result in a larger number test trades, and at the same time greatly reduce the element of human bias.
Buy criteria (reverse for sell):
- Tenkan Sen crosses above Kijun Sen (upon candle close)
- Buy on open of next candle
- No stop loss
- No profit target
- Lot size per trade is fixed at 1 mini lot
- When a buy trade is opened, close prior sell trade (and vice versa when opening a sell trade)
- i.e. There is always one trade open
- Test period: 1 Jan 2009 - 31 May 2020
- Starting capital: $10,000
- Trading costs are not considered
Here are the results of the backtest (click to view):
And here's the summary of the results:
Perhaps unsurprisingly, there's a wide variation of outcomes across currency pairs and time frames.
The first thing to notice is that most of the results are smaller than +/- 60%, which is about +/- 5.5% per year.
I've highlighted the results that are over this threshold. These are the pairs and time frames I'd be interested in investigating further. (For the negative results I can simply flip the buy and sell trades to get a positive result).
One thing I'd like to point out is that I think the author at Babypips may have committed a common backtesting mistake: having too small a sample size of backtested trades. Here's why.
Take this equity curve of the backtest I ran on the EUR/USD 1 hour chart:
The red box highlights the gains made over roughly 200 trades. If we only looked at these, we may have (erronously) concluded that the Ichimoku indicator was highly profitable on this pair and time frame. But when we consider all 3000+ trades, we see that it was actually barely profitable with a mere 18.07% return over 11 years. And remember, we have not yet considered trading costs.
So the reason we want a large sample size of backtested trades is to avoid drawing premature conclusions like this.
Ok so let's move on.
The pair that catches my eye is the GBP/JPY. It looks like the Ichimoku indicator is effective on both the 1 hour and 4 hour charts.
To get a more accurate sense of its profitability on this pair, I re-did the backtest with a spread of 1.5 pips. This will lower its net gain but the question is: by how much?
Let's take a look (click to view):
So the net gain dropped from:
- 123.1% to 79.7% (1 hour chart), and
- 62.0% to 51.9% (4 hour chart)
This works out to an average gain of approximately 7.2% and 4.7% per year, respectively. Not a bad result, considering there had been no performance optimization at all.
From here, I'd be looking to add/tweak certain parameters to improve performance. I might add a stop loss for each trade, and/or include some trade filters. Also, I'd be looking at reducing the drawdown period and/or amount.
It looks like this is a trading approach that - after some tweaking - might be a candidate for forward-testing.
What would you like to see next?
Would you like me to keep you updated of the tweaking process in the next Backtest Friday post?
If so, what parameter modifications or trade filters should I try?
Or would you prefer that I test a new market tendency/indicator? What should I test next?
Let me know your thoughts in the comments section below.