Performance of TurboProp 2

Speed

An issue which has been of some concern in the past is speed. Neural networks have had the reputation of being slow to build models, sometimes taking hours or days. This has been especially true for the old style "backpropagation" networks. The slowest of those use genetic algorithms to find an optimal architecture of the nets. That can really take a lot of time. Not true of OUR networks with Turboprop 2! Our nets find their own architecture and don’t need a genetic algorithm to do it for them.

Why is this blazing speed of our NeuroShell Trader training important? Suppose you have a portfolio of 20 stocks, and you do 5 walk-forward tests on each. That’s 100 nets. Now suppose further that you want to train your portfolio each week with 20 different experimental combinations of inputs, training set sizes, etc. That’s 2000 nets a week. With Turboprop 2 in the NeuroShell Trader on todays machines, the training of each net only takes a few seconds. We mentioned before that some other nets take hours or even days, but suppose you somehow had a fast one that takes only about 5 minutes per net. You’d spend 166.6 hours per week training nets, and a week only has 168 hours in it! Good luck. The NeuroShell Trader is the only neural network system we know of that is fast enough to be practical for most traders.

Accuracy

Some misinformed people still persist in saying that neural networks do not work. In this example we prove that OUR neural networks, based on the Turboprop 2 training method, really do work. When given predictive inputs, they will get the output 100% correct! Earlier we stated that no trading system can be 100% correct all the time, but here we show that the limitation is what you feed the nets, not the nets themselves. Neural nets in general, and Turboprop 2 in particular, are probably the best modeling tools in the world.

We start out with a chart of IBM common stock. We train a network to predict the change in close 10 days in advance. We give the net only today’s open, high, low, close, and volume. We train on 5 years of data and evaluate on the following year. Our net is not a stellar predictor.

Click here to view the performance of the net when trained to minimize error

Click here to view the actual vs. predicted graph

Finally, click here to view the network’s performance when trained for profit.

All are not that impressive, as we should expect. But what if we were able to feed really predictive inputs into the net? We know that the change 10 days ahead is the difference between today’s close and the close 10 days from now. The former is already in our net as an input, so what would happen if we also give the net the latter, i.e., the close 10 days from now? (We are fully aware that in a real situation the close 10 days from now is not available. However, we are simply trying to make the point that our neural nets are very accurate when given predictive inputs.)

Click here to view the result when the new input is added.

The average error is .000000000000407! The prediction is correct to about 13 decimal places!

Click here to view the new actual vs. predicted graph.

You can’t even see the actual (blue) line, because the red predicted line exactly overlays it!

Now, here is the result if the net had been trained based on profit. This is how good you can do if you can get the right variables.

Click here to view the profit net.

Finally, we show the contribution factors for this net: the amount that the net feels each variable contributed to the result. Note that, correctly, the net determined today’s close and the close 10 days from now both contributed about the same (about 50%), and all of the other variables were not contributors.

Click here to view the contribution factors.

Summary: We learned that neural networks (at least OUR neural networks) are very, very accurate WHEN THEY ARE FED PREDICTIVE INPUTS. If you can find things that lead the market, things that actually affect the future price, then you can build very successful models. 

Overfitting

A common myth that some people like to talk about is that all neural nets overfit. Not OUR nets, with Turboprop 2! In this example we’ll show that Turboprop 2 nets are hard to overfit, as long as you don’t overload the net with too many inputs or give it too few bars in the "training" set. (Any modeling technique we know of will overfit if given too many inputs or too few observations.)

We start with a stock, any stock, like Apple computer. We want to show that the net will not learn noise that is in the output but not in the input. For the output, we will just use the daily close, which is noisy to begin with. For an input, we’ll smooth the curve by taking the 15 day simple moving average.

Click here to view a graph of the close and the moving average.

Next, we build the net, using the moving average as an input, and the actual close as an output. We predict the same day, of course, not some number of days ahead. We use a fairly small number of bars to train the net (1 year), to give the net a challenge. If the net overfits, it will produce a prediction that is more like the close than like the smooth moving average. You can probably guess by now that it didn’t learn the noise.

Click here to look at the actual and predicted values on the bottom subgraph.

Just to be sure, we will superimpose the smooth moving average onto the same subchart as the prediction:

Click here to view this new chart.

As you can see on the third subgraph on the bottom, they are practically the same. The Turboprop 2 net did not overfit.

Advanced Neural Network Software for Financial Forecasting and Stock Prediction

Ward Systems Group, Inc
Executive Park West
5 Hillcrest Drive
Frederick, MD  21703

Phone : (301) 662-7950
Fax : (301) 663-9920
Email : sales@wardsystems.com

Skype (Sales Only) : wardsystems | wardsystems2


Copyright© 1997- 2010 Ward Systems Group, Inc. All rights reserved
Copyright Information
Privacy Statement