L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 2833

 
Evgeni Gavrilovi mise en place d'un système de gestion de l'information, mais j'ai besoin d'une aide pour la mise en place de ce système.

Le résultat de l'entraînement d'un modèle avec ma version est presque le même qu'avec RMSE, il y a donc une erreur quelque part dans le code.

Les preds et target sont return (a[i]-a[i+1])

Je ne connais pas grand chose à python ou katbusta, mais je vais poser des questions stupides)

1) Qu'est-ce que les données, pourquoi la moyenne ne provient-elle pas de preds ?

2) Il semble que pour le gradient bousting il faille spécifier plus de formules pour le gradient et la hessienne ?

 
Aleksey Nikolayev #:

Je ne connais pas grand chose à python ni à catbusta, mais je poserai des questions stupides)

1) Qu'est-ce qu'une donnée, pourquoi la moyenne n'est-elle pas celle de Preds ?

2) Il semble que pour le gradient bousting il faille spécifier les formules pour le gradient et la hessienne ?

Apparemment oui, j'ai raté quelque chose. J'ai utilisé le modèle du site officiel https://catboost.ai/en/docs/concepts/python-usages-examples.

data - liste générée des prédictions du modèle, j'ai converti les valeurs négatives en valeurs positives pour calculer leur moyenne arithmétique pour la moyenne de Sharpe.

 
Evgeni Gavrilovi #:

données - liste générée des prédictions du modèle, les valeurs négatives ont été converties en valeurs positives afin de calculer leur moyenne arithmétique pour la moyenne de Sharpe

Pourquoi ? Pour Sharpe, la moyenne avec les signes originaux est calculée.

 
Aleksey Nikolayev #:

Pourquoi ? Pour Sharpe, c'est la moyenne avec les signes originaux qui est prise en compte.

Pour prendre en compte également les ordres de vente, disons qu'il y a 2 prévisions précises -0,002 (20 pips) et +0,003 (moins - court, plus - long).

Le profit est de +0,005, la moyenne est de 0,0025, et sans changer le signe, elle sera de 0,0005.


Il s'avère qu'une métrique personnalisée nécessite sa propre fonction de perte, par analogie classeRmseObjective(objet )
 
Evgeni Gavrilovi #:

Apparemment oui, j'ai raté quelque chose. J'ai utilisé le modèle du site officiel https://catboost.ai/en/docs/concepts/python-usages-examples.

Il existe deux types de métriques : loss_function et eval_metric. Vous avez probablement besoin de la première, regardez ici https://catboost.ai/en/docs/concepts/python-usages-examples#user-defined-loss-function

Mais je peux me tromper. Il y a ici de meilleurs experts et louangeurs de Python que moi) Peut-être qu'ils vous aideront davantage.

 
Evgeni Gavrilovi #:

Pour prendre en compte également les ordres de vente, disons qu'il y a 2 prévisions précises -0,002 (20 pips) et +0,003 (moins - short, plus - long).

Profit +0,005, la moyenne est de 0,0025, et sans changer le signe, elle sera de 0,0005.

Ce ne serait pas un Sharpe. De plus, il est peut-être nécessaire de ne pas simplement prendre le module, mais de le multiplier par le signe de la prévision (par moins un si l'on vend et par un si l'on achète).

 
Evgeni Gavrilovi mise en place d'un système de gestion de l'information, mais j'ai besoin d'une aide pour la mise en place de ce système.

Le résultat de l'entraînement d'un modèle avec ma version est presque le même qu'avec RMSE, il y a donc une erreur quelque part dans le code.

Les preds et target sont return (a[i]-a[i+1])

Imprimez les valeurs que vous obtenez et comparez-les avec l'autre métrique. Imprimer les deux en même temps, pour chaque itération. Dans catbust early stop n'oubliez pas d'inclure le maximum du critère personnalisé et "use best model=True" Vous pouvez simplement activer Verbose, il imprimera les valeurs des métriques à chaque itération par lui-même.
 
Maxim Dmitrievsky #:
Imprimez les valeurs obtenues et comparez-les avec l'autre mesure. Imprimez les deux en même temps, pour chaque itération. Dans catbusta early stop, n'oubliez pas d'activer max user criteria et "use best model=True" Vous pouvez simplement activer Verbose, cela imprimera les valeurs métriques à chaque itération.

Il serait intéressant à des fins de recherche (bien que ce soit assez compliqué) d'utiliser une fonction de perte personnalisée. Il y a une possibilité pour cela (si vous êtes renvoyé au début de la page, vous devez trouver la section Fonction de perte définie par l'utilisateur tout en bas).

Usage examples
Usage examples
  • catboost.ai
Regression CatBoostRegressor class with array-like data.
 
Aleksey Nikolayev #:

Il serait intéressant, à des fins de recherche (bien que ce soit assez compliqué), de créer une fonction de perte personnalisée. Il y a une possibilité pour cela (si vous êtes renvoyé au début de la page, vous devriez trouver la section Fonction de perte définie par l'utilisateur tout en bas).

Essayons plus tard
 
Aleksey Nikolayev #:

Il serait intéressant, à des fins de recherche (bien que ce soit assez compliqué), de créer une fonction de perte personnalisée. Il y a une possibilité pour cela (si vous êtes renvoyé au début de la page, vous devez trouver la section Fonction de perte définie par l'utilisateur tout en bas).

Cela n'a pas fonctionné pour moi avec xgboost....
Ou plutôt ça a marché, mais l'apprentissage n'a pas fonctionné, il faut se faire de bons amis avec les gradients, il faut rendre la fonction de fitness gradiente, avec la génétique c'est beaucoup plus simple.