Discussion de l'article "Un Gestionnaire de Commande Virtuelle pour suivre les commandes dans l'environnement MetaTrader 5 axé sur la position" - page 5

 
Alain Verleyen:
Cette bibliothèque est aujourd'hui pratiquement obsolète car MT5 propose des comptes de couverture. Vous pouvez toujours l'utiliser sur un compte de compensation, mais cela en vaut-il vraiment la peine ?

Mon ea est un type de grille en expansion opérant sur un seul symbole, j'ai donc besoin de suivre chaque trade ou niveau de grille individuellement afin de savoir où ouvrir le niveau suivant. Sur MT4, j'ai fait cela en regardant la liste des trades ouverts et en les utilisant pour calculer la position où je dois ouvrir le trade suivant dans la grille. Sur MT5, je trouve qu'il déverse tous les trades dans une seule grande position, ce qui tue complètement cette méthode.Par exemple, je ne peux pas avoir deux transactions d'achat ouvertes sur MT5, car il les combine en une seule position. Comment puis-je calculer où se situera le niveau six d'une grille d'achat si je ne sais pas où se situent les niveaux un à cinq ? J'espère que vous voyez ce que je veux dire. Cette bibliothèque est le seul moyen que j'ai trouvé pour contourner ce problème. Sur MT4, j'utilise également des numéros magiques uniques sur chaque transaction pour identifier chaque niveau de la grille. Sur MT5, j'ai découvert que je ne pouvais pas non plus définir des numéros magiques uniques, je vais donc les stocker sur le disque à la place. S'il existe une meilleure façon de gérer les niveaux de grille comme ceci sur MT5, je suis impatient d'apprendre.

L'ea fait environ 6000 lignes, donc je n'ai pas trop envie de le réécrire. J'ai passé la majeure partie de 2 semaines à le faire compiler correctement sur MT5, et je suis sûr qu'il fonctionnera bien une fois que j'aurai changé le stockage des nombres magiques sur le disque au lieu du serveur du broker.

Sur une note positive, j'ai trouvé comment corriger les erreurs dans la bibliothèque VOM, donc j'espère que cela aidera quelqu'un. En utilisant la version 2 de la bibliothèque, vous devez changer la ligne 855 du fichier virtualordermanager.mqh de :

MtRequest.type_filling=ORDER_FILLING_FOK;

à

MtRequest.type_filling=SYMBOL_FILLING_FOK;

Ensuite, les transactions s'ouvriront correctement, sans erreur.

 
kenshin71:

Mon ea est un type de grille en expansion opérant sur un seul symbole, j'ai donc besoin de suivre chaque trade ou niveau de grille individuellement afin de savoir où ouvrir le niveau suivant. Sur MT4, j'ai fait cela en regardant la liste des trades ouverts et en les utilisant pour calculer la position où je dois ouvrir le trade suivant dans la grille. Sur MT5, je trouve qu'il déverse tous les trades dans une seule grande position, ce qui tue complètement cette méthode.Par exemple, je ne peux pas avoir deux transactions d'achat ouvertes sur MT5, car il les combine en une seule position. Comment puis-je calculer où se situera le niveau six d'une grille d'achat si je ne sais pas où se situent les niveaux un à cinq ? J'espère que vous voyez ce que je veux dire. Cette bibliothèque est le seul moyen que j'ai trouvé pour contourner ce problème. Sur MT4, j'utilise également des numéros magiques uniques sur chaque transaction pour identifier chaque niveau de la grille. Sur MT5, j'ai constaté que je ne pouvais pas non plus définir de numéros magiques uniques, et je vais donc les stocker sur disque. S'il existe une meilleure façon de gérer les niveaux de grille sur MT5, je suis impatient d'en savoir plus.

L'ea fait environ 6000 lignes, donc je n'ai pas trop envie de le réécrire. J'ai passé la majeure partie de 2 semaines à le faire compiler correctement sur MT5, et je suis sûr qu'il fonctionnera bien une fois que j'aurai changé le stockage des nombres magiques sur le disque plutôt que sur le serveur du broker.

Sur une note positive, j'ai trouvé comment corriger les erreurs dans la bibliothèque VOM, donc j'espère que cela aidera quelqu'un. En utilisant la version 2 de la bibliothèque, vous devez changer la ligne 855 du fichier virtualordermanager.mqh de :

à

Ensuite, il ouvrira les transactions correctement, sans erreur.

C'est pourquoi je vous ai dit qu'il existe maintenant un compte de couverture, que vous devriez utiliser puisque vous négociez apparemment sur le Forex. Le compte que vous décrivez est un compte de compensation.
 
Merci Alain, je vois ce que tu veux dire maintenant. Je m'excuse de ne pas avoir prêté plus d'attention à ce que tu as dit sur le hedging en premier. Cela me rendait fou d'essayer de faire fonctionner ce VOM ainsi que tous les autres changements nécessaires pour faire fonctionner mon ea sous MT5. Je pense que je vais faire une pause et revenir quand j'aurai dormi un peu.Je pense que je vais devoir écrire une version spécifique de l'ea pour MT5 à partir de zéro. Jusqu'à présent, j'ai essayé de faire une version qui fonctionne sous MT4 et MT5 en utilisant la compilation conditionnelle, mais cette idée ne fonctionne pas aussi proprement que je le souhaiterais. Merci encore de m'avoir orienté dans la bonne direction.
 
Alain Verleyen:
Cette bibliothèque est aujourd'hui pratiquement obsolète car MT5 propose des comptes de couverture. Vous pouvez toujours l'utiliser sur un compte de compensation, mais cela en vaut-il vraiment la peine ?

Je ne sais pas si c'est le cas, mais c'est une chose courante dans le développement d'un logiciel.

 
kenshin71:
Merci Alain, je vois ce que tu veux dire maintenant. Je m'excuse de ne pas avoir prêté plus d'attention à ce que tu as dit sur le hedging en premier. Cela me rendait fou d'essayer de faire fonctionner ce VOM ainsi que tous les autres changements nécessaires pour faire fonctionner mon ea sous MT5. Je pense que je vais faire une pause et revenir quand j'aurai dormi un peu.Je pense que je vais devoir écrire une version spécifique de l'ea pour MT5 à partir de zéro. Jusqu'à présent, j'ai essayé de faire une version qui fonctionne sous MT4 et MT5 en utilisant la compilation conditionnelle, mais cette idée ne fonctionne pas aussi proprement que je le voudrais. Merci encore de m'avoir orienté dans la bonne direction.
Avez-vous réussi à faire fonctionner cela ? J'aimerais reprendre le sujet là où vous l'avez laissé, si vous êtes d'accord pour partager les corrections que vous avez dû faire. Malheureusement, j'ai besoin d'utiliser un compte MT5 netting et d'utiliser VOM pour la couverture virtuelle.