Comment vérifier si une commande est sélectionnée - page 11

 
tara:
Cela rendrait-il les choses plus faciles si je disais que c'est le cas ?)
Je ne sais pas si ça devient plus facile ou non, mais ils m'ont pris dès ma première année, telle était l'époque, sinon je n'aurais jamais servi !
 
Ant_TL:

Yep. Juste là :

int li_LastTicket = OrderTicket() ;

Votre code générera une erreur d'exécution 4105 s'il n'y a pas eu d'appel à OrderSelect avant qu'il ne soit effectué. Il suffit de mettre une vérification GetLastError à la fin de chaque tick et vous trouverez cette erreur.

Dans mon code, cette erreur ne se produira pas, car cette fonction est appelée APRÈS OrderSelect(). Ce contrôle est hérité de l'époque où les codes étaient écrits sans une structure commune de toutes les fonctions exécutables de l'EA.

En outre, la plupart de mes fonctions contiennent des fonctions de gestion des erreurs et je fais très attention à les éviter. Et il existe également un certain nombre de fonctions qui génèrent une erreur, comme la réponse que vous recherchiez :"Ordre sélectionné plus tôt, ou non ?"

P.S. A propos, je me suis souvenu d'une particularité (qui peut être utile à quelqu'un) du travail avec les fonctions OrderSelect() des bibliothèques compilées : nous avons sélectionné une commande (comment - pas principalement), OrderTicket() - renvoie le numéro de la commande sélectionnée. Mais si nous voulons obtenir les propriétés de cet ordre sélectionné à partir de la fonction qui se trouve dans la bibliothèque compilée, nous n'obtiendrons rien. Nous devons sélectionner cet ordre à nouveau (encore).

 
borilunad:
Je ne sais pas si c'est plus facile ou non, mais ils m'ont pris dès ma première année, telle était l'époque, sinon je n'aurais jamais servi !
J'ai aimé :)
 
Le ticket et le magik ne sont plus des identifiants ? Ou est-il de principe de travailler avec deux ou trois commandes à la fois ? Il y a des tableaux, il y a des fonctions qui traitent et mettent à jour ces tableaux. Ou est-ce une question de principe que de ne pas se laisser entraîner dans l'erreur ? Donc, ne faites pas d'erreurs. Mais ne vous plaignez pas que des sélections de commandes excessives ralentissent les tests. Chaque chose a son temps et sa place. Lorsque vous passez d'une fonction à une autre, soyez a priori sûr que vous devrez sélectionner à nouveau l'ordre et stocker les données de traitement de la fonction précédente dans un tableau.
 
TarasBY: Si nous voulons récupérer les propriétés de cet ordre sélectionné à partir d'une fonction de la bibliothèque compilée, celle-ci ne fera RIEN. Nous devons à nouveau sélectionner cet ordre (tout recommencer).
Ceci est dû au fait que MQL4 n'est pas un compilateur, mais un interprète. Les fonctions de la bibliothèque sont jointes au fur et à mesure :)
 
grell:
Le ticket et le magik ne sont plus des identifiants ? Ou est-il de principe de travailler avec deux ou trois commandes à la fois ? Il y a des tableaux, il y a des fonctions qui traitent et mettent à jour ces tableaux. Ou est-ce une question de principe que de ne pas se laisser entraîner dans l'erreur ? Donc, ne faites pas d'erreurs. Mais ne vous plaignez pas que des sélections de commandes excessives ralentissent les tests. Chaque chose a son temps et sa place. Lorsque vous passez d'une fonction à une autre, soyez a priori sûr que vous devrez sélectionner à nouveau l'ordre, tout en stockant les données de traitement de la fonction précédente dans un tableau.
Dmitry, même sans quitter les limites d'une fonction, vous ne pouvez pas être sûr que le signe de sélection de l'ordre ne changera pas.
 
tara:
J'ai aimé :)
Probablement comme "le fromage dans le beurre... ? L'armée devrait être professionnelle, car elle nécessite une formation spéciale, et on nous a abreuvés de plus de politique ! L'armée doit servir la patrie, le peuple, et non le parti au pouvoir !
 
Non, pas comme le fromage dans le beurre, mais j'ai fait ma part de service en tant que lieutenant-colonel. Désolé si je vous ai offensé :(
 
tara:
Dimitri, même sans quitter les limites d'une fonction, vous ne pouvez pas être sûr que le signe de sélection des ordres ne changera pas.


C'est ce que je veux dire. Mes fonctions n'ont pas d'universalité, chacun s'occupe strictement de ses propres affaires. Même l'achat et la vente sont séparés. Slosewall ne quitte pas la fonction avant que l'ordre entier ne soit exécuté. Alors, que les numéros de commande changent, que les arrêts se déplacent, mais le billet et le magicien resteront.
 
Je n'espère même pas que toutes les données de la commande soient sauvegardées lorsque la fonction est appelée. Par conséquent, il n'y a aucun espoir pour cela dans aucune fonction.
Raison: