
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
Je vais soutenir le sujet de départ, j'ai emprunté mql plusieurs fois comme 4 et 5, et je dirai que j'ai personnellement peu d'envie d'apprendre le langage que je ne peux utiliser qu'ici dans le trading ...
C'est soit pour rien, soit parce que vous ne comprenez pas le problème. Allez-vous vraiment réécrire les algorithmes de l'indicateur ? C'est comme aller de Volgograd à Moscou via Vladivostok. Une dernière chose, tous les indicateurs tiennent compte de l'historique. C'est-à-dire que si vous prenez les données (barres) d'un mois, que vous calculez l'indicateur selon votre algorithme et que vous le comparez à Terminal, vos calculs seront différents.
Je ne comprends pas non plus cette phrase :
Sur la base de ce que j'ai écrit, il s'avère qu'il y a une grande couche de connaissance de Python :) Vous ouvrez un éditeur et vous connaissez déjà python - c'est si facile, et vous ouvrez mql et vous ne connaissez rien.
En même temps, qualifier mql, quiest complètement orienté vers la plate-forme, d'outil "obsolète" ... python a été créé en 1991 et ceci est bien antérieur
Ce que j'ai vu dans ce fil, écrit en python, est très facile à mettre en œuvre dans mql.
---
Eh bien, c'est intéressant en tant qu'idée générale, mais pas plus.
De plus, il ne tire pas profit de Python et ce n'est pas un "style Python". C'est comme enfoncer des clous avec un tournevis, le marteau est démodé.
Je soupçonne que la seule vaisselle dans votre maison est une cuillère - vous pouvez faire une soupe ou un gâteau et il est plus sûr d'utiliser
)))
Si vous l'aimez, utilisez Python, mais pas en tant que sujet de départ - ne créez pas vos propres types de données personnalisés - barres et autres, n'écrivez pas vos propres calculs ... et utilisez les solutions existantes, sinon il n'y a aucun intérêt à utiliser ce langage, vous pouvez aussi bien écrire vos propres paquets de réseaux de neurones ;)
Oui) D'ailleurs, il n'y a pas de bibliothèque sur Python pour ces fonctions de trader, ou si vous pouvez écrire l'analyse statistique complète d'une série en quelques lignes, vous n'avez pas besoin de MA)....
Ouais) Au fait, il n'y a pas de bibliothèque Python pour toutes sortes de fonctions proches du trading, ou si vous pouvez écrire une analyse statistique complète d'une série en quelques lignes, alors la MA n'est plus nécessaire)....
Les meilleures 101 bibliothèques de trading algorithmique en Python | PythonRepo
Impossible de revenir sur le forum hier. Je vais continuer. J'ai commencé un nouveau compte démo, et dessus se trouvent les noms des instruments sans '_i' à la fin, j'ai donc corrigé le code dans cette partie.
Je vais continuer le mouvement progressif et lent, une sorte de micro-tuto, pour ceux qui pourraient être utiles.
Introduisons une variable n (petite) - que ce soit, pour ainsi dire, la longueur de la fenêtre. Autrement dit, dans les fichiers avec des prix, N lectures, par exemple, 1000, et n, définissons, par exemple, 10, ou 100, ou 288 (un jour, si le délai est M5).
La variable d signifie pour moi le décalage de cette fenêtre dans le temps, dans le passé. Posons d = 0.
Par exemple, nous afficherons 10 relevés de cours de clôture et SMA de l'ordre de 101 (retardés de 50 intervalles entre relevés) :
Résultat des travaux :
Apprenons à interroger le terminal sur les transactions en cours sur le marché, pour ainsi dire, pour les instruments.
Je vais introduire la fonction
Il prend la liste des positions ouvertes du symbole et renvoie le tuple(le nombre de transactions à vendre, le nombre de transactions à acheter).
Dans la fonction principale, ajoutez ce fragment avant la fonction terminal_done()
Le résultat (n est réduit à 5 pour le bien de la sortie) :
Je propose de commencer l'ouverture effective des transactions. Par exemple : si le prix est supérieur à la SMA de quelque chose : ouvrez une transaction de vente, s'il est inférieur à la SMA de quelque chose : ouvrez une transaction d'achat.
Je suggère quelques fonctions supplémentaires : pour contrôler les trades ouverts en termes de SL et TP, les fermer s'ils sont absents, et une fonction qui renvoie le résultat actuel (profit ou perte) en pips.
Nous devons nous rappeler de gérer d'une manière ou d'une autre la situation où l'ordre est déjà dans l'historique et qu'il n'est pas en position active, et de ne pas renvoyer l'ordre pour ouverture dans ce cas.
Cette situation se produit de temps en temps et, par exemple, travailler par le biais de Trade.mqh ne résout pas ce problème (du moins, ce n'était pas le cas auparavant - j'ai abandonné Trade.mqh il y a longtemps).
Parfois, c'est l'inverse : l'ordre de clôture figure déjà dans l'historique et la position est toujours visible.
Nous devons nous rappeler de gérer d'une manière ou d'une autre la situation où l'ordre est déjà dans l'historique et qu'il n'est pas en position active, et de ne pas renvoyer l'ordre pour ouverture dans ce cas.
Cette situation se produit de temps en temps et, par exemple, travailler par le biais de Trade.mqh ne résout pas ce problème (du moins, ce n'était pas le cas avant - j'ai abandonné Trade.mqh il y a longtemps).
Parfois, c'est l'inverse - l'ordre de clôture est déjà dans l'historique et la position est toujours visible.
J'ai montré comment interroger le terminal sur les positions ouvertes. Rien ne nous empêche d'écrire le code de telle sorte que si la position existe déjà, nous n'aurons pas besoin de renvoyer la demande, sinon - nous le ferons. En particulier, qu'après avoir envoyé une requête, l'objet est retourné, qui a tout dans ses propriétés, nous pouvons voir si c'est normal, ou quel type d'erreur est présent, et sur la base de cet acte. Il n'y a aucun problème ici.
Les meilleures 101 bibliothèques de trading algorithmique en Python | PythonRepo
C'est déjà 104) C'est 105)
Code complet du fichier TradeLogic.py jusqu'à présent (oui, c'est primitif, mais je suis sûr que cela pourrait ouvrir la porte au trading en utilisant Metatrader 5 et Python pour certains)
Résultat du travail :
Z.I.Y. Les morceaux de code les plus primitifs, élémentaires, montrés, à mon avis, démontrent déjà très clairement qu'il n'est pas difficile d'implémenter absolument n'importe quelle logique, n'importe quel calcul, n'importe quelle comparaison, le contrôle des transactions ouvertes selon divers critères, leur fermeture automatique sous certaines conditions, la tenue de journaux à la fois en ligne de commande et en écrivant dans des fichiers, etc., etc.
Z.U.2 Till maintenant utilisé classe Sdelka, et en général, il est commode de passer les objets de cette classe dans les fonctions, les écrire à des fichiers comme .json, etc, - mais en quelque sorte a été un peu fatigué, je pense que ceux qui veulent comprendre, je peux aider ici avec quelque chose. Si vous le souhaitez, vous pouvez visser une interface graphique.
Je recommande vivement de trader avec Python + la bibliothèque metatrader5.
J'ai montré comment interroger le terminal pour connaître les positions ouvertes. Rien ne vous empêche d'écrire le code de manière à ce que, s'il existe déjà une position, vous n'ayez pas besoin de renvoyer la demande, sinon, envoyez-la. Surtout, qu'après avoir envoyé une requête, l'objet est renvoyé, qui a tout dans ses propriétés, on peut voir s'il s'est ouvert normalement ou s'il y a une erreur, et sur la base de cet acte. Il n'y a aucun problème ici.
Encore une fois, l'ordre a déjà été exécuté et est passé à l'histoire. Il n'est plus en position active. La position a déjà été ouverte, mais elle n'est pas encore visible ; la demande ne la montre pas.
En général, cet intervalle de temps est très court et il est difficile de l'atteindre, d'autant que ce n'est pas toujours le cas.
Cependant, cette situation peut durer non pas quelques secondes mais quelques minutes lors d'une ouverture matinale avec un gap et un grand nombre d'ordres.
Pour être plus clair : TRADE_TRANSACTION_ORDER_DELETE est arrivé avant TRADE_TRANSACTION_HISTORY_ADD ou TRADE_TRANSACTION_DEAL_ADD.
Et il se peut qu'à un moment donné, nous ne voyions pas d'ordres dans l'actif ou l'historique, ou que nous ne voyions pas d'ordres ou de transactions.