The following comments are the inconsistent and confused ramblings of a madman. If you prefer not to expose yourself to this type of thinking, click "Next" now and read no further.
To all:
Recently I received an e-mail from another Neuro user who happens to reside in Sweden. He had sent several nets and had written comments about each one. I read his comments and replied, not really giving it much more thought. It wasn't until the other day, after a conversation with Len on the phone about Neuro, during which he made a particular comment that started me thinking { which is something that I should never do because it just gets me confused, and I hate being confused }, and I suddenly realized that I had totally missed the point of some of the concepts of what my Swedish friend was trying to say in his e-mail.
I think we all have to ask ourselves, exactly what are we trying to accomplish with this program, other than the obvious, which is to make money in the stock market. From my perspective, the ultimate goal from using Neuro is to produce neural nets that accurately predict future price movements. To accomplish this we train a set of data from date "X" to date "Y" and then we look to see if this trained net is producing, what we each individually consider to be, accurate predictions at date "Z". In other words, we want Neuro to trade the stock in the verify period in a manner which is consistent with how we would have liked to have traded the stock ourselves during that time period. Or more simply put, we want Neuro to guess right when the net is exposed to data that it has never seen before.
Well, I for one realize, and I'm sure that most of you already realize that through trial and error in changing the influence settings and relateds, that we can make the verify period appear nearly anyway that we so desire. I can make nets that sell when they should be buying or hold when they should be selling and vice versa. We have all had disasters like this occur when we were trying to come up with a good net, and when we saw the results, we trashed the these nets immediately and started over.
So, let's assume that we have constructed a net and have produced a satisfactory verify period. Now what do we do? Well, due to the very nature of the programming of Neuro with it's "sliding window effect" that happens immediately upon updating the data files, we add untrained data to the net's trained data. Wouldn't this action by its very nature corrupt the net? After all, we had a net that was trained from date "X" to date "Y" which produced results in the verify period that we liked. Now we no longer have that net. It has been changed. It has different data in it. One might say that you could put the start and end dates back to the original ones, but I submit that the net has been corrupted and will never be the same again unless it is retrained from the beginning. Look back a few posts to where I discussed the Forget button. I believe the same scenario would apply here. Once the new data hits the net, even if you don't train it and remove it right away, there will still be a memory of it somewhere in the net. Like with the forget button, this can be tested by making a copy of the net and before updating any data, move the training end date of the copy back one month. Then update the data. Then when you open the copied net the "sliding window" will still be within the trained data and no new data will enter the net. The training end date can then be moved to where it belongs. Then open the other net that did not have the end date moved back and compare the verify periods of the two nets. I have seen comparisons that have had very little change and also comparisons that have had quite a bit difference. I have seen Neuro "change it's mind" once new data was added and change the predictions close to the end of the verify period. This kind of sudden change can become quite alarming if you have already entered the stock based on previous predictions that now Neuro, with access to the new data, has decided were wrong. The biggest part of this problem is, that since Neuro won't train the last ten days of data regardless of where you set the training end date, there is no way to get away from this problem completely. Even if you train all available data this problem will always exist in the last ten days. Controlling the addition of new data and maintaining the original net it it's original form seems to be the only answer, and I'm not sure how good an answer that is.
I must be going crazy, because I am even starting to question the statements of Andrew, where he said that if the net with the verify period looks good, it was perfectly all right to add all of the verify period data to the training data and finish training the net. I submit that from what I've seen, that if you want to add that data and get a perfectly clean net, you must train all of the data from the beginning, not add it to a net that is already complete. Perhaps I don't really understand how the training procedure of this program works and possibly everything I have stated is flawed. I really have no idea. Insane or not, these are just some conclusions that I have come to from observing results from different nets and training scenarios.
Comments anyone?
Len, I know you'll read this. So, am I losing it?
Jay |