When developing trading systems it quickly becomes evident that the possibilities we have for the development of trading strategies are limited by our level of understanding about the markets. From this limitation the idea to “out-source” system development to computers sprouts as a real possibility and techniques such as neural networks and genetic programming allow us to let computers “build strategies” based on a level of “understanding” of the market which goes beyond what we can do in a manual way. On today’s post I will like to talk a little bit about the extreme danger and problems that lie beyond this border and how letting computers design system logic is a terribly bad idea when the core components of such logic are “built by the machine”.
Certainly if you have read my blog for a while you might have seen that I have done a lot of development in MT4 regarding genetic programming and I have in fact developed a very simple yet effective framework which allows us to create likely profitable systems for all instruments we have EOD data for. However this framework – and the C++ one we’re currently developing in Asirikuy – pick the logic used inside systems from within a “logic database” which has different logic sets input by us, its human programmers. This makes the system generate final strategies which are transparent in the sense that their logic – and the reason for its profitability – can be easily understood by us. For example the program might use an RSI cross on one strategy and it is clear to us what an RSI cross means and why the strategy is profitable with it.
–
A very different thing is when you let the system generate the “logic database” allowing it to build systems based on whatever it wants. You may wonder how a genetic framework may do this and the answer is actually not that difficult. If instead of using a simple group of rationally designed logic sets you replace these by a given set of mathematical functions which the framework can combine in any possible way, you end up with a genetic framework which is capable of generating its own logic database and you may end up with much more profitable strategies.
There are however several dark secrets to this way of system development. The first problem – which is the greatest one – is that the logic that is output by such frameworks can rarely be understood by the trader. For example if a framework generates a system which goes long when the square root of the Sine of the 24th close in the past is higher than 0.2 times the Cosine of the 2nd close in the past, we have absolutely no idea – or at least we would have to work MUCH harder to get it – how the system is generating its profit.
You may think that this is absolutely harmless since we can just run tests against “curve-fitting” (like out of sample tests) to see if there is any problem with the inherent logic but the fact is that issues such as symmetry – which are vital for the development of sound strategies – might be very obscure. For example imagine that a very entangled logic – like the one mentioned above – is at its core based on the fact that the USD/JPY has been going down for the past 10 years or so and the short logic is totally asymmetric to the one given above (although such asymmetric is not obvious because the logic is not transparent). There is absolutely no curve fitting test we could do with possible data that would let us know this is the case and we are simply implementing something that is bound to fail almost certainly in the future because we simply lack enough understanding about it.
I have always been – and hopefully will always be – a big defender of understanding and the building of trading systems based on knowing what you’re doing and I definitely do not like the idea of frameworks which develop “black boxes” where the logic is absolutely mysterious to the traders who will be using it. However this by no means implies that such an approach cannot be successful but a much greater degree of care must be used to interpret and examine the results obtained. Tests would need to be carried out for symmetry and robustness, something which is many times not necessary for systems developed with sound human-input logic sets since the logic can be seen to be symmetrical with a simple observation.
There is actually a lot of experience in the world with such black-box trading systems developed from neural networks and genetic and the conclusion seems to be that problems related with symmetry and curve-fitting are much more predominant with this type of systems where human input is greatly reduced. While systems developed with human input logic are much less prone to failure and the above mentioned problems, logic developed by the machine through brute forcing of historical data to obtain profitable results almost always ends up with results which are extremely obscure and much more prone to future failure.
Obviously it would be close minded to negate the possibility of system developing “better systems” than what a human input logic can do but certainly this road must be walked very carefully since every small aspect that could lead to curve-fitting and asymmetry needs to be taken into account to avoid problems related with hindsight and lack of robustness. If you would like to learn more about my genetic programming framework for MT4 and how you too can learn to develop your own systems based on sound trading tactics and evaluation 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)