Extending financial example
The included example uses just the ADJUSTED_CLOSE, my first idea was to use at least the VOLUME also. So I tried to modify the MarketBuildTraining.generate() this way:
final MarketDataDescription desc = new MarketDataDescription(
JtConfig.TICKER, MarketDataType.ADJUSTED_CLOSE, true, true);
market.addDescription(desc);
final MarketDataDescription desc1 = new MarketDataDescription(
JtConfig.TICKER, MarketDataType.VOLUME, true, true);
market.addDescription(desc1);
market.load(JtConfig.TRAIN_BEGIN.getTime(), JtConfig.TRAIN_END.getTime());
market.generate();
It seems to be a wrong approach as the error rate remains over 65% after 10h of training. Do I have to normalize the data or am I completely wrong?




You will need to normalize volume. The idea is that you should always feed your neural networks numbers between 0 and 1 or -1 and 1. Volume goes up into the millions, I think. You have several options to normalize.
The easiest would be to look at what the max volume you think your security would ever reach, then treat the volume as a percent of that. so that will always be 0-1. Or you can also normalize it out to -1 to 1 as well. -1 to 1 gives you more range, especially of you have hyperbolic tangent activations in your net.
Could you tell me why we do not have to normalize the ADJUSTED_CLOSE but the VOLUME? The most stock prices are out of range 0-1 as well.
Did you need to make any new classes to normalize for this example? I'm having trouble seeing where to put the normalization step.
I believe that example tracks the percent movement of the stock, from the previous day. So it would only be above 1.0 if the stock had more than doubled in price.
thank you! Do you have an answer for the arkas question? It is not obvious, where to normalize the volume as many functions are nested.