Multiple timeframe backtesting can be a valuable addition to your strategy development workflow.
Here I explain why you should do it, and how to conveniently do it in MT4 and StrategyQuant.
Most retail traders are time-crunched in one way or another.
While live algorithmic trading requires little screen time, the initial strategy development phase requires much time and effort.
Multiple timeframe backtesting can be a great tool in your bid to efficiently churn out robust strategies.
Why Backtest on Multiple Timeframes?
1. Verify Your Strategy’s Robustness
Robustness is a measure of your strategy’s insensitivity to changing prices. A robust strategy will remain profitable in the face of changing market conditions.
Market structure often changes significantly when viewed on different timeframes. Below I compare USDJPY on the 15, 30 and 60-minute timeframes.
By changing your backtest timeframe, you conveniently perform an out-of-sample test that can verify your strategy’s robustness.
2. Fast Computation
This is a big deal if you’re evaluating a large pool of promising strategies.
Multiple timeframe backtesting is much faster than other popular robustness tests like walk-forward optimization and Monte Carlo simulations.
Unlike backtesting on multiple markets, you also won’t need to download additional data.
Backtest Considerations
Changing your backtest timeframe is straightforward. You leave the original strategy untouched, while changing only the chart’s timeframe.
There’s no harm in backtesting on all the available timeframes. In fact, the more timeframes you’re profitable on, the more robust your strategy probably is.
Nonetheless, not all timeframes are equal. Here are three things to keep in mind:
1. Your Strategy Type
The various timeframes contain varying levels of noise, which has a big impact on your strategy performance.
Noise is random price movement that is unrelated to any underlying trend. It can be measured using the Kaufman Efficiency Ratio.
The lower the timeframe, the more noise it contains.
Mean reversions strategies are great at exploiting the noise on the lower timeframes, while trend following strategies benefit from smooth moves on the higher timeframes.
This means that if you developed a trend following strategy on the 1-hour timeframe, and tested it on the 1-minute timeframes, you’re almost guaranteed to see losses.
2. Your Strategy Elements
If your strategy contains many adaptive elements, for example ATR-based stop losses, you may have a better chance of performing well across many timeframes.
For example, if you use a 3*ATR stop, your stop distance will automatically increase as you progress to the higher timeframes.
This isn’t the case if you use a pip-based stop. A 20-pip stop may work well on the 15-minute timeframe, but will be too tight on the 4-hour timeframe.
3. Number of Trades
In general, you want your backtests to contain as many trades as possible. Your backtest standard error is inversely proportional to the square root of the number of trades.
A large sample size creates a smaller standard error, meaning your backtest results are more reliable.
When you backtest your strategy on a higher timeframe, for example going from the 30-minute to the daily timeframe, you’re going to see a drastic reduction in number of trades.
It’s for this reason that I never develop strategies for the daily timeframe, since it’s difficult to get a large sample size, even with 20 years of historical data.
With these three considerations in mind, I generally only backtest on the next higher and next lower timeframes.
So if I have a strategy that originally trades on the 30-minute timeframe, I’ll use the 15 and 60-minute timeframes for robustness testing.
Passing Criteria
Compared to the original timeframe, you should expect some performance deterioration. Here are some aspects worth considering:
1. Equity Curve
The equity curve speaks a thousand words. You want to see an overall uptrend, without any deep drawdowns.
2. Performance
Like most things in trading, this is highly subjective.
At the bare minimum, the strategy should remain profitable. If you’re using the default MT4 report, profit factor and expectancy are decent choices.
With StrategyQuant, you can consider additional metrics like Return/Drawdown, Sharpe ratio, and stagnation.
3. Number of Trades
Getting sufficient trades is often challenging when backtesting on the higher timeframes.
I consider this robustness test to be a verification of your strategy’s performance on the original timeframe. I therefore consider anything above 30 trades to be acceptable.
This measly number could mean your backtest isn’t as reliable as hoped, but I wouldn’t want to reject a strategy simply because it had too few trades on a higher timeframe. Since you aren’t actually trading on the higher timeframe, I think this is a fair trade-off.
Example of Multiple Timeframe Backtesting
I’ll use a 30-minute USDJPY trend following strategy from here on out. It has a decent equity curve with a 1.5 profit factor.
How will it perform on the 15 and 60-minute timeframes?
Let’s do some backtests in both StrategyQuant and MT4.
Using StrategyQuant
This can be conveniently done using the Retester module.
Here I’ll use the Backtest on additional markets cross-check.
In StrategyQuant, you can also partition your data into multiple segments as shown below:
You passing criteria can be applied to each individual segment. This helps to verify your strategy’s consistency over the backtest period.
Using MT4
To do this robustness test in MT4, you only need to change the backtest Period.
To save time, you can run multiple instances of MT4 and run the backtests concurrently.
I then imported the MT4 reports into QuantAnalyzer for an overlay of the results.
So does the strategy pass this robustness test?
The 15 and 60-minute equity curves display some deterioration, but there are no deep drawdowns. The profit factor and number of trades are acceptable to me.
Wrapping Up
Backtesting your strategy on multiple timeframes is a quick way to evaluate its robustness. Ideally, your strategy will remain profitable across several timeframes.
You can increase the difficulty of this robustness test by:
- Testing on more timeframes
- Widening the gap between timeframes
- Applying more stringent passing criteria (equity curve, profit factor etc.)
Hopefully this will accelerate your quest to create a pool of robust strategies!
0 Comments