Y a-t-il un modèle dans ce chaos ? Essayons de le trouver ! Apprentissage automatique sur l'exemple d'un échantillon spécifique. - page 4

 
elibrarius #:

Redessiné à partir d'Alglibow.
Maintenant, j'ai fait passer plus d'arbres dans le calcul. D'ici demain matin, je pense qu'une nouvelle version sera calculée.

Ou peut-être ai-je fait quelque chose de mal, si le résultat est bien pire que le vôtre.

Vous l'avez peut-être refait correctement, mais vous devez soit ajuster les paramètres, soit l'algorithme lui-même ne fonctionne pas - la situation n'est pas simple.

Pourquoi n'utilisez-vous pas CatBoost - l'apprentissage y est plus rapide, surtout si vous avez une carte vidéo de nVideo ?

 
elibrarius #:
Il y a 9 046 lignes. J'en ai 9000. Cela ne changera pas grand-chose.

Votre courbe est bien meilleure. Je vais essayer de modifier les paramètres un peu plus.

Elle ne s'est pas améliorée. C'est à peu près la même chose. 0.01400

Vous obtenez de meilleurs résultats avec catbustom.

 
elibrarius #:

La situation ne s'est pas améliorée. C'est à peu près la même chose. 0.01400

Vous vous en sortez mieux avec Catbustom.

Alors pourquoi ne pas l'utiliser ?

Avez-vous essayé de diviser la cible en 3 catégories ?

 
Aleksey Vyazmikin #:

Devons-nous donc l'utiliser ?

Avez-vous essayé de classer la cible en trois catégories ?

J'essaierai les 3 catégories un de ces jours..... Je ne fais qu'entraîner deux modèles, pas des modèles multiclasses.
 
elibrarius #:
Je vais essayer 3 catégories l'autre jour..... Je ne fais qu'entraîner 2 modèles, je ne fais pas de multicatégories.

Essayez donc.

Vous pouvez déposer votre échantillon, j'essaierai aussi de l'entraîner.

 

Je vais essayer la formation et les références. Comment refaire le ciblage ?
Les 4 dernières colonnes


à la cible 1 trade
direction 1, alors si la classe 1 est prédite, nous obtiendrons un profit sur 1 colonne du résultat financier, et si la classe -1 est prédite, nous obtiendrons une perte sur 2 colonnes du résultat financier.
direction -1, alors si la classe -1 est prédite, nous obtiendrons un profit sur 2 colonnes du résultat financier, et si la classe 1 est prédite, nous obtiendrons une perte sur 1 colonne du résultat financier.

à la cible 0 ne tradez pas.

si une direction +1 ou -1 est prédite, nous aurons une perte modulo le résultat financier ? D'après vos explications précédentes, cette variante apparaît. Mais le prix peut monter ou descendre et si la bonne direction est choisie, nous devrions obtenir un profit.

Ou ce sera la même chose que dans le cas 1
direction 1, alors si la classe 1 est prédite, nous obtiendrons un profit sur 1 colonne du résultat financier, et si la classe -1 est prédite, nous obtiendrons une perte sur 2 colonnes du résultat financier.
direction -1, alors si la classe -1 est prédite, nous obtiendrons un profit sur 2 colonnes du résultat financier, et si la classe 1 est prédite, nous obtiendrons une perte sur 1 colonne du résultat financier.

Quelle est la variante correcte ?
Ou pouvez-vous montrer comment la cible est formée directement dans le code via if(){}else{} ?

 
elibrarius #:

Je vais essayer la formation et les références. Comment refaire le ciblage ?
Les 4 dernières colonnes


si la cible 1 trade
direction 1, alors si la classe 1 est prédite, nous obtiendrons un profit sur 1 colonne du résultat financier, et si la classe -1 est prédite, nous obtiendrons une perte sur 2 colonnes du résultat financier.
direction -1, alors si la classe -1 est prédite, alors nous obtiendrons un profit sur 2 colonnes du résultat financier, et si la classe 1 est prédite, nous obtiendrons une perte sur 1 colonne du résultat financier.

si la cible 0 ne tradez pas.

si une direction +1 ou -1 est prédite, nous aurons une perte modulo le résultat financier ? D'après vos explications précédentes, cette variante apparaît. Mais le prix peut monter ou descendre et si la bonne direction est choisie, nous devrions obtenir des bénéfices.


Ou ce sera la même chose que dans le cas 1
direction 1, alors si la classe 1 est prédite, nous obtiendrons un profit sur 1 colonne du résultat financier, et si la classe -1 est prédite, nous obtiendrons une perte sur 2 colonnes du résultat financier.
direction -1, alors si la classe -1 est prédite, nous obtiendrons un profit sur 2 colonnes du résultat financier, et si la classe 1 est prédite, nous obtiendrons une perte sur 1 colonne du résultat financier.

Quelle est la variante correcte ?
Ou pouvez-vous montrer comment la cible est formée directement dans le code via if(){}else{} ?

Les zéros resteront des zéros, mais le "1" peut être converti en "-1" et "1" - selon la direction. Par conséquent, si nous classons "1" ou "-1" à la cible "0", nous obtenons une perte modulo, sinon nous obtenons un gain modulo à partir de l'une ou l'autre des deux dernières colonnes.

Mon résultat financier est calculé à partir des positions/transactions fermées - et s'il y a eu une perte, alors un zéro est mis, donc l'approche ne permet pas d'estimer ce qui se serait passé s'il y avait eu une entrée opposée - le plus souvent une perte, selon la stratégie, parce qu'un stop loss serait mis juste après l'extremum de la dernière barre.

Ce que j'ai fait, c'est diviser l'échantillon en deux en fonction de la direction de l'entrée - cela a permis d'augmenter le nombre de modèles qui ont dépassé le seuil de 3000 pips.

Je dois ajouter que si l'objectif est "1", mais que le signal a été classé comme "-1", il n'y aura apparemment pas de perte, car en réalité un tel signal ne passerait pas.
 
Aleksey Vyazmikin #:

Les zéros resteront des zéros, et "1" peut être reclassé en "-1" et "1" - selon la direction. Par conséquent, si à la cible "0" nous classons "1" ou "-1", nous obtenons une perte modulo, sinon nous obtenons un gain modulo à partir de l'une ou l'autre des deux dernières colonnes.

Mon résultat financier est calculé à partir des positions/transactions fermées - et s'il y a eu une perte, alors un zéro est mis, donc l'approche ne permet pas d'estimer ce qui se serait passé s'il y avait eu une entrée opposée - le plus souvent une perte, selon la stratégie, parce qu'un stop loss serait mis juste après l'extremum de la dernière barre.

Ce que j'ai fait, c'est diviser l'échantillon en deux en fonction de la direction de l'entrée - cela a permis d'augmenter le nombre de modèles qui ont dépassé le seuil de 3000 pips.

Je dois ajouter que si l'objectif est "1", mais a été classé comme "-1", il n'y aura apparemment pas de perte, car en réalité un tel signal ne passerait pas.
Tout cela est très confus. Je pense que je vais m'arrêter sur les tests effectués.
 
elibrarius #:
Tout cela est un peu confus. Je pense que je vais m'arrêter aux tests que j'ai effectués.

Non, ce n'est pas déroutant, c'est une conversion logique. Si vous êtes confus, je peux faire une cible séparée avec le repartitionnement et la poster ici.

 
Aleksey Vyazmikin #:

Non, ce n'est pas une confusion, c'est une conversion logique. Si vous êtes confus, je peux faire une cible séparée avec le repartitionnement et la poster ici.

Vous devez obtenir un résultat financier précis à partir des erreurs. Sans elles, la ligne d'équilibre n'est pas fiable.
Résultat financier si nous choisissons 0 (vous ne pouvez pas l'inclure, ce sera toujours 0), si 1, si -1. Toujours, même si vous marquez la classe 0, ne négociez pas. Le modèle sera erroné et il est nécessaire de connaître le prix de l'erreur.
Raison: