Discussion of article "Gradient Boosting (CatBoost) in the development of trading systems. A naive approach" - page 5

 
Maxim Dmitrievsky:
I know.
It was me to Alexei. He thought it was a memory
 
elibrarius:
That's me to Alexei. He thought it was memory

the dependence of examples on each other, also a kind of memory. If you mix test and train, it's smaller, but it's a bad solution, I agree, it's done for simplicity.

you get a lot of examples about the same thing, but different groups of examples get unbalanced. Hence overfitting on the current conjuncture and poor generalisation

 

Somehow we need to check for information leakage. Labels are created 10-15 bars ahead, history is fed to a depth of 250 bars, during iterations it may be peeking somehow.

 
Rorschach:

Somehow we need to check for information leakage. Labels are created 10-15 bars ahead, history is fed to a depth of 250 bars, during iterations it may be peeking somehow.

MT5 tester does not know how to peek.

 

By the way, on a recent topic about the influence of indicators.
Try to remove the MA and train just on increments. Perhaps it is enough to simply make MA period = 1.
The result should not change if the idea that indicators that are built by bars can be reproduced by NS/forest/bust.

 
elibrarius:

By the way, on a recent topic about the influence of indicators.
Try to remove the MA and train just on increments. Perhaps it is enough to simply make MA period = 1.
The result should not change if the idea that indicators that are built by bars can be reproduced by NS/forest/bust.

in this version it is perfectly trainable on any period, no difference. It is enough to run the python code

When the MA period decreases, it is reasonable to increase the window size. When increasing the position holding time, it is reasonable to increase the window size as well

MA and increments are not necessary at all and only as an example, you can take any signs.
 

Hi Maxim,

Thanks for sharing with us this nice article! I made some changes to your python code, and managed to get some promising results. Basically, I do not mix the training and test periods in this experiment.

Backtest, train plus test periods

I hope that this is not just by chance! :) I will try to see if I can reproduce these results in the strategy tester of MT5.

Best regards, Rasoul


Edit:

This is the strategy tester results, which are similar to above! :)

Strategy Tester results



 
Rasoul Mojtahedzadeh:

Hi Maxim,

Thanks for sharing with us this nice article! I made some changes to your python code, and managed to get some promising results. Basically, I do not mix the training and test periods in this experiment.

I hope that this is not just by chance! :) I will try to see if I can reproduce these results in the strategy tester of MT5.

Best regards,
Rasoul



Hi Rasuol, I'm glad you liked the article. I want to write another one on the same topic. It will be interesting if you share your experience

 

I would like to see some justification in the article for the choice of constants: MA_PERIOD = 15, LOOK_BACK = 250 and add_labels(pr, 10, 25). At least in the form of a phrase: "based on the author's many years of experience..."

Also, I don't understand how you managed to get identical reports in python and tester, if the python script doesn't use stop-loss, but for tester it is set.

 
Stanislav Korotky:

I would like to see some justification in the article for the choice of constants: MA_PERIOD = 15, LOOK_BACK = 250 and add_labels(pr, 10, 25). At least in the form of a phrase: "based on the author's long experience...".

Also, I don't understand how you managed to get identical reports in python and tester, if the python script doesn't use stop-loss, but for tester it is set.

The selection is random, like "not too big and not too small". I.e. not based on anything, since I don't know where to look.

stop can be set long