BREAKING THE MOLD
Although the computing power exists today to create incredibly complex neural networks trained over massive sets of data, the truth is neural networks are like any trading system: the more complex, the more likely they won’t work in the future.
When testing inputs in preprocessing, we need to sample data. For example, if we use ADX (average directional movement) in a model, we might want to sample ADX by using the current value, the value two bars ago, the value five bars ago, 10 bars ago and 20 bars ago. That is five inputs, so you can see how networks can easily get 30, 40, 50 inputs.
Remember, if we want to use deterministic methods like kernel regression, this is a problem. Classic old school development uses this type of approach. If we wanted to predict 10 days out, we would have seven inputs for each variable and have seven or eight variables, this means we have 50 or more inputs to our models. Kernel regression can’t use this paradigm. Never mind that any analyst would be hard-pressed to make sense of all the relationships in such a complex model.
So, if our goals are to use deterministic methods such as kernel regression, have models that we understand, and are robust, what is the solution?
It’s simple. We build smaller models, composed of logical components that themselves are predictive. We will test different combinations of these and build multiple models. Then, we will combine these models to create a composite model. Each model, or expert component, will look at the problem slightly differently because components will vary.
We can build these expert components manually, like how we build trading systems, and have them output 1, 0, -1, for example. We also could evolve them, using genetic algorithms or another machine learning method. We also could create fuzzy outputs, like an indicator measuring intermarket signal strength, which not only would be based on direction but also on the time since divergence first occurred. If all goes as planned, the experts would look at the problem differently and increase the robustness of our solution.
Building these components requires domain expertise. They can be built manually. We also could use genetic algorithms to evolve them. We can use forecasting methods such as linear regression forecasts and employ a genetic algorithm to predict the error in these linear forecasts.
In addition we can use descendants of older algorithms. We don’t always need our components to give buy/sell outputs. They can be forecasts; they also can be advance composite indicators that tell us about trend strength and market modes. What we are doing is allowing neural networks or kernel regression to combine components into an expert component.
When we build these components, as well as more advanced parts of this solution, we will use them in a walk-forward way. This means that sometimes a component will stop working and we need a way of replacing it.