Again, this is a lenghty post… sorry but due to the complexity of the task, it is needed !!
I don’t know the SNNS software but I think that any good NN software can do the job. It’s only a matter of preference. Some software may be faster than others which can be an advantage since training can sometimes be quite long. My work in my thesis was using millions of data points so I sometime had to wait several hours for simulation to complete. I like Matlab since it has very powerful matrix manipulation and NN calculation can be made using matrix math. Anyway in this case I believe your training time is quite fast as there are not many data points to process. Using NN software offloads you from the inside calculations and mistakes!!
I have attached a PNN document that shows you the basic math. I think that PNN have great potential for classification but I would set it aside for now. The PNN use a probability density function (pdf) that is quite different from sigmoid or tanh. The pdf is a gaussian like curve (the bell curve) and the inputs have to be processed to fit in. For those reason, I would stick to the standard backpropagation NN you (I believe) actually use. Keep it for later…
The forecast future EMA values is (IMHO) not the approach I would take. I did describe in my first post what I would do but let me explain it again.
The inputs would be what you have or a combination of the following (the little d before the indicator means the derivative of what follows so dEMA means the derivative of the EMA and ddEMA means the second derivative of the EMA. BB means the upper band minus the lower band of Bollinger Bands indicator. Also note that the Bands period should be played with to find optimal period and also the value has to be scaled so that it fits in the activation function range):
Now for the output, here is my idea:
You take the dJMA10(t+2) or dEMA5(t+1) and scale it to the range of your activation function. Of course by scaling it you will crop the highest values but the idea is to scale it to give you good resolution for normal market movements. The big moves will saturate at +1 but it is fine as it means that it is going up. I don’t care if the price is up strong or superstrong, as long as it is going up is all that matters. Another idea is to convert the values to angle values which have +90 and -90 degrees max values. You then normalize them to +1,-1. Now you create trigger points such as 0.3 and -0.3 (assuming an activation function that goes from -1 to +1). When you pass those 0.3 values, you are in up or down situation. When the value comes back within 0.2 or -0.2 then you are sideways. The little hysteresis (0.3 to get out but 0.2 to come back in) is to avoid oscillation of your prediction on boundary conditions. The values given here are arbitrarily chosen and should be back tested to fine tune them. Now you create a signal indicator based on those trig points to have only buy, sell, or sideways signal i.e. (+1,-1, 0) values to predict and this is what you apply to your learning theoretical values. The output of your NN will only be signals to buy, sell or hold and not future EMA values. This is much simpler to trade, if the signal is accurate!!
Another idea is to manually create your ideal values of buy, sell and no trade signal by looking at the testing period bar by bar and set the values manually. This could take quite some time but it could be interesting…
Another approach to use NN in trading is to do the work backwards. First you take a bunch of indicator you like and then do some backtests with the future values of those indicators. You can also use a NN that use the different indicators as inputs and train it so it will choose the correct balance between the different indicators. For example, I personally like the dEMA as it gives you the velocity of the price movement. If you back test a trading system using the dEMA(n+2) value, combined with some volatility indicators, then you see if it is profitable. Once you have tweeked the values, you then try to predict those indicators using NN and use them in your trading system. So first you see which future values are handy and then you predict them. This kind of system is quite demanding as you can end up with 4 or 5 different NN.
Also, I think that it could be interesting to try NN on longer time frames. You see, short time frames have some patterns but the news release are messing things around. Those are random in nature and no system can predict them. We have an idea with the economists prediction but still nothing is garanteed. Longer time frames like 1h, 4h and daily help to reduce those effects. Remember that doing live trading is way different from demo and backtest. You don’t always get filled or have requotes or slippage and short time frame may suffer from this. Just a thing to remember.
For the hidden layer, you only need 1, that is true. What I was saying is the number of neurons on this layer should be about twice as the number of inputs you have. This value can be changed, it is just a starting point.
Finally, I am full time worker and have very little time to put in developing trading systems. My job is quite demanding and I have little spare time. I have only been looking at forex for the past year. I am still learning but I have a good idea of what beast the forex is… A beast that is hard to control I must say !!
I will try to help you as much as I can with ideas but I cannot commit to program anything right now… You just happen to be the first one to exhibit about the same idea I have in my head so I chose to give you what I have thought !