During the last two posts I have spoken about trading system failure and how we can detect this through the use of “blunt” and progressive measures. In particular I have talked about system failure as a point where a system no longer matches the statistics expected from its historical testing and how there are clear statistical measures that can detect this point. However a more interesting aspect of trading system failure is to understand why this happens. Why does a system start to perform below what is expected from its testing? Why does a system built with low data-mining bias start to deteriorate ? Perhaps most importantly, how can we prevent this from happening (or at least attenuate it)? On today’s post I am going to discuss why trading systems fail and what we can do within the development process to ensure that the probability of this happening is as low as possible. We will talk about the system building process, the amount of market data used and the influence this has on the forward testing process.
When you develop a system using historical data you’re fundamentally working under the assumption that inefficiencies that exist within your trading history will be repeated along the future. This basic assumption is the reason why all systems must eventually face failure (fail to perform within their historical testing statistics) as the number of potential market conditions is infinite while the number of design conditions is limited. If you take care to develop your trading strategy taking data-mining bias into account then your system does not fail because the inefficiency you found in the past was not “real” but because the market changed to a set of characteristics that no longer include this inefficiency. Your system was built to tackle something that ceased to exist under new market conditions.
A common mistake I have seen when building trading strategies pertains to the way in which the data used to build systems is chosen. Many people believe that when you trade lower time frames you need to use less data because the number of points you have within your test is bigger. For example some traders believe that if you’re trading a 1H system you can use 2 years of data instead of 10 for an equivalent system on the daily charts, because you have 24 times more data and therefore need less time to obtain the same number of trades and the same statistical relevance. It is true that the more bars you have the more certain you can be with less testing time that you’re developing a system above data-mining bias but this has nothing to do with the robustness of your strategy. When building a trading system on the 1H chart using 2 years of data you can be sure that you can get the same data-mining bias as with a 4H system on 8 years of data. This means that you can be as confident on the 1H – 2 year system as you are on the 4H – 8 year system about the existence of a real market inefficiency for those periods. However there is a key difference here, you must draw a distinction between robustness and data-mining bias.
If a system fails because new market conditions do not resemble anything within its testing period then it is rational to assume that a robust strategy should be tested across more market conditions. If it has seen more market conditions then it is suited to survive more conditions, that simple. However, market conditions change in cycles that are irrespective of data points because they change relative to macro-economic factors that go across certain time-spans. This means that your 1H 2-year strategy might have detected a real inefficiency across those 2 years, but it simply failed because that inefficiency was nonexistent as the market moved forward. However your 4H-8 year strategy – which had seen a macroeconomic environment that was different – was able to better accommodate the new conditions, because they did resemble something the strategy had seen in the past. The difference here was that with the 4H strategy we had seen more market conditions, even though we had the same certainty regarding data-mining bias.
This means that the timeframe of your strategy is completely irrelevant when talking about the robustness of your system, the robustness is only determined by the scope of market conditions your strategy is able to survive to and not by how many trades or how many data-points your strategy was simulated across. A daily strategy – with performance above data-mining bias – trading across 25 years is more robust than a 1H strategy simulated across 2 years, even though the 1H strategy may have more trades and more data-points it simply has not seen a variety of market conditions that are as wide. Perhaps the whole 2 year period for the 1H strategy was located within an abnormally tight daily range, while conditions outside of this period where completely different.
When developing trading strategies, more conditions always mean more robustness and therefore using as much data as possible is always a good idea. Some people say that they don’t use previous market data because it is now irrelevant as such market conditions will never happen again. However, the fact is that this is now not known and sometimes market conditions similar to those in the distant past can show up. If you have read my post on current market conditions regarding volatility on the EUR/USD you might have seen that current market conditions are actually similar to trading conditions in 1996. Even though the conditions are not exactly the same and market micro-structure has indeed changed significantly, overall volatility and directionality have behaved in a similar manner through the year. Since you never know which market conditions might be repeated, going for additional robustness is always a pro. It is clearly more difficult to find systems that work across more market conditions but when such systems are found (with obvious care to develop them above data-mining bias) you obtain a higher chance to successfully tackle something in the future.
The above does not mean that systems immune to failure can be created. As I have said, market conditions available for system creation are finite but the possible variations of market conditions in the future are virtually infinite. This means that despite your efforts there might always be a set of market conditions that will make your strategy under-perform and reach formal statistical failure. The key here is to have a large array of strategies exploiting uncorrelated inefficiencies such that the likelihood of failure at the same time is minimal. Two other key aspects are the ability to detect failure quickly and the ability to create new systems on-demand as strategies need to be replaced (having a strong data-mining implementation). If you would like to learn more about failure detection and algorithmic system creation please consider joining Asirikuy.com, a website filled with educational videos, trading systems, development and a sound, honest and transparent approach towards automated trading in general . I hope you enjoyed this article ! :o)