How to avoid over training

 

Over training is the most typical problem when we create Neural Network based models. This problem appears when we have too many inputs for Neural Network and not enough price history. I will show you what the problem is using this example: let's download the whole price history for DJIA since 1885 till 2011. This is about 35K price bars; we can create a Neural Network that contains 10K inputs. The question is: "Is it a good model?".

The ratio between the amount of price bars and the amount of inputs in our Neural Network is 2.8 (35K price bars divide 10K inputs). This value is too low, i.e. we have too many inputs, and this fact can cause over training effect. This effect works this way: Neural Network provides a very good projection line for the past (prior LBC) while it completely does not work for the real forecast (after LBC). Mathematically this fact is quite obvious:  we have a lot of events to describe any stock market move in the past; however when we try to forecast a future movement, we need to deal with inputs that actually are related to the stock market forecast. In other words, if we would like to explain something in the past we can use anything, though if we are really interested in making a forecast that works we have to be very picky i.e. choose the most important events only. Neural Network specialists call this effect GIGO - "Garbage in, garbage out".

Here are my recommendations how to avoid GIGO:

1) Keep the ratio between the amount of price bars and the amount of inputs  as 10:1. I.e. if we have 35K price bars, the amount of inputs should not exceed 3500. Actually I believe that for 1000-2000 bars of the price history for daily data you may use 300-600 inputs i.e. use 3:1 bars/inputs ratio; however for longer price history data  use 10:1-20:1 ratio.

 

2) Make filtering of the events. I recommend to use Upcoming Events ( http://www.timingsolution.com/TS/Uphistory/upcoming_ev/  ) and Easy Expert (  http://www.timingsolution.com/TI/3/index.htm  ) modules to make filtering of the events. These programs perform the statistical analysis of events and choose the most important ones. 

Click these buttons to save these events into the clipboard:

Upcoming Events module:

 

Easy Expert module:

 

 

Now there is one very important nuance: these modules work with instantaneous events only, for example these modules work with the aspects' culmination (not aspects in orb) though for Neural Network it is better to use continuous events. In order to convert instantaneous events into continuous ones, follow  "Tools"->"Events Clipboard content". Clicking this button you can set the orb for the events in the clipboard:

 

Now you can use these events in Neural Network module this way: