Like @bmigette, I'm also curious about your model. Why do you make a difference between ML and NN? Isn't NN just a subcategory of ML?
Do you mean that you use a deep spiking NN? If so, it would probably be one of the first ones to do this?
Why do you use SNN, compared to just MLP/RNN/LSTM?
Do you use back propagation with gradient descent, or how do you train your SNN model?
Why do you use GPU for training, since you are dealing with a time series? I don't see how you could parallelize the training of a time series to make use of a GPU?
Where does your RL model come into the picture and what input do you use for this? It sounds like your input to your RL model is the output from your SNN model?
I would also be interested in copying your signal if you list it here on Autotrade or on MQL5. Thanks for your input!
There are a lot of questions in one post:)) we will try to answer a few of them for now...
Yes, you are correct. NN is a part of Machine learning. But a sufficiently trained NN can be used independently without using any further training and that is what we initially thought of and that's why we called it as NN network instead of machine learning.
We don't like to call an algo as true machine learning until it learns from real time market data while trading to adopt under any markets. We know that there are other developers of machine learning who just optimise an algo by curve fitting with past data and call it as machine learning and we don't call that in that way. That kind of algo can be called as 'automatic optimisation', but not machine learning in our perspective of course.
But it is not simple as it seems to be initially. There is technically no such model available in our knowledge which can generalise in all market conditions and hence, the NN needs to be continuously trained to filter out noise and keeping some residue for good signals just like a human brain using a multi-layer neural network so that in the last layer it will generate high quality signals based on the latest trained model.
Now, here is the tricky part because it requires massive computational power to run even a 2 to 3 layer neural network properly. If we will add continuously learning to it, then it even consumes more resources and that is the reason we are planning to use GPU.
But soon we are realising that GPU is not going to be sufficient also, and we are planning to do everything in Python and we may use cloud TPU services for training and then, connect to MT5 or MT4.
In forex trading, though it is difficult to have a good model , but also just having a good model is not enough since there is no way to know whether the signals generated by the model are actually getting executed as trades or simply getting discarded due to server freezing or mt4 freezing. So we need to calculate ahead as how many calculations or for loop iterations the model is doing inside to end up with the signals and how much time we can expect it to complete the cycle.
For example, at a opening candle if the signal is generated after 5 minutes of processing time by the model, then the price might have already moved significantly within that time and hence, such signal become useless.That is the main reason we are working on Spiking Neural network to tackle such issue.
But such things are very complicated and not easy to implement and definitely not easy to implement in MQL4 using the existing libraries. Hence, it will take time to complete such things or we may simply work completely on python. So for now we are testing in multiple demo and live accounts whatever we finish till now to see how everything goes.