Discussion de l'article "Comment copier le trading depuis MetaTrader 5 vers MetaTrader 4" - page 2

[Supprimé]  
Urain:

Il n'y aura pas de différence ni à l'inversion ni à la coupe, 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, la transaction rapportera le même profit.


Ce n'est pas le cas pour toutes les stratégies de trading (comme il a été écrit ci-dessus, je veux dire si vous n'adaptez pas les méthodes de trading de MT4 à MT5).

Je ne parle pas des différences de résultats entre R2 et MT5 (mais Rumus est vraiment hors de la vie, nous n'en tiendrons pas compte).

Ceux qui veulent vraiment gérer le trading de MT4 avec MT5 devraient penser au processus inverse.

En même temps, il faut utiliser davantage dans la stratégie exactement les flips et les cuts (dans des conditions de multidevises).

Il serait également intéressant de synchroniser tous les processus de trading et les informations sur les soldes en fonction de l'heure GMT ou de l'heure locale des terminaux (s'ils se trouvent dans le même fuseau horaire).

PS

Il ne s'agit pas du "taux", ni même de la charge sur le dépôt. Il s'agit de savoir à quoi vous devrez renoncer et comment changer de stratégie.

La seule commodité dans ce sens est que tous les processus de trading MT4 peuvent être ajustés à netteng avec des résultats à 100%.

Bien sûr, un point important est que des phénomènes tels que le flipping et le cutting sont très rares dans la plupart des stratégies de trading.

Urain:

Sur dll, il est peu probable que MQ fouille dans chaque code tiers pour en vérifier la sécurité, et tout le monde n'a pas un compilateur delphi ou srp. Vous pouvez poster le code d'une bible et remplacer le fichier compilé par un autre. Donc, pour l'instant, seulement ex5.

Malheureusement, MQL5 ne fournira pas de sitôt au moins la moitié des possibilités que l'on peut obtenir à l'aide des DLL.

Une DLL qui vous permet de sortir du "bac à sable" et qui n'est pas très volumineuse peut être mise en œuvre dans de nombreux outils de développement.

En option, vous pouvez appliquer la bibliothèque MQL liée à WinAPI.

 
Interesting:

Pas pour toutes les stratégies de trading (comme il a été écrit plus haut, je veux dire si vous n'adaptez pas les méthodes de trading MT4 à MT5).

Je ne parle pas des différences dans les résultats de R2 et MT5 (mais Rumus est vraiment hors de la vie, nous n'en tiendrons pas compte).

Je lis cette déclaration pour la n-ième fois, et pour la n-ième fois je voudrais vous demander de citer au moins une séquence d'ordres/transactions dont le résultat financier changera lorsqu'elle sera transférée de MT5 à MT4 (ou vice versa). Ce n'est pas la liste des ordres/transactions dans l'historique qui changera, ce n'est pas l'affichage de la position ouverte actuelle qui sera différent, mais c'est le résultat financier qui changera.

Je soutiens que si les conditions de négociation sont identiques (cotations/spreads/swaps/leviers d'arrêt, etc.), le résultat sur MT5 sera identique ou meilleur que sur MT4 (meilleur - en raison des swaps, s'il y a 2 contre-positions sur MT4).


Oui, il est difficile d'organiser la prise en compte de toutes les nuances lors de la copie de transactions. Mais il s'agit là d'une autre tâche, qui n'a rien à voir avec la partie théorique de la question de la compensation.

 
komposter:

En effet, OnTrade est l'endroit idéal pour gérer les changements dans la liste des positions. Il suffit de s'assurer que les transactions existantes sont copiées immédiatement au démarrage (et non lors du prochain événement de transaction).

Le filtrage des événements est très simple : il s'agit de vérifier la liste des positions et de poursuivre le traitement uniquement si quelque chose a changé dans cette liste.

Je ne parle pas de ce filtrage, dans l'événement OnTrade apparaît non seulement la transaction exécutée, mais aussi l'ordre passé, et ce dernier ne sera pas nécessairement mis en œuvre.
 
Urain:
Je ne parle pas de ce filtrage, dans OnTrade l'événement apparaît non seulement à propos de la transaction exécutée, mais aussi à propos de l'ordre passé, et celui-ci, à son tour, ne sera pas nécessairement mis en œuvre.
C'est ce dont nous parlons - vous n'avez pas besoin de réagir au placement/à l'annulation/à l'exécution des ordres. Pour ce faire, vous devez vérifier si la position a changé.
 

Bonne idée. J'ai essayé de le faire il y a longtemps mais ça n'a pas marché, et là j'ai regardé ce qui était mon erreur.


A l'auteur RESPECT. ! !!

 
komposter:
C'est de cela qu'il s'agit : vous ne devez pas réagir aux ordres de placement/annulation/exécution. Pour ce faire, vous devez vérifier si la position a changé.

Alors, faites une copie de OnTimer et renommez-la comme ceci :

void OnTimers()
  {
//--- obtenir la position 
   get_positions();
//--- si les positions ne sont pas égales, enregistrer les nouvelles données
   if(compare_positions())saves_positions();
  }
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- obtenir la position 
   get_positions();
//--- si les positions ne sont pas égales, enregistrer les nouvelles données
   if(compare_positions())saves_positions();
  }

//EventKillTimer() et commentez la destruction de la minuterie dans OnDeinit ;

et dans OnInit au lieu de EventSetTimer(1) ; mettre

OnTimers();

ZY a en fait fait tout le travail, mais je ne pourrai le vérifier que lundi.

 
Urain:

Eh bien, faites une copie de OnTimer et renommez-la comme ceci :

Voilà, c'est simple ;)


Urain:

et dans OnInit au lieu de EventSetTimer(1); ; put

Et c'est ce dont j'essayais de vous avertir - si l'initialisation "échoue" (par exemple, lors du démarrage du terminal, les données ne seront pas chargées à temps), le copieur "dormira" jusqu'au prochain événement commercial. Dans ce cas, nous devrions fournir soit une boucle infinie, soit le même minuteur, qui fonctionnera jusqu'à ce que l'initialisation réussisse.

 
Urain:

En ce qui concerne les bibliothèques, je ne suis pas contre les bibliothèques ex5, mais je ne veux pas utiliser de dll car cela décourage l'utilisateur final.

Et installer une copie supplémentaire de MT4 n'est pas non plus très pratique pour l'utilisateur final ;-). Il est très probable que l'utilisateur ait déjà installé MT4 depuis longtemps, et pas du tout dans les fichiers MT5. Peut-être devrions-nous recommander l'utilisation de subst comme une astuce ?
 
marketeer:
L'installation d'une copie supplémentaire de MT4 n'est pas non plus très pratique pour l'utilisateur final ;-). Il est très probable que l'utilisateur ait déjà installé MT4 depuis longtemps, et pas du tout dans les fichiers de MT5. Peut-être devriez-vous recommander d'utiliser subst comme une astuce ?
J'ai eu une idée similaire. Mais subst a quelques pièges (au moins sous XP) : l'accès au disque physique(\\NPYSICALDRIVEx) cesse de fonctionner.
 
marketeer:
L'installation d'une copie supplémentaire de MT4 n'est pas non plus très pratique pour l'utilisateur final ;-). Il est très probable que l'utilisateur ait déjà installé MT4 depuis longtemps, et pas du tout dans les fichiers MT5. Peut-être devriez-vous recommander d'utiliser subst comme une astuce ?

Je n'avais pas l'intention d'écrire un article sur les canaux de transmission des signaux, j'ai trouvé la solution la plus simple et la plus compréhensible.

Je pense que la transmission de signaux est le sujet d'un article séparé.

En ce qui concerne le fait qu'il n'est pas très pratique de mettre un deuxième MT ici, je pense que vous vous trompez, d'après ce que je sais et la correspondance personnelle, de nombreux utilisateurs gardent sur la machine jusqu'à une douzaine de MT, sans aucun problème. En outre, MT4 peut être facilement transféré par simple copie. De plus, mon code n'a pas de protection magik, il ne sera donc pas possible d'utiliser le compte simultanément par copie et manuellement.