On the last post of my “Neural Networks in Trading” series I talked to you about Sunqu – the first NN self-adapting implementation I have built for MT4 – and some of the challenges I faced with its construction. There are many practical problems faced when you attempt to build an NN based trading system, many of which are difficult – sometimes almost impossible – to overcome. On today’s post I am going to talk about the main challenges a trader faces when developing an NN system – from a system design point of view – and how they can be tackled to some extent. If you haven’t read my “Neural Networks in Trading” series I recommend you search for previous articles so that you better understand what NN are about.
As we have discussed before, neural networks are nothing but complex function based engines which attempt to predict some future result of a non-linear series of data after training has been done over a set of data for which the intended result is known. We also talked about the fact that results in NN need to be normalized between 0 and 1 (or -1 to 1) and how this poses an additional challenge to NN system development.
In my experience up until now once of the most important challenges of system development using neural networks is to determine which inputs hold predictive power regarding a certain future variable. For example if you’re attempting to predict the next day’s close direction on the EUR/USD you will find that previous closes have some predictive power but other data (such as the high, low or open) don’t seem to hold a lot of relevance. Using other pair’s closing data also doesn’t improve predictive capabilities on this pair meaning that their use only implies an increase in complexity without added predictive capabilities.
It is certainly a big challenge to come up with data inputs which help you improve the quality of your predictions. Some of them are obvious (as inputs that relate exactly with your output) but others may be obscure and difficult to determine. Building an NN just by “throwing all data at it” will most probably not yield good results as you’re simply making the network process a lot of irrelevant data. To add complexity to the matter different pairs have different relevant inputs for different predictive objectives. For example pairs that have been clasically used in the carry trade allow you to predict weekly direction with an edge when you include bank interest rate differences while pairs like the GBP/USD benefit from fundamental data like the Libor rate. In essence there seems to be a limit to the degree of predictability that can be obtained from technical data in some pairs with significant increases in predictive capabilities only coming from the inclusion of certain fundamental data. This reveals that market participants are not efficient in their acting on new data which makes room for the exploitation of a profitable edge.
Another very interesting fact – which makes things even harder – is that the shape of the output completely changes the predictive qualities of the network. For example if you attempt to predict weekly direction by having a zero output for short and a 1 output for longs you will have terribly bad results – the same as if you attempted to predict the difference between week open and week close – while attempting to predict the exact weekly close value and then comparing it to the previous prediction might yield better results regarding direction.
The way in which you normalize the output between 0 and 1 also plays a major role in how good the prediction will be. For example if you normalize weekly close outputs by diving them by the previous weekly close times 2 you will get some result while if you divide it by the previus week’s open times 3 your end result will be totally different. Bear in mind that in both cases you will reconstruct a prediction of the furute weekly close with previously known data but the mathematical effect of this data during the training process plays a role in the predictive capabilities of the network.
Added to the problems of input data relevance, output shape and input shape you also have the problem of prediction stability. Some networks will train and yield results with an edge almost entirely by chance as future training on the exact same set reveals that the edge has disappeared. On the post dealing with Sunqu I talked a little bit about this issue and how NN comities can help us deal with it by getting multiple predictions from multiple training sessions over the same data in order to come up with a “stable” decision. Another powerful tool involves using a few comities from neural networks with different outputs “shapes” that can come up with the same decision, allowing us to further strengthen our prediction.
Evidently there are many challenges in the building of systems with neural networks and the more I advance into the matter the more fascinated I become by them. It is very interesting to investigate which sets of data might be relevant for different currency pairs and how – as my previous research has shown – the EUR/USD remains the most inefficient pair in Forex as predictions can be drawn with least amount of data (although this will be the topic of another post on this series) . Neural networks are a marvellous tool for system development, allowing us to build self-adaptive strategies which hold an advantage over classic strategies from a purely evolutionary perspective.
If you would like to learn more about my work in automated trading and how you too can build trading systems based on sound trading tactics 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)