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

 
Mihail Marchukajtes:

Gardez à l'esprit que toute redondance de données retardera l'entrée en combat du modèle. Cela affecte directement la qualité des signaux reçus après.....

Personnellement, j'ai choisi la méthodologie suivante. J'ai inversé le modèle obtenu en utilisant des signaux d'achat et je l'ai testé sur la même partie du marché mais pour des signaux de vente. Ainsi, je ne perds pas un temps précieux et j'estime correctement les capacités du modèle. IMHO

Je veux essayer d'enseigner et de tester le modèle en utilisant la méthode classique train|valid|test. Si le modèle fonctionne, alors le test sera une transaction réelle, c'est-à-dire que j'utiliserai train|valid dans NS et j'exécuterai une transaction réelle sur les paramètres obtenus. Ou peut-être qu'un seul train est suffisant ? Ainsi, la formation sera proche de la période de négociation réelle. En dernier recours, nous pouvons valider sur les données avant le tracé du train.
 

Au fait, oui. La section de contrôle peut également se trouver avant la section des stagiaires. Je fais ça aussi, mais j'ai une classification, ça ne se soucie pas de l'ordre. En cas de prévision ou de régression, l'ordre des données est IMPORTANT.

Mais dans mon cas, la séparation en Achat et Vente est la plus importante, car la section de contrôle tombe dans la même période de marché que la section d'apprentissage. C'est juste que les données sont diamétralement opposées, mais toutes les lois et les nouvelles qui sont en vigueur en ce moment sont les mêmes pour les sections de formation et de contrôle. Dans ce cas, la négociation commence juste après la section Train, ce qui augmente potentiellement la durée du TS.

 
Mihail Marchukajtes:

Personnellement, j'ai choisi la méthodologie suivante. J'ai inversé le modèle obtenu en utilisant des signaux d'achat et je l'ai testé sur la même partie du marché, mais pour des signaux de vente. Ainsi, je ne perds pas un temps précieux et j'estime correctement les capacités du modèle. IMHO

Pourquoi ne pas enseigner un seul modèle avec des valeurs de sortie d'Achat et de Vente, par exemple de 1,0 à -1,0, et tout ce qui se trouve autour de 0,0 est plat ?

 
elibrarius:
Je veux essayer de former et de tester le modèle en utilisant la méthodologie classique avec train|valid|test. Si le modèle fonctionne, le test sera une transaction réelle, c'est-à-dire que je transmettrai train|valid à NS et exécuterai une transaction réelle sur les paramètres reçus. Ou peut-être qu'un seul train est suffisant ? Ainsi, la formation sera proche de la période de négociation réelle. En dernier recours, nous pouvons valider sur des données de pré-entraînement.
Ils discutent ici du nombre et de la séquence de formation, test, validation, mais ils ne parlent pas de la validation croisée, probablement que tout le monde l'utilise par défaut ou que personne ne l'utilise...
 
Ivan Negreshniy:
Ils discutent du nombre et de la séquence des sections de formation, de test et de validation, mais ne parlent pas de la validation croisée, que tout le monde utilise probablement par défaut ou que personne n'utilise...

J'ai lu que la validation croisée est utilisée lorsqu'il y a peu de données et que vous avez besoin d'au moins quelque chose pour valider. Sur le marché des changes, il y a beaucoup de données - des millions de barres de minutes sur plusieurs années. Je pense que personne ne l'utilise.

 
elibrarius:

La validation croisée est utilisée lorsque les données sont rares et que vous avez besoin d'un point d'appui. Sur le marché des changes, il y a beaucoup de données, des millions de barres de minutes sur plusieurs années. Je pense que personne ne l'utilise.

À mon avis, c'est la bonne façon de compenser l'effet du brassage et de la combinaison manuels des données d'entrée.
 
Ivan Negreshniy:

Pourquoi ne pas enseigner en même temps le même modèle avec des valeurs d'achat et de vente sur la sortie, par exemple de 1,0 à -1,0, et tout ce qui est proche de 0,0 - plat ?


Ce n'est pas... Pas notre méthode. En enseignant l'achat et la vente en une seule fois, la zone check.... disparaît.

 
Ivan Negreshniy:

Bonne idée et bibliothèque MT5 utile mais il est assez difficile de la synchroniser avec un fichier script Python IMHO.

Je pense qu'il est préférable de synchroniser les variables MQL directement avec les variables Python via un dictionnaire local et d'exécuter les fragments de code Python directement à partir des constantes de chaîne dans le code d'EA.

J'ai essayé le test, en compilant bcc64 à partir de la ligne de commande et cela fonctionne bien dans python 3.6 :

Ce serait bien d'ajouter cette fonctionnalité à votre bibliothèque, j'étais sur le point d'écrire la mienne, mais malheureusement pour l'instant je suis occupé par la bibliothèque P-net pour python.

D'ailleurs, j'ai écrit sur ce nouveau réseau neuronal ici dans une branche, par les résultats préliminaires des tests sur des exemples avec l'Iris de Fisher, il est formé sur trois ordres de grandeur plus rapidement que DNN dans TensorFlow, avec des résultats de test égaux.


Je vais y réfléchir. À partir de ma bibliothèque, vous pouvez lancer n'importe quel script Python et exécuter n'importe quelle fonction à partir de celui-ci. La bibliothèque n'est pas compliquée. Je pense que cela sera suffisant pour moi et pour beaucoup d'autres.

 
Grigoriy Chaunin:

Je vais y réfléchir. À partir de ma bibliothèque, vous pouvez lancer n'importe quel script Python et exécuter n'importe quelle fonction à partir de celui-ci. La bibliothèque n'est pas compliquée. Je pense que cela sera suffisant pour moi et pour beaucoup d'autres.

Oui, votre bibliothèque est parfaitement utilisable, mais je pense qu'elle pourrait être améliorée, car le chargement des scripts à partir de fichiers séparés et la synchronisation des arguments et des valeurs de leurs fonctions par le biais de variables globales dans la dll n'est pas toujours la meilleure solution.
 

Je suppose que oui. Il est très probable que la bibliothèque change. En ce moment, j'ai pour tâche de maîtriser Python à un niveau avancé et de maîtriser la science des données. Tout le temps pour ça. Et quand un modèle utilisable sera prêt. Je vais déjà réfléchir à la manière de l'attacher à MT.

Renat a écrit dans un fil de discussion voisin qu'ils vont ajouter Python, R et C#. Mais je ne comprends pas s'il sera possible de travailler simplement dans MetaEditor ou de l'intégrer à MQL. Travailler dans Metaeditor n'est pas vraiment pratique, les éditeurs de code sont suffisants. Je pense que l'intégration est plus probable. Ce serait cool. Et mon travail sur l'intégration de Python est une solution temporaire.