The Development of Robust Basket Systems : Systematically Improving Their Results

If you have been reading my blog through the last few months you have probably seen that I have focused part of my development efforts towards the creation of daily long term trend following systems to diversify our current EA portfolio at Asirikuy. The idea is to add robustness with trading tactics that get moderately decent profitable results on a wide basket of currencies with no changes within their parameters, effectively allowing us to exploit “universal” market inefficiencies that are very prone to last for the longer term (20-40 years).

Certainly these systems add a lot of diversification into our Asirikuy portfolio since these tactics are very different from the majority of trading strategies currently within the website which exploit much more focused and specific market inefficiencies. However a problem that comes when you develop daily long term trading systems that are supposed to have the same parameters on “all pairs” is the improvement of such strategies. On today’s post I will be sharing with you some information about how you can improve the trading characteristics of these systems while maintaining a high degree of effectiveness across all the different instruments without changing the settings to specific “optimum levels” across the different pairs.

So why can’t we optimize a long term trending system for each pair ? The answer comes from the fact that these strategies usually have a very small number of trades per currency pair for a ten year period. Since the number of trades is so small, small changes introduced by small differences in settings can cause what appear to be dramatic changes in profitability which may simply not be reflected under future market conditions. You could say that the statistical significance of the results on each pair is not high enough to ensure with a high degree of certainty that the results of the optimization are not curve fitting the strategy. The low number of trades (usually 20-50)  leads to a very high and real probability of curve fitting which simply makes single pair optimization very dangerous from an expectations stand-point. A small change in a system variable can increase the profitability of a single large trade by 20%, appearing to hugely increase the overall profitability of the strategy (since the profitable trades are usually few but big) when in reality such increase only corresponds to a “curve fit” to past market conditions.

However it is also true that we do not want our strategy to be “under-fitted” achieving worse results than what it could achieve in live trading and therefore we find ourselves with a significant problem regarding how the optimization of such systems should be handled. How do we optimize a strategy that cannot have different settings for each different currency pair ? How do we optimize the strategy if we cannot optimize on several currency pairs at the same time ? (due to the limitations of Metatrader 4).

In order to tackle these problems I have devised a very simple optimization procedure that takes advantage of a simple fact I  have discovered which relates to the very nature of these strategies. I discovered that the best settings for the worst performing pair tend to be the best settings for the overall portfolio although they may not be the best setting for the best performing pair. The reason why this happens seems to be relates with the fact that the “worse performing strategies” are usually the least correlated, when we optimize the results for these strategies we actually make the system perform better through less correlation and we effectively improve the overall outlook of the strategy.

Following this idea, I have developed a very simple procedure that highlights the way in which I improve the results of these strategies in a systematic manner.This procedure is shown below :

  1. Optimize the strategy on any pair
  2. Run tests for all the intended basket of instruments
  3. Optimize the results on the worst performing instrument
  4. Repeat the tests
  5. Optimize the results on the worst performing instrument
  6. Repeat the tests
  7. Compare the results of the last two tests
  8. If there was an improvement, continue the cycle. If there wasn’t stop here.

As you see the improvement cycle runs in an attempt to improve the system over the worst results, trying to get a portfolio improvement from this effort. This procedure usually converges quite fast into a portfolio which is more robust than the original (and usually more profitable) although the results for the “best pair” may not be optimal the robustness and correlation-dependency of the strategy is most likely eliminated to a good extent.

Certainly the ideal thing to do would be to run an instrument-wide optimization of the whole strategy but sadly this might not be possible until we move towards MQL5 which will allow us to test a system on a wide variety of instruments and run intra-instrument optimizations, choosing the best results amongst a basket of different currency pairs. However the above procedure is probably much less computationally intensive and leads to results that are good enough to develop systems such as Quimichi (which used the above optimization procedure).

If you would like to learn more about mechanical trading and how you too can build your own automated trading systems based on sound trading tactics please consider joining, a website filled with educational videos, trading systems, development and a sound, honest and transparent approach to automated trading in general . I hope you enjoyed this article ! :o)

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

2 Responses to “The Development of Robust Basket Systems : Systematically Improving Their Results”

  1. Maxim says:


    Thanks for giving us insight into your work.
    I would like to propose to port the code to MQL-5 (like).
    This would allow to create synergy between MT-5 and MT-4 by optimizing with MT-5 and trading on MT-4.


    • admin says:

      Hello Maxim,

      Thank you very much for your comment :o) That would be absolutely great Maxim ! However we would also need to export our Alpari UK data to MT5 since the current MT5 data is indicative and unreliable in nature to the same extent as the old Metaquotes data we used to use. As you know having an MQL5 framework ready for Asirikuy systems is one of our top priorities for next year so it would be great if we could develop this testing/trading synergy :o) Thanks again for your comment !

      Best Regards,


Leave a Reply

Subscribe to RSS Feed Follow me on Twitter!
Show Buttons
Hide Buttons