L'Apprentissage Automatique dans le trading : théorie, modèles, pratique et trading algo - page 818

 
Dr. Trader:

La meilleure façon de procéder est d'utiliser une forêt, ce modèle va créer un tel ensemble de règles :


1 : DeltaLess350 <= 0.5
2 : ZZ_D <= 0
Décision 0

1 : DeltaLess350 <= 0.5
2 : ZZ_D > 0
3 : DeltaMore350 <= 0.5
Décision 0

1 : DeltaLess350 <= 0.5
2 : ZZ_D > 0
3 : DeltaMore350 > 0,5
Décision 1

DeltaLess350 > 0,5
Décision 1


L'article décrit comment faire cela en R :
https://www.mql5.com/ru/articles/1165

Sur l'onglet "Modèle", sélectionnez la forêt, définissez le nombre d'arbres dans les paramètres = 1, créez un modèle, puis cliquez sur le bouton Règles. Vous verrez cette liste de règles

Merci pour la réponse, peut-être que je lis mal, mais il semble que le modèle n'est pas correct à partir de la formule excel pour la première (et les lignes suivantes) de la ligne avec les données "= IF(AND(B2=1;D2=1);AND(C2=1;D2=1));1;0)".

C'est-à-dire qu'il est préférable d'utiliser un échafaudage pour une logique claire ? Comme pour l'extraction de caractéristiques, non ?

Merci pour l'article - je vais l'étudier à nouveau - je me souviens l'avoir lu il y a longtemps, mais maintenant que j'ai un peu plus de connaissances, il sera peut-être plus clair.

Ajouté : L'image est intéressante, mais clairement la logique n'est pas devinée... ou est-ce le cas ?
 

J'ai un peu réécrit le post, en utilisant un arbre au lieu d'une forêt, pour que ce soit plus pratique. La formule semble différente dans les deux cas, mais la réponse est toujours correcte.

Si la réponse peut être trouvée par la bonne combinaison de valeurs dans les données d'entrée, alors la forêt fonctionne bien, oui. Toutes sortes d'opérations comme l'addition et la multiplication ne fonctionnent pas dans la forêt.

 
Aleksey Vyazmikin:

il semble que le modèle ne soit pas correct à partir d'Excel ; cette formule pour la première ligne (et les lignes suivantes) avec les données "=If(OR(AND(B2=1;D2=1);AND(C2=1;D2=1));1;0)".

Je ne sais pas. J'ai vérifié dans Excel - la formule de la forêt était erronée quelques fois seulement. La formule de l'arbre coïncide dans tous les cas.

 
Dr. Trader:

J'ai un peu réécrit le post, en utilisant un arbre au lieu d'une forêt, pour que ce soit plus pratique. La formule semble différente dans les deux cas, mais la réponse est toujours correcte.

Si la réponse peut être trouvée par la bonne combinaison de valeurs dans les données d'entrée, alors la forêt fonctionne bien, oui. Toutes sortes d'opérations comme l'addition et la multiplication ne fonctionnent pas.

Eh bien, maintenant, il a obtenu son résultat, mais existe-t-il un moyen de réduire les conditions à une seule ligne, ou fonction, afin que nous puissions les appliquer dans le code dès que possible ? Ou dois-je décrire moi-même chaque tour de logique et, en même temps, ne pas faire d'erreur dans l'interprétation du résultat ? Même si l'ensemble des valeurs entrantes se mesure en dizaines, c'est un processus qui prend beaucoup de temps...

 
Dr. Trader:

Je ne sais pas. J'ai vérifié dans Excel - la formule de la forêt n'était erronée que quelques fois. La formule de l'arbre correspondait dans tous les cas.

Oui, la formule de l'arbre est passée par exclusion, à en juger par le code, qui s'est avéré être la bonne solution.

 

C'est encore plus simple, il n'y a pas besoin de s'embêter avec des formules, après la formation vous obtenez un modèle R normal avec lequel vous pouvez faire des prédictions sur de nouvelles données.

Toute la prédiction est faite avec une seule fonction

predict(model, newdata)

modèle - il s'agit d'un modèle précédemment créé (arbre, forêt, neurone, etc., en R il y a des centaines de modèles différents). newdata est une table avec de nouvelles données pour la prédiction.

 
Dr. Trader:

C'est encore plus simple, il n'y a pas besoin de s'embêter avec des formules, après la formation vous obtenez un modèle R normal avec lequel vous pouvez faire des prédictions sur de nouvelles données.

Toute la prédiction est faite avec une seule fonction

modèle - il s'agit d'un modèle précédemment créé (arbre, forêt, neurone, etc., en R il y a des centaines de modèles différents). newdata - tableau avec les nouvelles données pour la prédiction

C'est intéressant, mais ce n'est pas encore clair - je n'ai jamais travaillé avec R auparavant... Je devrais le faire, pour pouvoir aller au fond des choses.

Voici une autre question : si les données d'entrée contiennent des données erronées, qui sont purement aléatoires, la forêt/arbre sera-t-elle capable de les détecter ? Est-il possible d'organiser la désactivation automatique colonne par colonne des données d'entrée en fonction de leur énumération, y compris la recherche de données gauchères afin de les exclure ?

 

La forêt la plus courante consiste simplement à trouver un ensemble minimal de données permettant de définir un objectif. Mais il n'analysera pas le bruit et les erreurs, même s'il les utilise s'ils contribuent à améliorer la précision des prédictions. C'est pourquoi, par exemple, nous ne pouvons pas simplement prendre un tas d'indicateurs forex et essayer de prédire les tendances.

Il existe différentes modifications avancées de la forêt, elles ont des tentatives pour éliminer le bruit et les erreurs et tout ce que vous avez écrit. Les paquets gbm, xgboost dans R par exemple. Ils fonctionnent bien dans leur ensemble, mais ils sont faibles pour le forex, vous avez besoin d'autres astuces.

 
Aleksey Vyazmikin:

Pouvez-vous me dire quel algorithme de réseau neuronal peut être utilisé pour déterminer la logique (neurone) de la colonne "Calc" ? Conseil numéro un : si vous pouvez vous passer de l'apprentissage automatique, faites-le :)

1 : décider de la taille de l'échantillon, votre échantillon est très petit

2. optez pour des modèles de classification/régression simples (linéaires), il est fort probable qu'ils vous conviennent, mais si l'erreur est trop importante, vous pouvez essayer d'utiliser des modèles plus complexes (non linéaires). ils sont disponibles dans la bibliothèque alglib (les arbres de décision et les forêts sont également disponibles).

3) Ne jamais prendre de conseils, surtout du côté R :))) Il est temps de les bannir de ce forum.

4. Si le problème peut être résolu sans apprentissage automatique, il vaut mieux ne pas l'utiliser.

 
Dr. Trader:

La forêt la plus courante consiste simplement à trouver un ensemble minimal de données permettant de définir un objectif. Mais il n'analysera pas le bruit et les erreurs, même s'il les utilise s'ils contribuent à améliorer la précision des prédictions. C'est pourquoi, par exemple, nous ne pouvons pas simplement prendre un tas d'indicateurs forex et essayer de prédire les tendances.

Il existe différentes modifications avancées de la forêt, elles ont des tentatives pour éliminer le bruit et les erreurs et tout ce que vous avez écrit. Les paquets gbm, xgboost dans R par exemple. Ils fonctionnent bien dans leur ensemble, mais sont faibles pour le forex, vous avez besoin d'autres astuces ici.

Je ne veux pas donner des valeurs d'indicateurs, mon objectif est de donner une description logique des observations (il peut être des nouvelles et des ratios de différents indicateurs dans l'espace les uns par rapport aux autres - en général, j'utilise dans le commerce réel pour prendre des décisions), précédemment construit sur la base de ces indicateurs, et d'essayer d'éliminer les faux, c'est-à-dire les données d'entrée seront 0 et 1, ou un peu plus de chiffres sur une entrée (ici la question, si je veux regarder l'influence des jours de la semaine, alors je ferais mieux de faire différentes paires d'entrée

Et quelqu'un a-t-il déjà fait une comparaison de différents algorithmes pour l'efficacité, enfin, si la réponse est connue, comme dans mon exemple, mais pour des tâches plus complexes ?