Enhancing Robustness: Implementing Modifications to Remove a Strategy’s Feed Dependency

When you trade algorithmic strategies in the Forex market one of the most important things you need to consider is that your strategy will be used across different brokers, all of which have different feeds (due to the lack of a central exchange). This means that your strategy should behave in a way that guarantees similarity in results between two feeds even if there are significant distortions between both of them. Usually the difference in feeds is largely white noise – something that we will discuss on a future post – but some differences, particularly the most damaging ones, come out as rather large directional distortions that cause price thresholds (high/lows) to be affected significantly. On today’s post we are going to discuss how we have modified Asirikuy systems to remove a big part of feed dependency and why these modifications actually work.

Before talking about how systems can be enhanced to become more robust against feed variations we need to better understand the nature of these differences. This is important because not all systems are affected by feed dependency and some seem to be affected by this dependency in different ways (for example some seem to be affected due to their time filtering while others seem to be affected even though no time filtering is used). Why is that ? My research between Alpari UK and forex-historical feeds suggests that there are two main factors that cause some systems to give very different results between the two feeds. The first is the selection of a given session for trading and the second is the use of short period hourly indicator or candle calculations.

Choosing a session affects the robustness against feed variations significantly because the variation between feeds is concentrated amongst periods of low volatility. If you have large variations around the Asian session and you choose to trade in this region it then becomes clear that results between two brokers will be very different, particularly depending on how you use the data within the session. Through my research I found out that systems that had big dependency due to the use of Asian session data (either by design or arrived at by optimization) used the session’s high/low information as a primary mechanism to decide trading signals. Since often we have significant feed-dependent spikes during the Asian session, two feeds gave very different data and therefore generated very different results.

The second problem, using low period hourly indicators, affected systems due to the big impact of single candle values in indicator outcomes. This means that if you needed data from just 3 hourly bars to take a trade you are prone to have different results because the values of the calculations are bound to be different across different feeds. This problem is particularly important if the thresholds for price action calculations are low or if the indicator values you are using rely on the high/low values rather than the closes. Since the high/low values tend to be the most affected by the feed dependency (as they record spikes that happen in a feed dependent manner) using them makes a system more prone to being less robust against feed variations overall.

How do we eliminate these problems as extensively as possible ? The answer wasn’t perfectly clear after the above was done but it did shine light into some possible paths. The first option I thought about implementing was using the median of indicators – instead of averages – such that the influence of outliers would be eliminated. This means that you would use the Median True Range (MTR) instead of the Average True Range (ATR) to estimate volatility and so on. However strategies showed even more dependency and lower profitability when using the median, possibly because the MTR wasn’t a good estimator of volatility and other median indicator values didn’t provide good profitability or robustness as well. Since the use of medians didn’t improve strategies significantly we had to search for more answers to the feed dependency problem.

Then I realized that the biggest influencing factor was the use of high and low values but particularly the use of highest/lowest thresholds. Systems that need information regarding the highest/lowest point of the last N bars tend to be much more prone to feed dependency. The way to improve strategies was then to eliminate the use of any highest/lowest thresholds and to replace them with the estimation of a period’s range based on a measurement of average volatility and its expansion around the median of all the highest/lowest  middle values of the period. If I need to estimate the range of the Asian session – for example – I would take the central point of the session and form a virtual high and low by expanding a volatility measurement around this point.

The results in this regard were particularly good, improving the results of both time sensitive and non-time sensitive strategies to make them far less feed dependent. Surprisingly this improved profitability as well, making the systems give even better results. I believe that the above technique gets into the “heart” of the session, eliminating possible outliers that may make a session seem different than what it really is. If you have a session for which all candles have a range around 20 pips and one of them is 50, you would then consider the session as a 20 pip session and not as a 50 pips one. The expansion of a volatility measurement around this median measurement allows for a significant improvement in the detection of sessions with the adequate characteristics needed for trading. Furthermore, this detection is surprisingly robust to feed variations.

With the use of the above technique and the implementation of some additional improvements (coming mainly as improvements in exit techniques), we have been able to improve the reliability of Asirikuy strategies by reducing their feed dependency and increasing their profitability. This also proves a very important point which is that in some cases a compromise between robustness and expected profits are not needed because the enhancing of one leads to a direct enhancement of the other as the trading strategy is improved in general.

If you would like to learn more about our work and how you too can improve your system design and programming skills 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)

Print Friendly, PDF & Email
You can leave a response, or trackback from your own site.

One Response to “Enhancing Robustness: Implementing Modifications to Remove a Strategy’s Feed Dependency”

  1. Rodney says:

    Great article Daniel and great lateral thinking. I suspect this technique also eliminates the need to use fuzzy logic to enter trades too.

Leave a Reply

internal_server_error <![CDATA[WordPress &rsaquo; Error]]> 500