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

 
Slava_kornev55:
Ahhhh, je sais. Je n'ai pas pu trouver une chouette comme ça.
Tiens, entraîne-toi.
Dossiers :
 
Alexander Antoshkin:
Apparemment, il faut dessiner une parenthèse ou une virgule inversée quelque part, je ne comprends pas .............. J'ai regardé des exemples similaires, il semble que ce soit la même chose ,,,,,,,,,,,,

spécifiez la fonction et sa constante DeleteOrder(ticket) si vous en avez besoin et cela devrait fonctionner.

Comment écrire correctement une constante dans un appel à une autre fonction ?

Par exemple, voici une fonction :

puis j'écris un autre

Que dit exactement le compilateur ?
 
Pouvez-vous me dire si la fonction de désinitialisation des EAs et des indicateurs est exécutée lorsque le terminal est fermé?
 
-Aleks-:
Pouvez-vous nous dire si la fonction de désinitialisation est exécutée dans les conseillers et les indicateurs lors de la fermeture du terminal ?

Exécution des programmes.

Indicateurs de chargement et de déchargement

Les indicateurs sont chargés dans les cas suivants :

-attacherun indicateur à un graphique ;

-ledébutdu terminal (si un indicateur a été attaché à un graphique avant la fermeture précédente du terminal)

-chargementd'un modèle (si le modèle contient un indicateur attaché au graphique)

-changer deprofil (si un indicateur est attaché à l'un des graphiques de profil);

-changerle symbole et/ou la période du graphique auquel l'indicateur est attaché;

-après larecompilation réussie d'un indicateur, si cet indicateur a été attaché à un graphique.

-modification desparamètres d'entrée de l'indicateur.

Les indicateurs sont déchargés dans les cas suivants :

-lors dudétachement d'un indicateur d'un graphique ;

-la fermeturedu terminal (si un indicateur est attaché à un graphique) ;

-chargement d'un modèle, si un indicateur est attaché à un graphique

Fermer legraphique auquel un indicateur a été attaché ; - Fermer le terminal (si un indicateur a été attaché au graphique).

-Modifierun profil, si un indicateur est attaché à l'un des graphiques du profil à modifier ;

-Changer lesymbole et/ou la période du graphique auquel l'indicateur est attaché ;

-Modifier lesparamètres d'entrée de l'indicateur.

Chargement et déchargement des experts

Le chargement d'un Expert Advisor est effectué dans les cas suivants

-attacherle conseiller expert au graphique;

-débutdu terminal (si le Conseiller Expert a été attaché au graphique avant la fermeture précédente du terminal) ;

-chargement d'un modèle (si un conseiller expert a été attaché à un graphique)

-Après unerecompilation réussie du conseiller expert (si le conseiller expert a été attaché au graphique).

-Changement deprofil (si le conseiller expert est attaché à l'un des graphiques de profil);

-connexionau compte, même si le numéro de compte n'a pas été modifié (si l'Expert Advisor a été attaché au graphique avant l'autorisation du terminal sur le serveur).

Le déchargement de l'Expert Advisor attaché au graphique est effectué dans les cas suivants

-lorsquel'EA est détaché du graphique ;

-lorsqu'il estattaché à un graphique - si un autre conseiller expert a déjà été sur le même graphique, le conseiller expert sera déchargé;

-fermerle terminal (si un Expert Advisor a été attaché à un graphique);

-chargerun modèle, si un conseiller expert a été attaché au graphique ;

-Fermezle graphique auquel le conseiller expert a été attaché ;

-Modifierun profil, si un conseiller expert est attaché à l'un des graphiques du profil à modifier ;

-Changer lecompte auquel le terminal est attaché (si l'Expert Advisor a été attaché au graphique avant l'autorisation du terminal sur le serveur);

-Appelde la fonctionExpertRemove().

Lorsque le symbole ou l'horizon temporel du graphique auquel le conseiller expert a été attaché est modifié, le conseiller expert ne sera pas déchargé ou chargé. Dans ce cas, les gestionnairesOnDeinit() sur l'ancien symbole/la ligne de temps etOnInit() sur le nouveau symbole/la nouvelle ligne de temps (si disponible) sont appelés de manière cohérente, les valeurs des variables globales et desvariables statiques ne sont pas réinitialisées. Tous les événements reçus pour l'EA avant la fin de l'initialisation (OnInit()) sont ignorés.

OnDeinit

L'événement Deinit est généré pour les Expert Advisors et les indicateurs dans les cas suivants

-avant laréinitialisation due au changement d'un symbole ou d'une période d'un graphique, auquel un programme mql5 est attaché;

-Avant la réinitialisation due à unemodification desparamètres d'entrée;

-Avant ledéchargement d'un programme mql5.

 
Sergey Gritsay:
Que dit exactement le compilateur ?
 
Alexander Antoshkin:
sans le code complet, il est difficile de comprendre, mais je soupçonne que vous avez le même nom de variableticket déclaré globalement et localement dans la fonctionDeleteOrder, changez le nom de la variable
 

Merci, mais il y a un soupçon que OnDeinit.... ne fonctionne pas toujours. lorsque la borne est fermée.

 
-Aleks-:

Merci, mais je soupçonne que OnDeinit.... ne fonctionne pas toujours. lorsque la borne est fermée.

Faire un unsetting dans OnDeinit(). Ensuite, nous pourrons parler plus substantiellement.
 
Sergey Gritsay:
Sans le code complet, il est difficile de comprendre, mais je soupçonne que vous avez le même nom de variableticket déclaré globalement et localement dans la fonctionDeleteOrder, changez le nom de la variable

Oui, je l'ai.

Merci d'avoir trouvé la solution !

 

Je suis stupide ou c'est comme ça que ça doit être ?

Il y avait 5 positions d'achat ouvertes, le chalut s'est déclenché et a déplacé les Stop Loss, le prix a reculé et 4 positions se sont fermées et une est restée ouverte avec le niveau de stop au-dessus du prix. Il n'y a rien dans le journal mais des enregistrements de la fermeture de 4 positions.