Discussion de l'article "Comment copier le trading depuis MetaTrader 5 vers MetaTrader 4"
C'est peut-être le sujet le plus intéressant du jour.
En tout cas, pour moi personnellement, l'article le plus intéressant de tous.
Je suis d'accord, le sujet est pertinent en ce moment. Il permet de ne pas attendre que les DCs basculent.
Article utile et pertinent, merci à l'auteur !
Une chose qui prête à confusion :
Чтобы не пропустить момент изменения позиции, следящая система должна быть реализована в функции OnTimer(), т.к. следить придется за всеми инструментами сразу, а тики приходят на разных символах в разное время. Также требуется передать сигнал об изменении содержимого файла.
Pourquoi pas OnTrade()?
Pourquoi pas OnTrade()?
Je suis d'accord, le traitement normal de OnTrade() est nécessaire, ainsi qu'un Tamer avancé. Leur absence est un bug dans n'importe quel EA, surtout dans un mult...
Et l'auteur a refusé des bibliothèques pour rien, on peut faire beaucoup plus avec (je ne parle pas de logiciels spécialisés).
Même s'il a raison, on a plus de place pour l'imagination :)
PS
J'aimerais aussi voir des exemples de moments différents, pas seulement des moyennes et des pyramides (je n'ai vu que ça, peut-être que je ne suis pas attentif).
J'ai procédé ainsi :
1.2 Volumes des positions de trading
Examinons les choses en détail : cela fait-il une différence de savoir quel ordre clôturer ? Cela n'affectera-t-il pas le profit ? Par exemple, nous avons deux ordres ouverts à des moments différents et clôturés à des moments différents, mais leur durée de vie se chevauche. En d'autres termes, essayons d'émuler une position commerciale dans le système de comptabilisation des ordres.
Calculons, à l'aide de variantes, ce qu'il adviendra du bénéfice si nous modifions les niveaux de clôture des ordres en fonction des places :
| type | volume | niveau d'ouverture | niveau de clôture |
|---|---|---|---|
| vendre | 0.1 | 1.39388 | 1.38438 |
| vendre | 0.1 | 1.38868 | 1.38149 |
Je voudrais ajouter quelques mots sur les DLL et les logiciels supplémentaires.
Pour l'instant, j'envisage une variante permettant de transmettre des signaux et d'échanger des informations à l'aide d'une DLL (avec la possibilité obligatoire de travailler avec des fichiers ini).
Et la tâche maximale que je vois (mon rêve de longue date) est de développer un serveur, dont la tâche principale sera de collecter et de traiter des informations provenant de différentes plates-formes (ce serait bien aussi de plusieurs clients).
Je suis d'accord, l'absence de minuterie est un bogue dans n'importe quel moult....
Et c'est une erreur de la part de l'auteur d'abandonner les bibliothèques, on peut faire beaucoup plus avec elles (je ne parle pas des logiciels spécialisés).
Même s'il a raison, nous avons plus de place pour l'imagination :)
PS
J'aimerais aussi voir des exemples de moments différents, pas seulement des moyennes et des pyramides (je n'ai vu que ça, peut-être que je ne suis pas attentif).
J'ai procédé ainsi :
1.2 Volumes des positions de trading
Examinons les choses en détail : cela fait-il une différence de savoir quel ordre clôturer ? Cela n'affectera-t-il pas le profit ? Par exemple, nous avons deux ordres ouverts à des moments différents et clôturés à des moments différents, mais leur durée de vie se chevauche. En d'autres termes, essayons d'émuler une position commerciale dans le système de comptabilisation des ordres.
Calculons, à l'aide de variantes, ce qu'il adviendra du bénéfice si nous modifions les niveaux de clôture des ordres en fonction des places :
| type | volume | niveau d'ouverture | niveau de clôture |
|---|---|---|---|
| vendre | 0.1 | 1.39388 | 1.38438 |
| vendre | 0.1 | 1.38868 | 1.38149 |
Le but de cet exemple est de montrer que le profit dépend de l'argent placé sur la prévision, dans des cas plus complexes ce sera la même chose (je ne voulais pas charger l'article avec un grand nombre d'exemples prouvant la même chose).
En ce qui concerne les bibliothèques, je ne suis pas contre les bibliothèques ex5, mais je ne veux pas utiliser de dlls car cela décourage l'utilisateur final.
Et vraiment, qui veut obtenir un cheval de Troie en même temps que l'achat. MQ essaie de s'en tenir à la sécurité dans sa politique.
Je m'en tiens donc à leur image, puisque l'absence de dll signifie que le code est sûr.
Article utile et pertinent, merci à l'auteur !
Une chose qui prête à confusion :
Pourquoi pas OnTrade()?
Idée intéressante, tout ce qui est envoyé au serveur sera certainement affiché dans OnTrade(). Mais il est seulement nécessaire de filtrer, de transférer dans le fichier non pas les requêtes, mais déjà les réponses du serveur concernant l'ordre exécuté.
Je n'ai pas pensé à cela.
L'essentiel de cet exemple est de montrer que le bénéfice dépend de l'argent placé sur la prévision, dans des cas plus complexes il sera le même (je ne voulais pas charger l'article avec un grand nombre d'exemples prouvant la même chose).
Ce sera la même chose seulement si vous adaptez les processus de trading de MT4 à MT5, sinon dans certaines situations il peut y avoir des différences (et assez significatives).
Il n'y aura que deux exemples : "flipping" et "trimming" (s'ils sont écrits de manière suffisamment compacte, ils ne prendront pas beaucoup de place).
Et je suis sûr que ce sont les retournements et les troncatures qui sont les aspects les plus "délicats" et les plus compliqués de ces systèmes.
Urain:
En ce qui concerne les bibliothèques, je ne suis pas contre les bibliothèques ex5, mais je ne veux pas utiliser de dlls parce que cela décourage l'utilisateur final.
Et vraiment, qui veut obtenir un cheval de Troie en même temps que l'achat. MQ essaie de s'en tenir à la sécurité dans sa politique.
Je ne fais donc qu'ajouter à leur image, tant qu'il n'y a pas de dll, le code est sûr.
En ce qui concerne les bibliothèques ex5, je suis d'accord (c'est peut-être une bonne solution de créer une bibliothèque de classes spécialisées), mais il y a un gros "mais" - la fonctionnalité des solutions basées uniquement sur MQL5 est nettement inférieure à toutes les possibilités offertes par les DLL.
Et le problème de la DLL est plus facile à résoudre qu'il n'y paraît pour beaucoup de gens, il y a deux options :
1. publier le code source de la bibliothèque
2. Fournir le code source à MQ pour qu'il le vérifie, compile la bibliothèque et la mette à la disposition du public.
PS
J'envisagerais également de synchroniser les informations sur les soldes des deux plateformes (si possible, bien sûr).
Il n'en va de même que si vous adaptez les processus de trading de MT4 à MT5, sinon, dans certaines situations, il peut y avoir des différences (et des différences assez importantes).
Il n'y aura que deux exemples : "flip" et "cut" (s'ils sont écrits de manière suffisamment compacte, ils ne prendront pas beaucoup de place).
Et je suis sûr que ce sont les retournements et les troncatures qui sont les aspects les plus "délicats" et les plus compliqués de ces systèmes.
En ce qui concerne les bibliothèques ex5, je suis d'accord (c'est peut-être une bonne solution de créer une bibliothèque de classes spécialisées), mais il y a un grand "mais" - la fonctionnalité des solutions basées uniquement sur MQL5 est nettement inférieure à toutes les possibilités offertes par DLL.
Et le problème de la DLL est plus facile à résoudre qu'il n'y paraît pour beaucoup de gens, il y a deux options :
1. publier le code source de la bibliothèque
2. Fournir le code source à MQ pour qu'il le vérifie, compile la bibliothèque et la mette à la disposition du public.
PS
J'envisagerais également de synchroniser les informations de bilan des deux plates-formes (si possible bien sûr).
Il n'y aura pas de différence ni au rollover ni au cutting, la différence n'apparaît que sur la différence des niveaux de cotation à l'instant présent et le décalage d'exécution.
Idéalement, si les cotations entre MTs sont égales et que le décalage est de 0, le trade rapportera le même profit.
Vous l'avez compris, le profit se fait en pariant. Si au même moment, sur les deux terminaux, sur les mêmes cotations, vous faites le même pari, vous obtiendrez le même profit.
Sur le dll, il est peu probable que MQ fouille dans chaque code tiers pour en vérifier la sécurité, et les compilateurs delphi ou srp, tout le monde n'en dispose pas. Vous pouvez poster le code d'une bible et remplacer le fichier compilé par un autre. Donc pour l'instant seulement ex5.
Idée intéressante, tout ce qui est envoyé au serveur sera certainement affiché dans OnTrade(). Mais il est seulement nécessaire de filtrer, de transférer dans le fichier non pas les requêtes, mais les réponses du serveur concernant l'ordre exécuté.
Je n'ai tout simplement pas pensé à cela.
En effet, OnTrade est un endroit idéal pour traiter les changements dans la liste des positions. Il suffit de l'initialiser pour que les transactions existantes soient copiées immédiatement au démarrage (et non au prochain événement de transaction).
Le filtrage des événements est très simple : il suffit de vérifier la liste des positions et de poursuivre le traitement uniquement si quelque chose a changé dans cette liste.
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Un nouvel article Comment copier le trading depuis MetaTrader 5 vers MetaTrader 4 a été publié :
Est-il possible de trader sur un vrai compte MetaTrader 5 aujourd'hui ? Comment organiser un tel trading ? L'article contient la théorie de ces questions et les codes de travail utilisés pour copier les trades depuis le terminal MetaTrader 5 vers MetaTrader 4. L'article sera utile à la fois pour les développeurs d'Expert Advisors et pour les traders pratiquants.
Figure 1. Variantes de fermeture d’ordre
La figure 1 montre que les zones AB et CD ont dans les deux versions des volumes égaux à 0,1, tandis que BC a un volume de 0,2, et cela ne dépend pas du fait que le volume des ordres est clôturé.
Dans les bénéfices des ordres individuels, nous avons des différences, mais le bénéfice total des positions est égal. Je veux attirer votre attention sur le fait que cet exemple a été calculé pour des volumes égaux d’ordres. C'est-à-dire qu'aux mêmes niveaux, nous avons mis en œuvre la clôture non pas d'un ordre, mais du même volume. Et, si nous adhérons strictement au principe de fermeture du volume, peu importe le volume d'une ordre. Si le volume de fermeture est supérieur au volume de l’ordre, il y aura une clôture partielle.
Auteur : Nikolay Demko