[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 563

 
essayez d'effectuer une opération non valide, par exemple en divisant par 0.
 
sergeev:
essayez d'effectuer une opération non valide, par exemple en divisant par 0.
absurde.
 
ditrader:
absurde.

absurde.
 
sss2019:

Dites-moi pourquoi il peut y avoir une erreur 130

ticket1 = OrderSend(Symbol(),OP_BUYLIMIT,Lot,Level,Slippage,0,0,0,MagicNumber,0,Green);

Niveau définitif. Vérifiez l'exactitude du prix et sa normalisation.

Pour une limite d'achat, le niveau doit être inférieur au cours vendeur, et à une distance qui ne soit pas inférieure au niveau stop de votre société de courtage.

C'est-à-dire que si (Ask - StopLevel*Point < Level) Level = NormalizeDouble(Ask - StopLevel*Point, Digits);

Leniveau doit être normalisé en chiffres avant de le passer comme paramètre à OrderSend();

 
takeda:

Comment mettre fin à un conseiller expert de manière programmatique - quelque chose comme terminate(0) ?

MQL4 dispose-t-il d'une telle possibilité, ou est-il seulement possible de mettre fin à un conseiller expert manuellement ?

Merci d'avance.


Fermez votre fenêtre, donnez-vous la commande de supprimer...

PostMessageA(WindowHandle(Symbol(),Period()), WM_COMMAND, 33050, 0);
 
FAQ:


Fermez votre fenêtre, donnez-vous l'ordre de la supprimer...


C'est aussi de travers.

Tout d'abord, la fenêtre du graphique se ferme (et il peut y avoir des indicateurs utiles à ce moment-là).

Deuxièmement, que se passe-t-il si plusieurs fenêtres avec la même période sont ouvertes pour un symbole ? La fenêtre dans laquelle le conseiller expert a été lancé se fermera-t-elle ?

 
J'ai donné un exemple de commande pour me supprimer en tant qu'EA. Vous pouvez fermer votre fenêtre, et seule la fenêtre sur laquelle se trouve l'exp sera fermée. Mais c'est un autre code.
 
takeda:

Comment mettre fin à un conseiller expert de manière programmatique - quelque chose comme terminate(0) ?

MQL4 dispose-t-il d'une telle possibilité, ou est-il seulement possible de mettre fin à un conseiller expert manuellement ?

Merci beaucoup.


D'où le dessin de votre variante : "programmatiquement" :

"La fin de la session en cours de la fonction spéciale start() pour les programmes de toutes sortes peut être due à Il est possible de mettre fin au programme à partir d'un graphique, du changement d'un symbole et/ou d'une période graphique, d'un changement de compte, de la fermeture d'un graphique ou à la suite de la fermeture du terminal client. Si la fonction spéciale start() était en cours d'exécution lorsque la commande exit a été donnée, le temps alloué par le terminal pour terminer la fonction est de 2,5 secondes. Si la fonction spéciale start() continue à s'exécuter plus longtemps que le temps spécifié après la réception de la commande exit, elle sera forcée de s'arrêter par le terminal client.

Fonction spéciale deinit().


La fonction spéciale deinit() a sa propre propriété - elle est exécutée lorsque le programme est fermé (désinitialisé). Si la fonction spéciale deinit() est décrite dans un programme, elle sera appelée (et exécutée) lorsque le programme sera fermé. S'il n'y a pas de fonction spéciale deinit() dans le programme, aucune action n'est effectuée lorsque le programme est fermé.

La fonction spéciale deinit() est appelée pour être exécutée par le terminal client également à la fermeture du terminal client, à la fermeture de la fenêtre de l'instrument financier, juste avant le changement d'un instrument financier et/ou de la période d'un graphique, à la recompilation réussie du programme dans le MetaEditor, au changement des paramètres d'entrée et également au changement d'un compte.

Dans les Expert Advisors et les scripts, la fermeture du programme avec la nécessité d'appeler la fonction spéciale deinit() se produit également en raison de la jonction d'un nouveau programme du même type à la fenêtre de l'instrument financier, remplaçant le précédent.

 
Roman.:



La fonction spéciale deinit().


L'appel à deinit() ne provoquera pas la fin du programme. L'EA/indicateur restera sur le graphique et continuera à traiter les ticks.
 
PapaYozh:

Un appel de la fonction deinit() ne provoque pas la fin du programme. Le conseiller expert/indicateur restera sur le graphique et continuera à traiter les ticks.


Et si vous appelez un autre hibou pour travailler de manière programmatique :

"Dans les EA et les scripts, la fermeture du programme avec la nécessité d'appeler la fonction spéciale deinit() se produit également parce qu'un nouveau programme du même type a été attaché à la fenêtre de l'outil financier, remplaçant le précédent."