In this reply I would, in short, try to explain what a neural network is and how it is applied for financial and business forecasting.
By definition, neural networks simulate biological network of human brain. Means they act and try to learn and perceive things as done by the neurons in the human brain.
In simple words for me a neural network is a black box which has some inputs and some outputs. Now let us assume that this black box has a memory power inside it. And also assume that if we feed this black box with prior known inputs and prior known outputs, the memory power of the black box is capable of learning both the inputs and outputs. By inputs and outputs here I mean numbers.
Now let us say we have a system which we want to learn. In our case we want the black box to learn the price changes of forex market. So forex is for us a non-linear market which cannot be modeled. By modeling I mean one cannot say how the prices change and what influences the prices. But we assume that it has some patterns that repeat or can be identified like bullish trend, bearish trend, Elliot wave pattern, flag, triangle, etc....
How the memory power works is strongly dependent on the design of the neural network, what (patterns) are aimed to learn and how well the inputs are selected for the outputs that the blackbox has to produce.
Now I will explain how neural networks relate to the system (NeuroTrend) I have designed.
Note the following notation. It is opposite to the mql notation, but this will make us understand things easier.
t: time of the current candle / Bar
t+1: time of the next candle / Bar
t-1: time of the previous candle / Bar
t+n: time of the future nth candle / Bar
t-n: time of the past nth candle / Bar
Now with this notation lets see some examples
EMA(t) = current EMA = EMA with shift 0 = iMA(NULL,PERIOD_M15,5,0,MODE_EMA,PRICE_CLOSE,0);
EMA(t-1) = iMA(NULL,PERIOD_M15,5,0,MODE_EMA,PRICE_CLOSE,1);
NeuralTrend is a neural network system which is designed to learn the forex market movements and forecast it. Lets see the design of this neural network.
Once we have designed our network, ie. what are our outputs, inputs and how many elements is the network composed of, we are ready to train it.
What I did is collected data of previous 2-6 months and trained the network. During training the outputs are also history data and inputs are also history data but not the same. Ex: if my outputs are EMA(t-1), EMA(t-2) and EMA(t-3) inputs must be values of indicators of (t-4) or before. The main usage of the neural networks is only after training.
Since we trained our network with history data, it has learnt the patterns that are represented in the training data. Now, if we give some inputs to the network, it should be able to give outputs according to the given inputs and based on how well it has learnt patterns in training phase. In NeuroTrend if we give current candle/Bar EMA and other few commonly used indicators as inputs, NeuroTrend forecasts the EMA for the next 3 periods ie the future Bars. It is able to do so as it has learnt the patterns of the forex market. Knowing the future EMA we can estimate the what the price would be and can make decisions to buy or sell.
Example: In robotics, a robot neural network gets inputs from various sensors (temperature, pressure, position, objects in view). The neural network provides according outputs for the robot to act.
In reality, a neural network is more than just a black box and I have to dive into programming in order to explain logic behind it which would be a long topic for this reply. In coming weeks, I would introduce day by day to the actual neural network logic and examples by mql code. The code for creation of a neural network and usage is in the include file(NeuroTrend_Include.mqh) which is also used by the NeuroTrend_Indicator.
I hope I have explained in short what a neural network is, how it is trained, and how it is applied in forecasting. Neural networks are widely used in Buisiness, financial, weather, non-linear processes forecasting due to their ability to learn unknown processes. Once taught with history data neural networks are used to know the future values and act accordingly. For a detailed explanation I would suggest to go through (only introduction) the following online tutorials.
Neural Network Tutorial
Introduction to Neural Networks
Widely used application: Neural networks is also used to detect hand written characters on touchpads, PDA, etc... In the following link one can write characters and test how the network is able to detect.
OCHRE- Optical Character Recognition
Finally I would say that it is not hard to learn Neural Networks and apply, only it is a bit dry topic and needs attention. I learnt it myself and am confident of its ability in forecasting.
To the main thread about NeuroTrend and downloads