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

 
It seems a bit early to switch to python. It is better to learn the CLI version of LightGBM and save models in if-else format in C. Not universal, but cheap and surly)
 
I remembered the discussion of cyclic signs like time of day. IMHO, we should translate them into regular ones, simply by selecting the point for the starting point where the strongest change in the possible pattern occurs. You can either use market considerations (session schedule, in this case) or something like that, or train a tree model and take the point of the first split on this feature.
Один из методов псевдо-адаптации.
Один из методов псевдо-адаптации.
  • 2023.01.30
  • www.mql5.com
Любой скальпер знает, что круглосуточная торговля - глупость. Есть интервалы, где достигается высокая и стабильная прибыльность, поэтому различными способами находят эти интервалы. Например, при
 
Aleksey Nikolayev #:
I remembered the discussion of cyclic signs like time of day. IMHO, we should translate them into regular ones, simply by selecting the point for the starting point where the strongest change in the possible pattern occurs. You can either use market considerations (session schedule, in this case) or something like that, or train a tree model and take the point of the first split based on this feature.
You could take volatility instead of increments, it accurately reflects market cycles. And run it through 2 models, one of which filters out bad cases (as I did in the last article). The results are sometimes decent, you just need to retrain a few times. Potentially this approach will give more than bestinterval.

ZY onnx on mac started from the example, which is cool, I haven't checked boustings yet
Is it necessary to input a 2-dimensional matrix as in your example? It seems more logical to use a one-dimensional array with attributes. It may complain about the wrong form of the matrix. For example, instead of a one-dimensional one you should give a 2-dimensional one, where each entry is in the 2nd dimension, i.e. nested arrays containing 1 value each.

There is an example of translation to mql from python for catbust, lgbm seems to be no better
 
Maxim Dmitrievsky #:
ZY onnx on mac started from the example, which is cool, I haven't checked the boustings yet
Is it necessary to input a 2-dimensional matrix like in your example? It seems more logical to use a one-dimensional array with attributes. It may complain about the wrong form of the matrix. For example, instead of a one-dimensional one you should give a 2-dimensional one, where each entry is in the 2nd dimension, i.e. nested arrays containing 1 value each.
.

Well, when training in python, I tested the model on the first five rows of the dataset. Then when running ONNX in python, I also tested the output on the same first five lines. No matter how you look at it, it's still a matrix. In MT5 variant I just copied these same five lines as a matrix. And in Renat's example, the input is also a matrix of ten rows and four columns.

The problem there, IMHO, is already when loading the model, because negative numbers in the dimensions are output. By the way, we should see what will be output in Renate's example.

OnnxTypeInfo otype;
OnnxGetInputTypeInfo(h, 0, otype);
ArrayPrint(otype.dimensions);                   // -1 8
OnnxGetOutputTypeInfo(h, 0, otype);
ArrayPrint(otype.dimensions);                   // -1 1
 
Maxim Dmitrievsky #:
You can take volatility instead of increments, it accurately reflects market cycles. And run it through 2 models, one of which filters out bad cases (as I did in the last article). The results are sometimes decent, you just need to retrain a few times. Potentially this approach will yield more than bestinterval.

Nah, I'm just talking about the general approach to cyclic variables. They need to be "sliced" to turn them into ordinary ones. But you can do it in different ways, not necessarily in formal zero.

Besides daily time, cyclic variables occur, for example, when looking for weights for a portfolio of two symbols.

 
Aleksey Nikolayev LightGBM and save models in if-else format in C. It's not universal, but it's cheap and surly).
There is also a package intrees, there you can pull rules from many village models.
Forrests, boosts...
 
Maxim Dmitrievsky #:
Well for catbusta there is an example of translating to mql from python, lgbm seems to be no better

There are slight doubts about the future of Yandex)

Also, lgbm is supposed to integrate better with sysharp and other microsoft creations, if it suddenly becomes relevant)

 
mytarmailS #:
There is also intrees package, where you can pull rules from many village models.
Forrests, boosts...

Can you demonstrate a script with this functionality?

 
Aleksey Nikolayev #:

There are slight doubts about the future of Yandex)

What are they based on?

 
Aleksey Nikolayev #:
or train a tree model and take the point of the first split based on that feature.

1 split? Or several? Fxaber allocates 3 working splits with its programme (and 3 discarded ones). Total 5 splits.
Does any MO software give such an opportunity - to make the requested number of splits by the specified feature?

And the most interesting thing is to find out in which places to make splits. Fxaber does it according to the trading results. It turns out that it is not the first splits, but at the end it is necessary to add them.
Or the first splits allocate pieces of 1-4 hours and the underlying tree is trained, trying to reach the maximum on its time interval.
I am afraid that there is no MO package that does this - we will just have to split the data and train several models.

Reason: