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

 
Maxim Dmitrievsky #:

Quelle est la bonne façon d'utiliser les résultats du CV par la suite ?

J'optimise les hyperparamètres du modèle (profondeur de l'arbre d'apprentissage ou nombre d'exemples dans la feuille, nombre d'arbres, etc.) et du jeu de données (nombre de lignes, combinaisons de caractéristiques possibles).

J'exécute toutes ces variantes, puis je sélectionne la meilleure variante des paramètres du modèle et de l'ensemble de données en fonction du meilleur résultat total de la valorisation à terme. Je pense que la validation croisée est pire, alors que le rolling forward est une copie de ce qui se passera dans la réalité : échanger pendant une semaine, se recycler pendant une autre semaine, se recycler à nouveau, etc.

prendre les paramètres du modèle les mieux trouvés et les entraîner sur l'ensemble des données.

Il n'est pas logique de s'entraîner sur l'ensemble des données.
Quelle est la meilleure profondeur de l'histoire, nous devrions continuer à nous entraîner sur la même profondeur. Mon modèle entraîné N fois sur 50 000 lignes de M5 (presque un an) peut afficher 52% pour la somme de toutes les avances, si nous utilisons les mêmes paramètres, mais avec une différence uniquement dans la profondeur de l'historique, c'est-à-dire 70 000 ou 30 000 lignes, il sera inférieur à 50% pour la somme de toutes les avances.

La raison en est que les feuilles ne contiendront pas les mêmes exemples. Les arbres peuvent avoir plus ou moins de feuilles, etc. Je pense que pour des ensembles de données de taille différente, vous devriez changer la profondeur ou le nombre d'exemples dans la feuille.

 
elibrarius #:

J'optimise les hyperparamètres du modèle (profondeur d'apprentissage de l'arbre ou nombre d'exemples dans la feuille, nombre d'arbres, etc.) et du jeu de données (nombre de lignes, combinaisons de caractéristiques possibles).

J'exécute toutes ces variantes, puis je sélectionne la meilleure variante des paramètres du modèle et de l'ensemble de données en fonction du meilleur résultat total de la valorisation à terme. La validation croisée est pire à mon avis, la validation en avant est une copie de ce qu'elle sera dans la réalité : négociée pendant une semaine - recyclée, une autre semaine, une autre recyclée, etc.

Sur l'ensemble des données - illogique.
Quelle est la meilleure profondeur d'histoire que vous avez, vous continuerez à vous entraîner à la même profondeur. Mon modèle entraîné N fois sur 50 000 lignes de M5 (presque un an) peut montrer 52% de la somme de toutes les avances. Si nous utilisons les mêmes paramètres, mais avec une différence uniquement dans la profondeur de l'historique, c'est-à-dire 70 000 ou 30 000 lignes, ce sera moins de 50% de la somme de toutes les avances.

La raison en est que les feuilles ne contiendront pas les mêmes exemples. Les arbres peuvent avoir plus ou moins de feuilles, etc. Je pense que pour des ensembles de données de taille différente, vous devez modifier la profondeur ou le nombre d'exemples dans la feuille.

Eh bien, à mon avis, le cv est nécessaire pour évaluer la qualité de l'ensemble de données, et non la robustesse d'un modèle particulier. Si l'erreur moyenne sur les k-folds est acceptable, alors nous pouvons entraîner un modèle sur cet ensemble de données et il sera bon aussi. Nous pouvons emprunter des paramètres moyennés à partir de modèles utilisés pour le cv.
 
Maxim Dmitrievsky #:
Eh bien, à mon avis, cv est nécessaire pour évaluer la qualité des ensembles de données, et non la robustesse d'un modèle particulier. Si l'erreur moyenne sur les k-folds est acceptable, alors nous pouvons entraîner le modèle sur cet ensemble de données et il sera bon aussi. Vous pouvez emprunter des paramètres dont la moyenne a été calculée à partir de modèles utilisés pour le cv.
A partir de l'ensemble de données, nous allons prendre différents morceaux tout le temps. J'optimiserai à la fois le jeu de données (nombre de lignes et d'éléments) et les paramètres du modèle.
 
Aleksey Nikolayev #:

Il est probablement possible de vérifier chaque observation du test pour voir s'il s'agit d'une aberration dans un certain sens par rapport à l'examen.

C'est ce qu'il serait intéressant de savoir !

Ce que je veux dire, c'est que le marché est volatile et cyclique, et qu'en théorie, tout modèle, en supposant que les événements se répètent (sinon, il n'y a aucun intérêt à s'entraîner), aura une grande précision à différentes périodes de son existence, et il est probable que dans les sections de test, il y aura simplement un autre marché, une autre vague. La formation se fait sur les schémas les plus prononcés, mais sommes-nous en droit de supposer qu'ils seront aussi stables ! Je pense que la qualité d'un modèle dépend des prédicteurs qui décrivent des modèles stables et que nous devrions donc nous entraîner sur les exemples qui sont typiques des résultats dans différentes parties de l'échantillon.

 
mytarmailS #:
Vous pouvez le faire via des modèles en bois...
Décomposer le modèle en règles, analyser les règles pour les statistiques souhaitées (répétabilité, etc...), voir si la règle apparaît sur les nouvelles données...

Le paquet "intrees" 5 lignes de code et vont

Je fais cela depuis longtemps avec des feuilles, mais ce n'est pas tout à fait correct - cela ne permet pas de détecter les exemples atypiques dans un échantillon.

 
Vladimir Perervenko #:

PaquetNoiseFiltersR. Jetez un coup d'œil à l'article.

J'ai regardé l'article, pour autant que je comprenne ce paquet ne donne pas de résultats significatifs - augmentation d'environ 3%, mais c'est intéressant - pouvez-vous expliquer le principe de son travail ?

 
elibrarius #:
Nous allons prendre différents morceaux de l'ensemble de données tout le temps. J'optimise à la fois le jeu de données (nombre de lignes et d'éléments) et les paramètres du modèle.

J'oubliais, avez-vous une cible de couleur/type de la bougie de l'heure actuelle ?

 
Aleksey Nikolayev #:

Si les prédicteurs de bruit sont plus ou moins clairs, les exemples de bruit ne sont pas si bons. J'aimerais en savoir plus sur la façon dont ils sont définis (en termes de théorie, pas de noms de paquets/fonctions utilisés, même si bien sûr il y a toujours des références à des articles dans R). Il est clair qu'il devrait y avoir une classe "ne pas trader" lors de la classification, puisque s'efforcer d'être sur le marché en permanence est considéré comme une erreur. Mais il n'est pas très clair comment décrire correctement cette classe sous une forme plus ou moins formelle.

Il existe trois options pour traiter les exemples bruyants : supprimer, repartitionner (corriger le marquage) et créer une classe distincte pour les exemples bruyants. D'après mon expérience, environ 25% de l'échantillon est du "bruit". L'amélioration de la qualité est d'environ 5%, elle dépend des modèles et de la préparation des données. Je l'applique de temps en temps.

L'utilisation de prédicteurs pose un autre problème : leur dérive. Et ce problème doit être identifié et pris en compte à la fois dans les tests et dans l'exploitation. La traduction ci-jointe de l'article (cherchez-en d'autres sur le net) et il y a un paquet de dériveurs. Ce n'est pas le seul. Mais le fait est que, lors de la sélection des prédicteurs, vous devez tenir compte non seulement de leur importance mais aussi de leur dérive. Pour les personnes à forte dérive, les jeter ou les transformer, pour les personnes à faible dérive, les prendre en compte (corriger) lors des tests et du travail.

Bonne chance

Dossiers :
Drift1.zip  2238 kb
 
Aleksey Vyazmikin #:

J'ai oublié, visez-vous la couleur/le type de la bougie horaire actuelle ?

La couleur du chandelier, même avec une erreur de 30%, peut être perdante. Nous ne savons pas combien de profit nous pouvons en tirer... la couleur est généralement bien devinée dans les mouvements lents du prix (overnight), et 1 chandelier quotidien fort manqué peut valoir 10 petits chandeliers overnight. Je pense que deviner la couleur des chandeliers est encore une fois une sortie aléatoire (due aux dimensions aléatoires).
C'est pourquoi j'ai fait la classification avec TP, SL. S'ils sont égaux, alors 52 % des transactions réussies sont déjà rentables. Si TP=2*SL. Alors >33% des transactions réussies seront rentables. Le meilleur résultat que j'ai obtenu est 52-53% de trades réussis avec TP=SL sur 2 ans. Mais en général, je pense utiliser la régression avec un TP/SL fixe. Plus précisément, je pense faire une classification basée sur la régression.
 

Je ne suis pas allé sur le forum depuis quelques années et il est toujours là, comme dans la chanson : "Ce que tu étais, ce que tu es resté, aigle des steppes, cosaque fringant...".

La statistique commence par un axiome qui, étant un axiome, n'est pas discuté :


"Les ordures entrent, les ordures sortent".


En principe, il n'y a pas et ne peut pas y avoir de méthodes mathématiques permettant de faire un bonbon à partir d'un déchet. Soit il y a un ensemble de prédicteurs qui PREVENT l'enseignant, soit il n'y en a pas.

Et les modèles ne jouent pratiquement aucun rôle, pas plus que les validations croisées et autres perversions à forte intensité de calcul.


PS.

À propos, l'"importance" des prédicteurs dans le modèle n'a rien à voir avec la capacité de prédire l'enseignant.

Raison: