Discussion de l'article "Traitement des événements de trade dans Expert Advisor à l'aide de la fonction OnTrade()" - page 2

 

Je veux dire : OnTrade( )

devrait être OnTrade( id, para1,para2.....)

 

Quelqu'un pourrait-il améliorer le code donné dans l'article pour traiter l'événement de fermeture d'une position par stop loss ou take profit ?

S'est-il avéré inutile au cours des 2,5 dernières années depuis la publication de l'article ?

 
  • Positions
    1. Ouvrir
    2. Ajouter
    3. Modifier (changer "Stop Loss" et "Take Profit")
    4. Inverser
    5. Clôturer toute la position
    6. Clôturer une partie de la position
  • Ordre en attente
    1. Placer
    2. Modifier

Il est recommandé de traduire https://www.mql5.com/en/articles/211 Orders, Positions and Deals dans MetaTrader 5.

Tout d'abord, vous devez trouver lequel des 6+2 ci-dessus correspond aux Ordres, Positions et Deals !

Orders, Positions and Deals in MetaTrader 5
Orders, Positions and Deals in MetaTrader 5
  • 2011.02.01
  • MetaQuotes Software Corp.
  • www.mql5.com
Creating a robust trading robot cannot be done without an understanding of the mechanisms of the MetaTrader 5 trading system. The client terminal receives the information about the positions, orders, and deals from the trading server. To handle this data properly using the MQL5, it's necessary to have a good understanding of the interaction between the MQL5-program and the client terminal.
 
Pour MQL4, à quoi pensez-vous qui serait similaire à OnTrade ?
 
Serhiy Dotsenko:
Pour MQL4, qu'est-ce qui pourrait être similaire à OnTrade ?

Vérifier à chaque tick OrdersTotal() et OrdersHistoryTotal() - si le chiffre a changé - appeler OnTrade().

 
Merci, je suis également arrivé à quelque chose de similaire ) Je pensais qu'il y avait quelque chose d'exactement événementiel ) car il sera possible de réagir à l'ontrade manuel seulement sur le 2ème tick )
 

Bonjour ,


Merci d'avoir écrit cet article... Je me suis un peu amusé avec votre code. Mais au début, j'ai le problème de base, c'est-à-dire que je travaille avec des positions. C'est à dire :

Mon EA fixe un ordre d'achat dans le backtest et la fonction Ontrade est appelée plusieurs fois comme décrit. Mais votre code ne vérifie que le total des ordres. Ce qui est étrange, c'est que le résultat de cette fonction est toujours 0. Après avoir placé mon ordre, je n'ai qu'une position d'achat, ce qui n'est pas géré par votre code, n'est-ce pas ?

Qu'est-ce qui ne va pas ici ?

 
Serhiy Dotsenko:
Pour MQL4, à quoi pouvez-vous penser qui serait similaire à OnTrade ?
Générer OnChartEvent() avant d'effectuer une opération de trading, et essayer d'obtenir le résultat de l'opération de trade.... Et vous pouvez penser à un type, selon lequel OnChartEvent() devrait être appelé le nombre de fois nécessaire...
 
Denis Kirichenko:
Générer OnChartEvent() avant d'effectuer une opération de trading, et essayer d'obtenir le résultat de l'opération de trade.... Et vous pouvez penser à un type, selon lequel OnChartEvent() doit être appelé le nombre de fois nécessaire...

S'il n'y a pas d'éléments graphiques, pourquoi avons-nous besoin d'une telle variante ? À mon avis, c'est inutile...

 
Merci pour l'article, bien sûr. Il m'a fait gagner du temps. Parce que je n'ai pas eu à chercher quelque part à propos de ces événements. Il n'y a aucune information dans l'aide, et écrire constamment à l'assistance prend aussi du temps. C'est pourquoi l'article est pertinent. Mais le code est étriqué, pour être honnête. J'ai dû le transférer à moi-même et le ramener à une forme normale. Ensuite, j'ai dû y réfléchir.