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

 
elibrarius:

Maybe they are sensible...

But we were taught everything at the university and laboratory experiments were conducted. And they didn't say, "Take it as truth, which does not require proof."

I agree with this ) but he seems to have described the theory in other threads, you just need to reread everything

The forum is very uncomfortable means of communication, as for me ... a lot of information, 90% of the rest is forgotten or not read correctly ... hence the slight flavor of misunderstanding among the participants

 
Maxim Dmitrievsky:

I agree with this ) but he seems to have described the theory in other threads, you just need to reread everything

The forum is a very uncomfortable means of communication, for me... there's a lot of information, 90% of it is forgotten, the rest is missed or misread... hence, there's a slight flavor of misunderstanding among the participants

I don't compress/uncompress it)). It goes without return.
Important things need to be put in a blog or an article (but it must still be accepted) in a blog is easier. Otherwise it will forget all that he wanted to say and others, and his thoughts are forgotten over time. And then to throw a link to the blog in the forum and discuss...
 
Aleksey Terentev:

At the moment, there is a stable model. It still needs to be worked on, but is busy with other tasks.

Input = price + 13, 26 yema;

Preprocessing, output = sigmoid (max, min, close), delta (open-close), derivative (max, min, close), logarithm of derivative (max, min, close), detrend (close-eme13, close-eme26), ema(13, 26), derivative ema(13, 26); Convert dataset to dataset of timeseries (1 candle + 5 last candle). Total 16 x 6 = 96 parameters.

Architecture:
BatchNormalization(96);
GRU(96, L2, Dropout=0.5, 'elu');
GRU(64, L2, Dropout=0.5, 'elu');
BatchNormalization(64, Dropout=0.3);
Dense(32, Dropout=0.3, 'elu');
Dense(16, 'elu');
Dense(8, 'elu');
Dense(3, 'softmax');
Optimizer=Nadam;
Loss=Categorical crossentropy;

BouncedMA signals exit a candle ahead (above in the branch);

Estimations: loss ~0.7-0.8; accuracy ~0.55;
But these estimations are not indicative of the quality of the signals. They are lower, due to the fact that the signals are training = 1.0, 0.95, 0.0, -0.95, -1.0, And the buy/sell class forecast fluctuates ~abs(0.45, 0.7).
Also, out of a dataset of 5000 lines, the training runs on 0.8 parts, which means the model doesn't even see the latest quote data (~1000 lines). The prediction is made on the last 100 candlesticks.

As you can see, training can be stopped at ~45 epochs.


Code, Indicator.

This is how the posts in this thread should be. Reproducible data, code and result. This can be discussed, supplemented and compared. All the rest is nonsense of no value.

Well done. I'll show the same model in R/MT a bit later, we'll compare both code volume and quality. I'm pretty busy at the moment, too. But I will surely come back to this topic.

Good luck

 
Alexander_K2:

Once again.

For forecasting, it is extremely important, incredibly important, to know the laws of distribution of the predicted values.

You don't know them for prices, or for increments, or for the time between quotes. Moreover, you do not even try to bring them to one form or another. So how can you predict? These shameful tick archives have already plowed through a billion traders. Result = 0.

I've worked with it just a little bit and I'm in the black every week. I practically grabbed the Grail by the ears yesterday (and it turned out to be my Schrodinger's cat...)

Alexander! What you say deserves a blog or an article, the forum loses its thread ... think about it, maybe the main ideas can be put in a blog, at least in the abstract, and give a link to retain the chronology ... it should not take much time

 

I ask the Man with a capital letter not to be lazy and present the model of his NS sequentially:

1. the input - increments with no matter what time between them

2. Input - increments with exponential time between quotes.

3. for different sample volumes

Formalize it as an article (not for nothing).

 
Maxim Dmitrievsky:

Alexander! Your arguments are worthy of a blog or articles, the thread is lost on the forum... think about it, maybe the main thoughts should be put in a blog, at least in the abstract, and give a link to keep the chronology... it shouldn't take much time

Yes, yes, I think about the article, but I have no time.

 
Alexander_K2:

1. the input is increments with no matter what time between them

2. input - increments with exponential time between quotes.

for(int i=start;i<rates_total;i++) 
    {
     Buffer1[i]=close[i]/close[i-1];
     Buffer2[i]=close[i]/close[i-3];
     Buffer3[i]=close[i]/close[i-7];
     Buffer4[i]=close[i]/close[i-20];
     Buffer5[i]=close[i]/close[i-53];
     Buffer6[i]=close[i]/close[i-143];
     Buffer7[i]=close[i]/close[i-387];
     Buffer8[i]=close[i]/close[i-1046];
    }
is it ok to feed it in this form? Or do I need a difference?
 
Maxim Dmitrievsky:
is it okay to feed it like this?

I have an exponential number generator that sets the time to read the quote

 
Alexander_K2:

I have an exponential number generator that sets the time to read the quote

It's the same here, but data are taken from any TF, not ticks... Maybe ticks don't make sense? Because at any scale the distribution should be the same

 
Maxim Dmitrievsky:

It's exactly the same here, only the data is taken from an arbitrary TF, not by ticks... maybe ticks don't make sense? because at any scale the same distribution should be obtained

Maybe not. I just got used to them.

What's important is that the article has a methodology so that the thread of experimentation over time can be traced. And this thing will not get lost, it will be something to discuss and will remain as a memory.

Reason: