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

 

Et donc, mon concept de la façon dont "l'apprentissage automatique" pourrait être mis en œuvre en relation avec le trading MQL :


D'abord sur les concepts de base :

1. La signature est une description numérique du caractère des changements de valeur des paramètres. La signature est réalisée par un algorithme spécial. Il a un format. Il est stocké dans un bloc spécial (tableau). C'est le résultat final de tous les algorithmes, calculs et opérations.

2. période actuelle - une période de temps déterminée. Il est implémenté dans un tampon en anneau à travers lequel passent les valeurs des paramètres. Chaque nouvelle valeur déplace toute la file des valeurs précédemment enregistrées et prend la tête du tableau, et la valeur la plus ancienne est supprimée. Il peut y avoir plusieurs périodes actuelles, et chacune peut être consacrée à une échelle de temps différente et à un paramètre différent.

3. Plage de valeurs du paramètre - la plage dans laquelle la valeur d'un paramètre change. Il est fixé par l'expérience lors des tests du système. La plage entre les valeurs min et max peut inclure une division en plages plus petites, servant à décomposer la plage complète des valeurs d'un paramètre et à les ramener à une échelle pratique.

4. Écarts de temps entre les valeurs entrantes - mesurés au fur et à mesure que les valeurs arrivent dans le tampon circulaire. Outre les fourchettes, il est nécessaire de compiler la nature du changement de valeur et l'analyse mathématique qui en découle.

5. Courbe de changement de valeur - affichage conditionnel, en cours de programme, du changement de valeur, qui combine les valeurs elles-mêmes et les intervalles de temps entre elles. Le résultat est une courbe graphique (représentée dans un tableau bidimensionnel) à laquelle on peut appliquer diverses méthodes d'analyse mathématique.

6. Filtres mathématiques - méthodes d'analyse (formules) révélant les différentes caractéristiques de la variation de valeur au cours de la période actuelle.

7. Réduction de la valeur à un intervalle - résumé de la valeur actuelle afin de réduire le nombre de ses variantes. Il est nécessaire dans l'analyse de la variation.

8. Collecte de statistiques sur les signatures - Processus réalisé lors des essais du système ou lors de son fonctionnement en conditions réelles. En fait, l'"expérience" du système est recueillie, sa "connaissance" de diverses situations représentant divers caractères de comportement des valeurs de divers paramètres est effectuée. Ces signatures sont stockées dans une base de données spéciale.

9. Base de données des signatures - Bloc de mémoire où sont stockées toutes les signatures réelles. Le lieu de stockage de "l'expérience" du système, filtrée par une sélection statistique constante. Au sein de la base de données, les signatures pertinentes sont sélectionnées et tournées et les moins pertinentes sont progressivement supprimées. La sélection est dictée par la période en cours à partir de laquelle certaines signatures sont prises dans la base de données après leur création (après analyse et filtrage des valeurs, bien sûr.) Les signatures qui reviennent le plus souvent sont évincées de celles qui reviennent moins souvent.


Description du processus de fonctionnement du système :

Imaginons un moteur de programme qui, d'une part, reçoit les valeurs des paramètres et, d'autre part, fournit des signatures prêtes à l'emploi des modèles de leurs changements sur diverses périodes de temps. Un moteur qui stocke également ces signatures dans une base de données et les fait tourner dans cette base.

Supposons qu'un utilisateur tape un groupe de paramètres en faisant simplement pointer le moteur vers des variables prédéfinies ou des paramètres d'environnement. Ces paramètres commencent à être "observés" par le moteur. En d'autres termes, leurs valeurs entrent dans des tampons circulaires, sont regroupées en périodes de temps et analysées par des filtres mathématiques. En conséquence - les signatures finies sont introduites dans la base de données.

Ensuite, l'utilisateur commence à "entraîner" le moteur, ce qui se fait de la manière suivante :

Relie les valeurs des paramètres d'entrée de sa stratégie à des signatures spécifiques. En d'autres termes, il définit la dépendance des valeurs des paramètres d'entrée par rapport à des "moulages" numériques spécifiques de la situation actuelle. En outre, l'utilisateur peut lier ses appels de fonction aux signatures sélectionnées, simplement en indexant ces appels. Le moteur appellera les fonctions définies par l'utilisateur par leur numéro sur les signatures sélectionnées.

Cependant, le système n'est pas indépendant à ce stade, car l'utilisateur doit "entraîner" manuellement le système en associant les meilleures valeurs des paramètres d'entrée de sa stratégie à des signatures spécifiques. Imaginons comment le système pourrait évoluer vers une indépendance totale :

Pour cela, le système ne doit pas seulement collecter des signatures lors de la phase d'apprentissage, mais parallèlement optimiser les paramètres d'entrée de la stratégie de manière à obtenir au final la rentabilité maximale de cette stratégie. Au moment où la rentabilité maximale est atteinte, les valeurs des paramètres d'entrée seront liées à la signature spécifique reflétant la situation où ces valeurs sont les plus efficaces. En disposant d'un ensemble de signatures reflétant une grande variété de situations de marché, le système disposera de réglages prêts à l'emploi des paramètres d'entrée de la stratégie pour chacune de ces situations.

//===================================================================================

Cette approche n'a peut-être rien à voir avec la compréhension classique de l'apprentissage automatique, mais le fait qu'elle réalise son objectif dans le domaine du trading est certain. Jusqu'à présent, tout ceci est en termes généraux, mais je n'ai aucun doute sur la validité de cette approche et la possibilité de la mettre en œuvre dans MQL.

Veuillez partager l'opinion des experts de l'OI et des autres personnes intéressées par cette question.

Merci de votre attention.



 
pantural:

Merci beaucoup, c'est exactement ce que le docteur a commandé ! Court et concis ! Tout le MO en 10 lignes ! Pantural est satisfait, Pantural vous remercie ! Yo hey, kamon !

double perceptron() 
  {
   double w1 = x1 - 100;
   double w2 = x2 - 100;
   double w3 = x3 - 100;
   double w4 = x4 - 100;
   double a1 = iAC(Symbol(), 00);
   double a2 = iAC(Symbol(), 07);
   double a3 = iAC(Symbol(), 014);
   double a4 = iAC(Symbol(), 021);
   return(w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4);
  }

Maintenant vous pouvez faire la différence entre la naïveté enfantine et le trolling gras...

Mais apparemment, c'est la première.

pantural:

Bonjour, tout le monde. Je suis Pantural.

Pour la troisième fois, j'essaie de m'installer sur le forex, je sens que c'est quelque chose, mais la vie suit son cours, et au-delà de la prune 2 depo 200 $ chacun, ce n'est pas venu. J'essaie de faire de bons résultats maintenant plus qu'il y a 4 ans, au moins les écarts sont wow cool (oh mon dieu ! c'est le pantural ! wow !)

 
Tag Konow:

Et donc, mon concept de la façon dont "l'apprentissage automatique" pourrait être mis en œuvre en relation avec le trading MQL :

Peu importe la langue dans laquelle se trouve le MO, l'important ici est que le concept de MO y soit considéré comme suit :

1. Une idée me vient à l'esprit

2. Nous avons pris le premier paquet disponible de R

3. Testez-le, assurez-vous que le paquet est nul ou donne des résultats insatisfaisants selon l'idée, passez au point 2 pour essayer tous les paquets. Lorsque vous n'avez plus de paquets, passez à l'étape 1.

Ce que vous essayez d'assimiler ou de mettre en œuvre, vous ne serez pas compris ici, au mieux vous serez traité de troll.

 
Andrey Dik:

Peu importe la langue dans laquelle le MO est rédigé, ce qui est important, c'est que c'est ici que le concept de MO est considéré comme suit :

1. Une idée me vient à l'esprit.

2. Nous obtenons le premier paquet que nous voyons de R

3. Vérifiez-le, assurez-vous que le paquet est nul ou donne des résultats insatisfaisants selon l'idée, passez au point 2 pour essayer tous les paquets. Lorsque vous n'avez plus de paquets, passez à l'étape 1.

Et ce que vous essayez d'assimiler ou de réaliser - vous ne serez pas compris ici, dans le meilleur des cas ils vous déclareront comme un troll.

Je suis d'accord avec les trois premiers points. Mais ce sont des utilisateurs ordinaires qui se comportent de cette manière. Il y a des spécialistes qui doivent comprendre ce que j'écris.

S'ils n'ont rien à dire non plus sur l'essence du concept, cela signifie que le cadre local est si étroit qu'il ne permet aucune liberté de pensée. Voyons voir...

 
Tag Konow:

Je suis d'accord avec les trois premiers points. Mais ce sont les utilisateurs ordinaires qui se comportent de la sorte. Il y a des experts qui devraient comprendre ce que j'écris.

S'ils n'ont rien à dire sur l'essence du concept, c'est que le cadre local est si étroit qu'il ne permet aucune réflexion libre. Voyons voir...

Pas des utilisateurs ordinaires, mais des utilisateurs très intelligents, certains avec des doctorats, mais ce sont des utilisateurs de R et cela veut tout dire.

Vous pouvez parler à Yuri Reshetov sur le sujet, mais il n'a pas non plus la patience d'écrire quoi que ce soit ici pendant longtemps.

 
mytarmailS:

Ce quetoxic a montré est une sorte de clustering mais avec un professeur, les points au début sont des signes ou plutôt leurs paramètres numériques, vous avez une cible d'achat et de vente, vous avez marqué avant la formation où il y avait une croissance (achat) et une baisse (vente), et l'algorithme commence à diviser bêtement les paramètres des signes par la cible, comme la zone bleue est un achat, rouge est une vente...

Mais en ce moment, le dernier buzz est quelque chose comme ceci

https://www.youtube.com/watch?v=05rEefXlmhI

https://www.youtube.com/watch?v=qv6UVOQ0F44

https://www.youtube.com/watch?v=xcIBoPuNIiw

mais je suis un vrai nerd.

Et celui-ci est hilarant.)

https://www.youtube.com/watch?v=pgaEE27nsQw

Merci pour ces vidéos, le saut des dinosaures en particulier ))))

Je pense que le réseau neuronal de Mario illustre un point important :

vous pouvez entraîner un algorithme à passer un niveau particulier (même un niveau très difficile)

mais cela ne signifie pas qu'il aura autant de succès à un autre niveau.

et si vous regardez de près comment ce bot passe un niveau, il est clair

c'est juste une mise au point et le robot ne comprend pas la situation et n'a pas l'intelligence d'un vrai joueur

Le réseau a juste pris le timing pour les boutons.

On peut le voir à la façon dont Mario se heurte aux obstacles et saute dans les murs.

son succès est plus aléatoire que logique.

tout comme dans le domaine du forex, un bot peut réussir une section/niveau et en échouer une autre.

parce qu'il n'a pas l'intelligence d'un trader et que le robot ne "comprend pas" ce qu'il fait...

pour réussir dans n'importe quel domaine/niveau, le bot doit avoir un modèle objet du monde dans lequel il existe.

c'est-à-dire que l'algorithme ne doit pas seulement optimiser les motifs

L'algorithme doit fonctionner avec des catégories sémantiques et décrire la situation telle qu'elle est perçue par le trader/gamer.

Le robot doit distinguer les types d'objets et leurs caractéristiques, et évaluer le danger de la situation de manière dynamique.

et cela nécessite un niveau d'heuristique très différent de celui de l'optimisation simple des neurones.

Le résultat de l'apprentissage doit être un modèle sémantique et une connaissance des objets et des processus.

S'il n'y en a pas, les bots de commerce sont condamnés au pokage aléatoire.

l'historique des transactions des bots montre souvent à quel point l'algorithme évalue stupidement la situation commerciale.

et intervient là où un commerçant humain normal ne s'impliquerait jamais.

c'est pourquoi je suis pessimiste à propos de la robotique.

vous pouvez au mieux fabriquer un semi-robot avec une description du domaine sous forme de traitement de quelques situations typiques

(par exemple, un retournement de tendance ou un flat-out)

mais de toute façon, vous devez garder un œil sur votre robot, pour éviter qu'il ne fasse des irrégularités comme le font les Mario Bots à un nouveau niveau

 
transcendantal:

...

Je suis d'accord avec votre point de vue.
 
Tag Konow:

Je suis d'accord avec les trois premiers points. Mais ce sont les utilisateurs ordinaires qui se comportent de la sorte. Il y a des experts qui doivent comprendre ce que j'écris.

S'ils n'ont rien à dire sur l'essence du concept, cela signifie que le cadre local est si étroit qu'il ne permet aucune liberté de pensée. Voyons voir...

MoD est avant tout un art d'ingénierie, le résultat justifie tous les concepts. Donnez-moi le résultat. Voici le défi : https://numer.ai/

Numerai
Numerai
  • numer.ai
A new kind of hedge fund built by a network of data scientists.
 
Tag Konow:

Et donc, mon concept de la façon dont "l'apprentissage automatique" pourrait être mis en œuvre en relation avec le trading MQL :

Tout d'abord, les concepts de base : ...................

Veuillez donner votre avis aux experts MQL et à toute autre personne intéressée.

Je vais commencer par les bases : Je vais d'abord commencer par les bases de l'apprentissage automatique.

Personnellement, je ne le comprends même pas.)

Mais je peux, je ne me considère pas comme un expert.

 

MoD est avant tout un art d'ingénierie, le résultat justifie tous les concepts. Donnez-moi le résultat. Voici le défi : https://numer.ai/

Et qu'en est-il de la prise en main ? Sinon - "donne, donne... ".)) Je vais faire ce moteur. Mais après que le projet principal soit terminé.