Machine learning in trading: theory, models, practice and algo-trading - page 481

 
Maxim Dmitrievsky:

to the increments we can give a probabilistic estimation of belonging to the by\sell class


well, keep going without "reasoning"

 
Oleg avtomat:

Well, keep going without "thinking."


Okay, let's check by experiment... :) of course I will try 2 or more 2 classes, but I do not see a fundamental difference for my case

 
Maxim Dmitrievsky:

Maxim, the way I see your situation is this:

The goal is:

a) to get a probability of direction of movement;

b) to get an estimate of the strength of the movement.

Solution options:
1) Use one output [0,1], or [-1,1]. Or two outputs [[0,1],[0,1]].

Note: the training data must reflect the strength of the movement, i.e. the movement history must be normalized to the desired range.

Plus: It is convenient and easy to set up a network model.

Minus: Normalization will be heterogeneous over the whole time series, due to different amplitudes of price changes.

2) Use two-dimensional classification of output [0,1]+[0,1] or [-1,1]+[-1,1]. Or three/four outputs [[0,1],[0,1]+[0,1]], or [[0,1],[0,1]+[0,1],[0,1]]. One dimension is the probability of direction of movement, the second dimension is the probability of strength of movement.

Plus: Better visualization of the result.

Minus: The complexity of neural network model tuning on "wooden" frameworks.

3) Variant two with splitting network model into two. One model learns to predict the direction, the second model learns to predict the strength of movement.

Pros: Maintain visualization; Ease of application of neural networks.

Minus: Probably a slight increase in calculation speed; More code.

 
Aleksey Terentev:

Maxim, the way I see your situation is this:

The goal is:

(a) To obtain the probability of direction of movement;

b) To get an estimate of the strength of the motion.

Solution options:
1) Use one output [0,1], or [-1,1]. Or two outputs [[0,1], [0,1]].

Nuance! the training data must reflect the strength of the movement, i.e. the movement history must be normalized to the desired range.

Plus: It is convenient and easy to set up the network model.

Minus: Normalization will be heterogeneous on the whole timeframe, due to different amplitudes of price changes.

That is, the value of the probability of assignment to one of 2 classes will still correspond to the strength of the signal, if I initially will fill the outputs with signal strength (say, just feed the normalized increments in the range 0-1, the output will get the higher the probability of assignment to a particular class, the greater the expected increment?

Or it doesn't work that way, and we get just probability of assignment to a class, but the size of increment on the output is already lost :)

 
Vizard_:

If we build a simple regression line.... i.e..... it'll be stronger than...
And if we take a neural network with non-linear classification...


Measure them with one ruler and you'll find out. For example the now fashionable - Logloss(In R - library(MLmetrics))

Wouldn't it be better to create more classes

Whatever you want, do it that way...



That is, the information about the value of increments will not be lost after training, and you can use the probability of assignment to the 1st of 2 classes to determine the predicted strength of the increments, not only in which class these increments will turn out to be. Then why bother with many outputs, 2 is enough :)

 
Maxim Dmitrievsky:

That is, the information about the magnitude of the increments will not be lost after training, and you can use the probability of assignment to 1 of 2 classes to determine the predicted strength of the increments, and not only in which class these increments will turn out to be. Then why bother with many outputs, 2 are enough :)

If you are interested in a good result, then why bother with many outputs?

Respectfully.
 
Maxim Dmitrievsky:

So the probability of assignment to one of 2 classes will correspond to the signal strength, if initially I will fill the outputs taking into account the signal strength (let's say, I just feed the normalized increments in the range 0-1, at the output we get the higher the probability of assignment to one or another class the larger the expected increment?

Or it doesn't work like that and we'll just get probability of assignment to a class but the size of increment on the output will be lost :)

The neural network itself doesn't know what it needs. It learns from what you feed it. If there is indeed a pattern between input and output in the data, with proper training the model will reveal it. I.e. Yes, the probability value can signal the strength of a movement.


I would do the following: divide signals into two buy/sell classes by [0,1] or sinusoid/tanh output [-1,1].

 
Andrey Kisselyov:
The probability of each gradation in buy may be different from the probability of the same gradation in sell, you will have to do some work if you are interested in good result.

Sincerely.

No, I already cited the screen, the increments are stationary and symmetrical on both sides of zero, so the probabilities will be +- the same


 
And yes, this is where normalization comes in. It will jump, and normalize the data differently at different time intervals.

Well, if you normalize the data all at once, the signals will be much weaker.
 
Aleksey Terentev:

The neural network itself does not know what it needs from you. It learns from what you feed it. If there is indeed some pattern between input and output in the data, the model will detect it with proper training. I.e. Yes, the probability value can signal the strength of the movement.


I would divide signals into two classes by [0,1] or sinusoid/tanh output [-1,1].


Yes, thanks, that's what I wanted to hear ... because a friend who's into neural networks told me that the probability of assignment to a class is just the probability of assignment to a class, the data on absolute increments would be lost ... I started arguing with him and ended up confusing both of us :)

Reason: