Questions des débutants MQL5 MT5 MetaTrader 5 - page 1052

 
Igor Makanu:

alternativement ouvrirhttps://www.mql5.com/ru/code/16006

et regardez l'implémentation de @fxsaber

ou connectez simplement la bibliothèque ci-dessus et transférez le code de MT4 à MT5, dans 99% des cas, vous n'aurez pas à modifier quoi que ce soit, tout fonctionnera de la même manière que dans MT4.

Et ne laissez pas le savoir se perdre...
 
Artyom Trishkin:
Et que les connaissances ne s'additionnent pas...

des connaissances ? ce ne sont pas des connaissances dont on a besoin pour développer un TS ou un trader !

Vous n'écrivez pas un pilote pour vous-même pour contrôler votre disque dur --> API --> votre programme, n'est-ce pas ? Vous utilisez simplement les capacités de la plate-forme et du langage de programmation et rien de plus - en 2 clics (quelques lignes) vous obtenez

C'est un fait que MQL5 a une manière fastidieuse et ennuyeuse de traiter les commandes,

je n'ai aucune idée de la façon d'ouvrir un ordre, de vérifier son statut, de connaître le prix et l'heure de clôture (je connais CTrade, j'ai partiellement ouvert le code source) - ce sont des choses élémentaires qu'une plateforme de trading devrait faire en 2 clics et cela ne devrait pas poser de problèmes.

SZZY : cela fait 5 ans que MQL5 a ajouté iTime(), IClose() .... c'est la suite, une plateforme de trading qui ne peut ni accéder à l'historique d'un instrument ni passer des ordres en 2 clics, la première année, toute la kodobase a été inondée de "mises en œuvre miraculeuses" de la façon de lire l'historique d'un instrument de trading en 2 clics..... OK, c'est un sujet banal.

 
Igor Makanu:

des connaissances ? ce ne sont pas des connaissances nécessaires pour développer un TS ou pour un trader !

Exactement. Vous n'avez pas besoin de ces connaissances pour développer une stratégie ou en tant que trader. De même, la connaissance de mql4 n'est pas nécessaire.

C'est ce dont le programmeur a besoin. Et seulement s'il veut comprendre ce qu'il fait et peut vérifier le résultat obtenu par rapport au résultat attendu.

Il n'y a pas si longtemps, j'ai dû modifier l'EA de quelqu'un d'autre : selon les TOR, une position doit être fermée au seuil de rentabilité à un certain moment. En fait, le conseiller expert a ouvert une position, l'a fermée immédiatement et en a établi une nouvelle, qu'il a fermée selon les règles.

Après avoir observé ce gâchis pendant quelques heures, j'ai proposé d'écrire mon conseiller expert à partir de zéro. Ce n'était pas votre conseiller expert ?

 
Alexey Viktorov:

Après avoir observé ce gâchis pendant quelques heures, j'ai proposé d'écrire mon conseiller expert à partir de zéro. Ce n'était pas votre conseiller expert ?

Définitivement le mien ! ))))) - Je maintiens mes codes pendant au moins un mois, mais en général, tout fonctionne bien du premier coup, bien qu'il puisse y avoir quelques divergences dans les TDR, mais ce n'est pas une soumission, c'est un travail en cours. Je modifie souvent le code d'autres personnes, mais c'est une autre histoire, cela prend beaucoup de temps et le résultat est inconnu - prévenez-moi à ce sujet.

Si la programmation de bas niveau vous fascine, pour ainsi dire "creuser dans les petits boyaux" - allez-y, il existe une bibliothèque standard CTrade des développeurs, elle devrait faire le minimum requis pour l'utilisateur

 
Igor Makanu:

Définitivement le mien ! ))))) - Je maintiens mes codes pendant au moins un mois, mais en général, tout fonctionne bien du premier coup, bien qu'il puisse y avoir quelques divergences dans les TDR, mais ce n'est pas une soumission, c'est un travail en cours. Je modifie souvent le code d'autres personnes, mais c'est une autre histoire, cela prend beaucoup de temps et le résultat est inconnu - prévenez-moi à ce sujet.

Si la programmation de bas niveau vous fascine, pour ainsi dire "creuser dans les petits boyaux" - allez-y, il existe une bibliothèque standard CTrade des développeurs, elle devrait faire le minimum requis pour l'utilisateur

Le propriétaire de ce code miracle, ainsi que son auteur, ne connaissaient pas la subtilité de l'ouverture puis de la fermeture de la position. C'est pourquoi il n'y a pas de réclamations.

En général, je suis d'accord avec vous. Certains développeurs n'attrapent pas du tout les souris. Puis ils créent délibérément des bugs, selon les déclarations d'un personnage, il est torturé pour attraper ces bugs. Maintenant, ils ne feront pas une seule commande comme "tondre l'argent". Vous n'avez pas besoin de connaître la programmation. "Ce n'est pas l'affaire du roi de s'occuper de ***. Je vais commander et ***" c'est à ça que tu ressembles.

 
Alexey Viktorov: Le propriétaire de ce code miracle ainsi que son auteur n'étaient pas conscients de la subtilité de l'ouverture puis de la fermeture de la position. Je suis d'accord avec vous. Ils n'attrapent pas du tout les souris. Ils créent délibérément des insectes, mais ils sont fatigués de les attraper, comme l'a dit un personnage. Maintenant, ils ne feront pas une seule commande comme "tondre l'argent". Vous n'avez pas besoin de connaître la programmation. "Ce n'est pas l'affaire du roi de s'occuper de ***. Je vais commander et ***" c'est à ça que tu ressembles.

Si je comprends bien, nous parlons d'un code dans MQL5 ? - Je n'ai pas écrit de code public dans ce langage, je n'utilise que des solutions toutes faites.

Eh bien, à propos de vos performances - tous les langages sont toujours "mis à jour" avec des bibliothèques, les développeurs de ces bibliothèques sont souvent de simples programmeurs-utilisateurs, mais cela n'empêche pas ces bibliothèques d'être populaires et faites avec une très grande qualité, si vous parvenez à sortir du bac à sable MQL - allez faire un tour sur GitHub, j'ai toujours trouvé des bibliothèques prêtes à l'emploi pour C# qui font gagner du temps pour le développement

 
Vladimir Karputov:

Il n'y a pas d'analogie directe. Une position est constituée de transactions. Si vous voulez des données de position précises, vous devez d'abord reconstituer la position à partir de l'historique des transactions.

Il est donc préférable de travailler avec le concept de "deal".

En général, la mise en œuvre dépend beaucoup de la réponse à la question : "Pourquoi ?". C'est-à-dire qu'il faut d'abord décrire exactement ce que vous voulez et pourquoi.

Pour obtenir le bénéfice de la transaction en pips. Dans MT4, cela se passait comme suit :

( OrderClosePrice() - OrderOpenPrice() )/Point;
 
secret:

Obtenez le bénéfice de la transaction en pips. Dans MT4, cela se passait comme suit :

Vous ne pouvez pas réaliser un bénéfice sur une transaction. Un échange peut l'être :

ENUM_DEAL_TYPE-Type de commerce

ENUM_DEAL_TYPE

Identifiant

Description

DEAL_TYPE_BUY

Acheter

DEAL_TYPE_SELLVendez

***


Vous devez obtenir des informations sur une position fermée (une position complète se compose d'au moins deux transactions : entrée et sortie). Pour ce faire :

  • assembler la position à partir de l'historique des transactions et vérifier son exhaustivité (je vous rappelle que la position peut être assemblée à partir des transactions) - utiliser la propriété DEAL_POSITION_ID des transactions.
Le mot de contrôle ici est "Collecter la position à partir de l'historique des transactions et vérifier son exhaustivité".
 
Vladimir Karputov:

Je vois. Merci) Terminologie très étrange dans MT5.

Je me demande pourquoi les développeurs n'ont pas fait des propriétés de position prêtes à l'emploi dans l'histoire. Ils l'ont fait dans MT4.

 
secret:

Je vois. Merci) Terminologie très étrange dans MT5.

Je me demande pourquoi les développeurs n'ont pas fait de propriétés de position prêtes à l'emploi dans l'histoire. Ils l'ont fait dans MT4.

C'est très bien qu'ils l'aient fait. Il est possible d'accéder à l'historique complet de tout changement de position. Dans le 4, tout est empilé dans un ordre. Et un mandat est juste un ordre d'exécution. En revanche, en cinq, c'est une position d'ordre de vente.