I would like to use ANN to automate trading currencies, preferably USD/EUR or USD/GBP. I know this is hard and may not be straightforward. I have already read some papers and done some experiments but without much luck. I would like to get advice from EXPERTS to make this work.
Here is what I did so far:
- I got tick by tick data for the month of july 2013. It has bid/ask/bid volume/ask volume.
- Extracted all ticks for the time frame 12PM to 14PM for all days.
- From this data, created a data set where each entry consists of n bid values in sequence.
- Used that data to train an ANN with n-1 inputs and the output is the forecasted nth bid value.
- The ANN had n-1 inputs neurons, (n-1)*2 + 1 hidden and 1 output neuron. Input layer had linear TF, hidden had log TF and output had linear TF.
- Trained the network with back propagation with n-125 first and then 10.
For both n, the MSE did not drop below 0.5 and stayed at that value during full training. Assuming that this could be due to the time series being totally random, I used the R package to find partial autocorrelation on the data set (pacf). This gave non zero values for 2 and 3 lags only.
Question 1: What does this mean exactly?
Then I used hurst exponent to evaluate the randomness. In R, hurst(values) showed values above 0.9.
Question 2: It is supposed to be nearly random. Should it have a value closer to 0.5?
I repeated the training of the ANN with n=3. The ANN was trained and was able to obtain a pretty low value for MSE. However, the calculated output from this ANN does not differ much from the (n-1)th bid value. It looks like ANN just takes the last bid as the next bid! I tried different network structures (all multilayer perceptions), different training parameters, etc, but results are same.
Question 3: How can I improve the accuracy? Are there any other training methods than backpropagation?