Discussing the article: "Creating a mean-reversion strategy based on machine learning" - page 7

 
Maxim Dmitrievsky #:

Those who have read the article will find a nice bonus at the end - a chart from the terminal, which shows the drawdown.

No, they are not. The test in the terminal is made with SL and TP, although it is claimed that the training was done without them. Why not show the result after training and under identical conditions (without SL and TP)? - because it is claimed that "(1)Stop settings do not affect the generalisation ability of the models".

You don't have to answer - you are not good at answering in substance.

[Deleted]  
Evgeni Gavrilovi #:

Do you have any thoughts on how to improve the TC? Share)

In current form no way, just going through traits/patterns/setups.

It is possible to get very good models.
[Deleted]  
Andrey Dik #:

You don't have to answer that

thank God

 
Maxim Dmitrievsky #:

In the current form there is no way, only going through traits/partitioners.

This library has all the basic indicators, which are calculated in one function. You may find it useful in the future.

https://github.com/bukosabino/ta

df = add_all_ta_features(df, open="Open", high="High", low="Low", close="Close", volume="Volume_BTC")

[Deleted]  
Evgeni Gavrilovi #:

This library contains all basic indicators that are calculated in one function. It may be useful for you in the future.

https://github.com/bukosabino/ta

df = add_all_ta_features(df, open="Open", high="High", low="Low", close="Close", volume="Volume_BTC")

Thanks, saved it. There are other unexpected modifications of the algorithm, I'll post them later (it's a lot to write). The modifications are such that we can say that it will be a different algorithm.

[Deleted]  

If you can't run enemy Python code (Dick's example, it's a normal state of consciousness for him), or you don't do it for religious reasons (you write exclusively in SI, as your fathers bequeathed):

  • The model is trained and selected by any sl/tp, let's say 500/500:

hyper_params = {
    'symbol': 'EURGBP_H1',
    'model_number': 0,
    'markup': 0.00010,
    'stop_loss':  0.00500,
    'take_profit': 0.00500,
    'periods': [i for i in range(5, 300, 30)],
    'periods_meta': [100],
    'backward': datetime(2000, 1, 1),
    'forward': datetime(2021, 1, 1),
    'full forward': datetime(2026, 1, 1),
    'n_clusters': 10,
    'rolling': 200,
}

  • Change there in hyperparameters to, for example, 5000/5000 (never works):

  • Boldly optimise or manually select the ones you like, e.g. 2000/200, as in the article

  • The shapes of the curves coincide with the accuracy up to corrections for stops. Stops can be optimised in the terminal without fear of overoptimisation.

[Deleted]  
Obviously, the strategy does not change, only the stops change. Selecting models through predefined stops allows you to quickly find a model for your trading style, which best suits your trading criteria, known only to you.

It was enough to take the already compiled bot from the article and check it, by the way. I expected more serious questions from "old-timers" of the forum, I guess I overestimated expectations.
 
Maxim Dmitrievsky #:
I was expecting more serious questions

Have you tested multi-classified in the past? Is there any advantage?

https://catboost.ai/docs/en/concepts/loss-functions-multilabel-classification

[Deleted]  
Evgeni Gavrilovi #:

Have you tested multi-classified in the past? Is there any advantage?

https://catboost.ai/docs/en/concepts/loss-functions-multilabel-classification

If only for very specific trading tasks, otherwise there are no advantages. Plus, as far as I remember, there are some problems when exporting to ONNX. If I'm not confused.

ZЫ I don't think there are any problems with export now.
 

Imho of course, but using Savitsky_Golay is not much different from using muve. The SG filter is the midpoint of a polynomial regression in a given sliding window, with a specified degree of polynomial. For degree 1, it is a perfect match with the muv of the corresponding period.

To identify the return to the mean, it makes more sense, in my opinion, to use amplitude filtering - renko, renji, zigzags. I think that ranges are the best - the difference between Hg and Lw is a constant. Well, or a constant size ZZ, which is basically the same thing.