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

 

Je me souviens qu'avant de tels "patterns" de convolution ne me semblaient rien d'autre qu'un graal, hrenFx a même exposé un tel indicateur il y a 10 ans, j'ai aussi fait ma propre version, mais... il ne fonctionne pas très bien, du moins pas pour les variantes simples avec vote de convolution de différents TFs.

 
-Aleks:

Je comprends qu'il ne peut pas le faire tout seul - il y a des signaux pour entrer dans l'historique et il y a un certain nombre d'indicateurs qui doivent être classés, mais le résultat du travail de NS ne sera pas la confirmation du signal, mais la génération du signal lui-même. Désolé, c'est peut-être stupide, mais avec mes maigres connaissances sur le sujet, je ne vois pas pourquoi ce n'est pas possible - après avoir lu votre article.

A propos de ZZ, je ne comprends pas - un ZZ normal montre l'extrémum actuel...

Et encore une fois, un RZ sert à générer un signal, pas à le confirmer - c'est-à-dire qu'il y a toujours un signal - vendre lorsque le marché est en hausse, mais le NS doit le confirmer, sur la base du schéma des variations passées.

Je comprends bien que l'avantage de NS est que le signal peut être confirmé ou rejeté par un certain nombre de modèles, qui sont collectés sur l'historique, ne doivent pas se contredire et sont vérifiés lorsqu'un signal de trading apparaît ?



C'est une longue explication, en général ZZ ne convient pas. Je vous le dis avec certitude. Et encore une chose :

Nous devons décider de ce que nous voulons faire. Prédire ou classer. Les approches sont totalement différentes, mais elles ont le même objectif .....

Regardez à nouveau l'article. La stratégie de base est seulement nécessaire pour déterminer le moment où nous analysons le marché. C'est-à-dire que l'événement s'est produit, nous commençons l'analyse. L'événement peut être n'importe quoi.

Supposons que les wagons se croisent, que l'événement se produise et que nous commencions l'analyse.

D'une certaine manière, vous avez raison. L'ordinateur National lui-même produit des signaux, mais en tenant compte du fait qu'il travaille au moment de la formation du signal de la stratégie de base. Il s'avère que le NS est une confirmation ou une réfutation du signal de la stratégie sous-jacente. C'est donc comme ça : ....

 
elibrarius:
Je charge d'abord l'historique de 375000 mesures (pour M1, c'est une année) dans un tableau, c'est-à-dire dans la RAM (environ 30-60 secondes), puis il faut 30 à 700 ms pour le parcourir en fonction de la profondeur du motif.

Une fois de plus, je dis comment il faut aborder cette tâche. Je pense qu'il y a des poissons là....

 
Mihail Marchukajtes:

Mais nous allons entraîner le réseau pour un seul modèle. Les modèles qui augmentent le marché nous marquerons 1, ceux qui diminuent nous marquerons 0. Tout ce qu'il nous reste à faire maintenant est de former NS.

D'après mon expérience, il est préférable de ne pas le faire. Si vous connaissez les incréments de prix pour la prochaine barre, il est préférable de les utiliser comme cible pour les neurones. Après tout, les incréments sont aussi des informations qui peuvent être utiles à la formation, par rapport à seulement deux classes 0 et 1. Même si les prédictions de régression donnent toujours deux classes (achat/vente), il est préférable d'arrondir le résultat de la régression plutôt que de rejeter certaines informations au stade de la formation.

Par exemple, un modèle de régression plus ou moins fonctionnel pour le forex tombe en panne si je remplace le modèle par un modèle de classification (en R, la transition entre classification et régression est en fait très simple, la classification est généralement activée automatiquement si toutes les cibles sont arrondies à 0 et 1, ou si la cible a un facteur de type ).

 
elibrarius:

J'ai créé un indicateur qui recherche des modèles similaires dans l'histoire, voici la lecture actuelle sur M1 EURUSD. Les 10 plus similaires de l'année. J'ai légèrement retravaillé l'exemple de l'article https://www.mql5.com/ru/articles/197 - au lieu d'une variante la plus similaire, je prends N variantes les plus similaires et je fais la moyenne des réponses. Pour rechercher le modèle, j'utilise non seulement un prix de clôture, mais aussi le canal où le prix a été pendant cette période, c'est-à-dire le bas et le haut. J'élève Low par la valeur de l'écart.

Comme on peut le voir, ce modèle dans l'histoire a donné lieu à des mouvements tant à la baisse qu'à la hausse (lignes grises et rouge foncé). Le mouvement moyen du prix (lignes blanches et rouges) est presque nul (légèrement plus large que le spread), nous ne pouvons pas trader avec une telle prédiction, le spread, le swap et la commission nous feront perdre. Il existe parfois des modèles avec une bonne prédiction d'un côté, mais sur la barre suivante, la prédiction peut être inversée. Si, dans ce cas, on inverse la position, le spread et la commission rendront à nouveau la première transaction non rentable.
La prédiction de l'indicateur peut être comparée à la régression NS, mais à partir de la régression, il est facile de faire un classificateur. En plus de Low et High, n'importe quel indicateur peut être ajouté.

Si j'ai bien compris, les réseaux neuronaux font essentiellement la même chose que cet indicateur de moyenne, c'est-à-dire qu'ils recherchent des lectures prédictives similaires (dans mon cas, juste le prix) dans l'historique (par exemple, un an) et font des prévisions moyennes.

Est-il utile d'utiliser le système NS s'il existe un moyen plus simple - il suffit de consulter l'historique ? Quel est leur avantage ?

PS

Eh bien, le fait que le prix soit allé dans les deux directions avec le même motif peut être considéré soit comme un processus aléatoire, soit comme une marionnette qui tente de briser les stratégies à la fois des découvreurs de motifs directement sur les graphiques et des utilisateurs de NS afin de faire des prévisions plus mauvaises, ou plutôt de réduire la prévision à environ zéro, comme dans la figure.

Cherche-t-on des modèles par corrélation ? Si oui, vide.

semaine actuelle de négociation de mon NS (tests), environ un autre mois de tests et il sera possible de transférer à l'argent normal. Total : Une simple NS robuste a été écrite en un mois.


 
Maxim Dmitrievsky:

Les modèles par corrélation sont-ils recherchés ? si oui, vides

Par corrélation, c'est-à-dire par la différence entre les prix de chaque barre du motif recherché. Appelons cela l'erreur sur la barre, puis additionnons les erreurs pour toutes les barres et trions-les sur l'erreur résultante et trouvons les N meilleures - variantes les plus similaires.
Je ne vois pas d'autres options pour comparer deux graphiques de prix. Quelles sont les autres options ?
 
Vasily Perepelkin:

C'est la principale chose que j'enseigne à mes étudiants, un homme a des principes, ne pas plier, s'il le décide - alors à la mort. J'ai eu un élève (Maxim) qui n'avait pas la force, il manquait de caractère, il était trop efféminé, il tremblait, mais tu vas réussir - tu es un homme !



 
elibrarius:
Par corrélation, c'est-à-dire par la différence entre le prix de chaque barre du motif recherché. Appelons cela erreur sur la barre, puis résumons les erreurs pour toutes les barres, trions par l'erreur résultante et trouvons les N meilleures, - les variantes les plus similaires.
Je ne vois pas d'autres options pour comparer deux graphiques de prix. Quelles sont les autres options ?

Au minimum, nous devons effectuer des transformations affines des graphiques, car les motifs ont des angles de pente différents (structures auto-affines), et deuxièmement, la recherche se fait sur des horizons temporels différents. Mais tout cela n'est d'aucune utilité lorsque la corrélation est utilisée - elle trouve des modèles très dissemblables. Les NS convergents (vision par ordinateur) seraient mieux adaptés.

Je voulais faire des expériences, mais je n'en ai pas encore eu l'occasion.

 
Mihail Marchukajtes:

En ce qui concerne la prédiction, c'est un sujet assez intéressant. Nous avons donc un paternoster, trouvé au fond de l'histoire. Exactement la même chose que maintenant. Cependant, la réaction du marché à cette configuration n'est pas claire. Il y a le haut et le bas.

Comme on peut le voir sur les graphiques, le même modèle a été trouvé plusieurs fois, nous avons donc plusieurs résultats possibles. C'est là que la classification doit être activée. Mais nous allons entraîner le réseau pour un seul modèle. Les modèles qui ont causé la croissance du marché seront marqués 1, nous marquerons 0 pour ceux qui ont causé la baisse du marché. Lorsque ce modèle apparaît, nous introduirons les valeurs d'entrée à ce moment-là et NS dira s'il s'agit d'un modèle de croissance ou de déclin du marché.

Il ne sera pas possible de séparer les N motifs obtenus de l'historique, car ils présentent une similitude maximale avec le motif souhaité et des différences minimales entre eux.
Si vous voulez minimiser les différences, vous ne devez pas chercher 10, mais 2-3 modèles les plus similaires, mais la prédiction pour 3 modèles aura une erreur de prédiction = 33%, pour 10 modèles 10%, pour 100 modèles 1% environ (je pense que dans le calcul de l'erreur, il faut inclure le degré d'erreur de chaque modèle trouvé par rapport à l'original).

La question de trouver le nombre optimal de modèles sur lesquels faire une prédiction peut être laissée à l'optimiseur.

 
elibrarius:

Il n'y a aucun moyen de séparer les modèles N de l'histoire, car ils sont aussi similaires que possible au modèle souhaité et présentent des différences minimes entre eux.
Si vous voulez minimiser les différences, vous devez rechercher les 2 ou 3 modèles les plus similaires, mais la prédiction pour 3 modèles aura une erreur de prédiction = 33%, pour 10 modèles 10%, pour 100 modèles 1% environ (je pense que dans le calcul de l'erreur, il faut inclure l'erreur dans chaque modèle trouvé à partir de l'original).

La question de trouver le nombre optimal de modèles, à partir desquels construire la prédiction, peut être laissée à l'optimiseur.

Il s'agit d'une approche futile si elle est appliquée sous sa forme actuelle. Il faut se tourner vers l'invariance d'échelle (mise à l'échelle) et les transformations affines. Le fait que les modèles soient similaires ne signifie rien, nous devrions considérer le positionnement mutuel de plusieurs modèles, une sorte de validation croisée, plus regarder leur position dans le modèle en ordre de grandeur. J'ai tout fait, mais je n'ai pas beaucoup aimé - parce que la corrélation est impliquée, vous devez vous en débarrasser et passer la recherche de la convolution NS.
Raison: