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
Le premier EA se rend compte qu'après son OrderSend l'historique n'est pas encore synchronisé. Il attend juste l'événement de la synchronisation.
Mais comment le deuxième conseiller expert comprend-il que l'historique est synchronisé ou pas encore ?
Le premier EA se rend compte qu'après son OrderSend l'historique n'est pas encore synchronisé. Il attend juste l'événement de la synchronisation.
Mais comment le deuxième conseiller expert comprend-il que l'historique est synchronisé ou pas encore ?
Oubliez l'histoire. Essayez d'étudier le comportement de la fonction OnTradeTransaction().
Le premier Expert Advisor a pris une position et cet événement est traité dans OnTradeTransaction où le mauvais ordre est activé... Cet événement est également traité dans OnTradeTransaction.
Le deuxième conseiller expert élimine également les ordres, les positions et les transactions qui ne sont pas les siens.
J'ai 2 EAs qui fonctionnent sur des comptes réels. Dans l'un d'entre eux, le magicien des positions attribue un ticket à la position à laquelle il doit être attaché. Et vous comprenez vous-même que ce ne sont pas deux magiciens différents...
Je crois que vous vous appelez Victor ? Commencez à définir deux positions avec des mages différents dans le débogage et suivez leurs structures dans OnTradeTransaction.
Oubliez l'histoire. Essayez d'étudier le comportement de la fonction OnTradeTransaction().
Le premier Expert Advisor a placé une position, OnTradeTransaction gère cet événement, les "pas à eux" sont triés, l'ordre est activé... OnTradeTransaction gère également cet événement.
Le deuxième conseiller expert élimine également les ordres, les positions et les transactions qui ne sont pas les siens.
J'ai 2 EAs qui fonctionnent sur des comptes réels. Dans l'un d'entre eux, le magicien des positions attribue un ticket à la position à laquelle il doit être attaché. Et vous comprenez vous-même que ce ne sont pas deux magiciens différents...
Je crois que vous vous appelez Victor ? Commencez à définir deux positions avec des mages différents dans le débogage et suivez leurs structures dans OnTradeTransaction.
Si vous regardez attentivement mes logs, vous pouvez voir
que le ticket est reçu plus rapidement que le déclenchement de OnTradeTransaction, donc
le ticket de commande sera suffisant.
Bien que, bien sûr, (dans ce cas) il est préférable d'utiliser Magik.
Et (mieux encore) utilisez OrderSendAsync - il n'y a aucune erreur, ni sur le FOREX, ni sur le FORTS.
Si vous regardez attentivement mes journaux, vous pouvez voir,
que le ticket est reçu plus rapidement que la transaction OnTradeTransaction, donc
le ticket de commande sera suffisant.
Bien que, bien sûr (dans ce cas), il serait préférable d'utiliser Magicien.
Et (pour l'instant) il est préférable d'utiliser OrderSendAsync - il n'y a pas d'erreurs, ni sur le FOREX, ni sur le FORTS.
C'est peut-être le cas. Mais que se passe-t-il si l'ordre en attente est activé ? Devons-nous analyser l'histoire ? Un autre problème avec la vitesse de synchronisation de l'environnement ?
En somme, c'est un jeu d'amateurs. L'essentiel est de le faire fonctionner, de ne pas trop ralentir et d'éviter...
Oubliez l'histoire. Essayez d'étudier le comportement de OnTradeTransaction()
Comment fonctionne le second lors d'un historique non synchronisé ?
Ce problème ne touche pas seulement MT5, mais aussi le quadruple.
Comment fonctionne le second lors d'un historique non synchronisé ?
Ce problème n'affecte pas seulement MT5 mais aussi le quadruple.
Je suis de plus en plus certain que votre nom est Victor. Je ne dirai à personne ton ancien surnom.
Vous avez maîtrisé la programmation à un niveau supérieur à la moyenne en peu de temps, à mon avis, même supérieur à la moyenne. Mais il est très difficile de vous faire quitter votre position erronée. Et maintenant que votre niveau de connaissances en programmation est supérieur au mien, je ne vais même pas essayer.
Oubliez l'histoire, voyez les structures de la fonction OnTradeTransaction.
Essayez d'expliquer en mots, comment déterminez-vous dans mql5 qu'un ordre en attente est activé ?
Je suis de plus en plus certain que votre nom est Victor. Je ne dirai à personne ton ancien surnom.
Vous avez maîtrisé la programmation en peu de temps...
Si vous regardez attentivement mes journaux, vous pouvez voir,
que le ticket est reçu plus rapidement que la OnTradeTransaction, donc
le ticket de commande sera suffisant.
Bien que, bien sûr (dans ce cas), il serait préférable d'utiliser Magicien.
Et (pour le moment) il est préférable d'utiliser OrderSendAsync - il n'y a pas d'erreurs, ni sur le FOREX, ni sur le FORTS.
OrderSend() est une fonction absolument synchrone - si un ticket est reçu, tout est exécuté.
Voici un exemple
Ajouté, et voici les logs
https://www.mql5.com/ru/forum/38456/page85#comment_2888263
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Comment puis-je connaître ma commission sans ouvrir une position sur un symbole ?
fxsaber, 2016.11.08 20:30
void OnStart()
{
const int Ticket = OrderSend(_Symbol, OP_BUY, 1, SymbolInfoDouble(_Symbol, SYMBOL_ASK), 0, 0, 0);
OrderClose(Ticket, 0.3, SymbolInfoDouble(_Symbol, SYMBOL_BID), 0, clrNONE);
Sleep(1000); // ждем обновления истории
if (OrderSelect(Ticket, SELECT_BY_TICKET))
Alert(OrderCommission());
}
Je suppose que cet exemple est illustratif.
Si vous ne faites pas Sleep, vous obtenez souvent une situation où l'historique n'a pas eu le temps de se mettre à jour après OrderClose et OrderCommission renvoie une valeur comme si OrderClose n'avait pas été fait.
Notez qu'il s'agit d'un script et qu'il ne peut y avoir d'Event-over. La seule façon de s'en sortir est un sommeil stupide.
Si vous réécrivez ce script avec SB, rien ne changera.