Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Tout est prêt maintenant, et il est temps de relier notre TS Python au terminal MT. Cependant, il y a certaines actions à entreprendre pour y parvenir.
Notre futur CT lit et écrit des fichiers dans le dossier C:\PyTS, mais le terminal MT, selon un caprice inconnu de MQ, ne peut lire et écrire des fichiers que dans son propre répertoire - C:\<multitude de lettres et de chiffres>\Files, et pas autrement. Bien sûr, vous pouvez modifier les paramètres dans le code Python, et le laisser basculer vers le dossier MQ natif, mais j'ai besoin que le terminal lise et écrive des fichiers à partir de là et là où je le veux, et non là où lui, le terminal, le veut. D'autant plus qu'elle sera nécessaire à l'avenir.
En fait, cette question a été résolue il y a quelques années, dans mon sujet - https://www.mql5.com/ru/forum/79922.
Tout est résolu avec les outils de Windows. Dans le dossier C:\<<un tas de lettres et de chiffres> \Files du terminal, vous faites référence au dossier C:\PyTS, qui est interprété par le terminal (et le système d'exploitation également) comme un sous-dossier Files\PyTS et le terminal y écrit, dans C:\PyTS, comme dans son dossier natif).
Cette opération s'effectue en ligne de commande, à l'aide de l'utilitaire MKLINK de Windows. Pour ceux qui ne peuvent pas le faire eux-mêmes, voici une description détaillée :
Tapez execute - cmd, ou dans le menu - Utilitaires-Windows -> Invite de commande. Vous obtenez une fenêtre où vous tapez MKLINK ou mklink. Ici, nous avons :
Tapez maintenant cd... plusieurs fois jusqu'à ce que vous arriviez à C:\.
Ensuite, ouvrez l'Explorateur Windows, et allez dans C:\<un tas de lettres et de chiffres> \Files, où le terminal met les fichiers, et sélectionnez et copiez le chemin Ctrl-Ins.
Retournez à la fenêtre de l'invite de commande et là écrivez cd <space>, utilisez Shift-Ins pour coller le chemin vers ... \Files, et Enter. On a compris :
Maintenant dans la ligne de commande nous écrivons - mklink /D PyTS c:\PyTS , et comme d'habitude - Enter. Ici, nous l'avons :
Nous voyons qu'un lien a été créé. Nous voyons qu'il est apparu dans le dossier ......\Files et nous y accédons - nous voyons les fichiers dans le dossier C:\PyTS. )) C'est tout.
Maintenant, tous les fichiers écrits par le terminal dans le dossier ...Files\PyTS seront, en fait, écrits dans le dossier C:\PyTS.
.
Le code MQL se trouve également dans la pièce jointe. - MQL lit l'historique, et le transmet à l'application Python. Python l'accepte et l'imprime. Dans Python, n'oubliez pas d'appuyer sur le bouton Démarrer. )
J'espère qu'il n'est pas nécessaire d'écrire des commentaires sur le code MQL - il y a une référence). Oui, le transfert des données de MT se fait sur minuterie, c'est plus pratique pour moi, à ce stade.
Je vais faire une pause pour le moment - nous devons maintenant résoudre des questions avec la stratégie. Si vous avez des suggestions, nous en tiendrons compte).
Une fois encore, le partage de fichiers est idéal pour le développement et le débogage de stratégies, car il ne nécessite aucun effort de modification. Pour la plupart des stratégies du monde réel, elle reste adaptée. Mais, si nécessaire, nous pouvons toujours le remplacer par autre chose, sans modification importante du programme - une question de 1 à 2 jours.
Je ne promets pas d'écrire souvent, seulement au fur et à mesure que je l'obtiens. Le projet est réalisé dans l'ombre, avec peu ou pas de temps à perdre.
J'ai pensé que ce serait bien que le système affiche des graphiques
En général, Python est un langage simple - quelques jours pour l'étudier suffisent. Mais s'occuper des modules est beaucoup plus difficile - il y en a des milliers, et qui fait quoi et pourquoi n'est pas toujours évident. Avec les graphiques, c'est ce qui s'est passé - j'ai dû faire le tri pendant longtemps. Mais le résultat est le suivant :
Le programme lit un fichier CSV et dessine un graphique.
Le graphique montre les prix par clôture, soit environ 50 000 chandeliers.
Si vous cliquez sur la loupe et sélectionnez un rectangle dans la zone du graphique comme ceci :
vous pouvez zoomer sur le graphique, et vous l'aurez :
Cela peut être fait à plusieurs reprises. Le graphique peut également être déplacé et sauvegardé en tant qu'image, et bien sûr être étendu en plein écran.
Tous les fichiers dont vous avez besoin se trouvent dans l'application. Dézippez le zip dans un dossier et exécutez CSVGraph.py.
Avant de l'exécuter, n'oubliez pas de vérifier si les modules que vous voulez importer sont installés.
Laissons les bêtises aux voisins et à la caisse de résonance amateur, mais résumons nous-mêmes les résultats préliminaires.
Si vous êtes déjà familiarisé avec le sujet Si vous êtes un pro, vous connaissez déjà un peu de Python, vous savez comment travailler avec des fichiers CSV, vous savez comment construire des graphiques et échanger des données avec le terminal. C'est déjà suffisant pour développer, simuler et tester des stratégies de trading. Si votre stratégie fonctionne avec des TF 1 min et plus sans utiliser de ticks et accède au terminal avec des intervalles de 5-10 sec, vous pouvez déjà créer des stratégies fonctionnelles directement dans Phyton, en laissant seulement la livraison des données et l'"exécution" de vos ordres au terminal.
En outre, vous connaissez déjà la programmation et l'environnement Phyton, à un niveau supérieur au langage et à l'environnement R, si populaires parmi les apologistes locaux de l'apprentissage automatique. Vous serez déjà en mesure de construire des stratégies d'indicateurs, même très complexes, en Python, mais toutes les fonctionnalités de Python (à l'instar de R) peuvent être mises en œuvre à l'aide de modules. Dans ce sujet, nous avons utilisé seulement 3 modules - tkinter, numpy et matplotlib.
Maintenant, ce dont Python a besoin pour élaborer des stratégies plus avancées, par exemple en utilisant l'apprentissage automatique. Le module -scikit-learn peut être utilisé pour cela. Avec l'utilisation descikit-learn, les fonctionnalités suivantes sont disponibles - Guide de l'utilisateur. Comment trouvez-vous l'ensemble des méthodes ? - Il dispose déjà d'à peu près tout, y compris, ce qui n'est pas étranger à R et au thème de l'apprentissage automatique, de la classification bayésienne aux forêts aléatoires et aux réseaux neuronaux.
Ce n'est qu'un des modules d'apprentissage automatique en Python, et il en existe une douzaine. Le modulescikit-learn ne serait pas le meilleur d'entre eux, ni le plus avancé. Cela dépend de qui a besoin de quoi. Les autres ne sont pas difficiles à trouver sur l'internet.
PS Pour ceux qui commencent ou s'initient à Python.
J'ai essayé plusieurs environnements de développement Python et me suis arrêté au plus pratique pour les débutants (dont je fais partie) - Anaconda. Ce qui est pratique, c'est que tout ce dont j'ai besoin est déjà installé, y compris Python. L'éditeur que j'utilise est Spyder - installé avecAnaconda. Je vous conseille également d'installer l'éditeur VSCode - également très bien et installé directement depuisAnaconda.
Vous pourriez ne pas être satisfait de mon choix.
Les indicateurs requis sont tous prêts. Voir la figure réalisée en Python (En Python, il est très pratique et rapide de dessiner toutes sortes de graphiques). Il s'agit de la réponse à un seul saut - 1(t), ou fonction transitoire. En fait, c'est un des tests standards.
La fm est la moyenne mobile conventionnelle (servant uniquement à la calibration), la f1 est l'EMA, avec un calcul de coefficient modifié, et la f2 est un indicateur non standard.
Cependant, comme le disait notre connaissance commune :
Je l'ai dit un million de fois, et je le dirai probablement encore... Personne n'a inventé quelque chose de mieux que les indicateurs de l'offre MT (standard... pour dire les vieux indicateurs slaves... païens ! !!).
Ainsi, afin de ne pas vous prendre la tête avec la science, vous obtiendrez les sources standard de l'EMA et de la stratégie. Cependant, je vais réaliser et tester la stratégie sur mes indicateurs. Peut-être que je cacherai autre chose des regards indiscrets, mais sans perdre la fonctionnalité.
Mais ce n'est pas pour la traversée de l'EMA qu'il s'agit. L'objectif de tout cela, ce sont les stratégies d'apprentissage automatique. Pour l'instant, je teste différentes méthodes de classification. Et voici les résultats du test :
La classification gaussienne, RBF SVM, les réseaux neuronaux et la classification bayésienne naïve sont en tête jusqu'à présent. Le programme Python est déjà prêt, disponible quelque part sur Internet, mais la préparation des données est à la charge de l'utilisateur.
Allons-y.
Les indicateurs requis sont tous prêts. Voir la figure réalisée en Python (En Python, il est très pratique et rapide de dessiner toutes sortes de graphiques). C'est la réponse à un seul saut - 1(t), ou la fonction de transition. En fait, c'est un des tests standards.
Le fm est la moyenne mobile conventionnelle (servant uniquement à la calibration), le f1 est l'EMA, avec un calcul de coefficient modifié, et le f2 est un indicateur non standard.
Cependant, comme le disait notre connaissance commune :
Ainsi, pour éviter de vous prendre la tête avec la science, vous obtiendrez l'EMA standard et les sources de la stratégie. Cependant, je vais réaliser et tester la stratégie sur mes indicateurs. Peut-être que je cacherai autre chose aux regards indiscrets, mais sans perte de fonctionnalité.
Mais ce n'est pas pour la traversée de l'EMA qu'il s'agit. L'objectif de tout cela, ce sont les stratégies d'apprentissage automatique. Pour l'instant, je teste différentes méthodes de classification. Et voici les résultats du test :
La classification gaussienne, RBF SVM, les réseaux neuronaux et la classification bayésienne naïve sont en tête jusqu'à présent. Le programme Python est déjà prêt, disponible quelque part sur Internet, mais la préparation des données est à la charge de l'utilisateur.
Allons-y.
C'est une honte qu'ils soient passés aux réseaux neuronaux. Mais surtout très utile, je pense que ça va servir.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Robots à apprentissage automatique
Yuriy Asaulenko, 2018.09.21 00:45
Ils ne le feront pas. Le maximum qu'ils feront est le même qu'avant.
C'est dommage qu'ils soient passés aux réseaux neuronaux. Mais surtout très utile, je pense que ça va servir.
Il n'est pas prévu de passer aux méthodes NS et autres MoD dans ce fil. Pour l'instant, du moins). Nous verrons bien.
Ce qui est fait ici est un modèle de système Python. Le remplissage spécifique de ce modèle est une question d'utilisateur spécifique.
Eh bien, montrer les capacités des bibliothèques Python, je pense, n'est pas superflu.
Lorsque le programme est lancé, la stratégie est testée, le rapport de toutes les transactions est enregistré dans un fichier CSV, le graphique des bénéfices est affiché sur la console, qui peut être sauvegardée sur le disque - voir Fig.