[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 307

 
Zhunko:
Toute variable doit d'abord être déclarée avant de pouvoir être utilisée. Elle peut être dans les paramètres, elle peut être au niveau de la bibliothèque globale.


De plus, elle doit être initiée de manière explicite.
 
hoz:

Voici donc une fonction de la bibliothèque :

Vadim, à propos fonctions dans la boucle Vous voulez dire ce que l'opérateur de l'interrupteur rend ? Mais ce n'est pas comme si j'obtenais des valeurs sur l'ensemble des variables de la boucle. Il s'agit simplement de comparer le type de masque (variable d'entrée de la fonction) que je reçois et de calculer la valeur du masque. Il s'avère qu'il n'y a pas de calculs supplémentaires. Je sélectionne simplement le type de masque, et c'est tout ! Je veux comprendre ce que vous voulez dire par :

Pouvez-vous expliquer ?
Cela suppose ce que vous allez faire avec cette fonction. C'est le genre de fonction qui se déroule habituellement dans l'histoire.
FAQ:

De plus, elle doit être initiée de manière explicite.
De préférence pour l'ordre, mais dans MQL4 ils sont initialisés avec des zéros par défaut lorsqu'ils sont déclarés.
 
J'ai été confronté à un problème récemment : comment savoir si l'indicateur, que nous utilisons dans l'Expert Advisor par le biais de iCustom() a été initialisé et si nous pouvons en tirer des données ? D'autres fois, il y a des situations où le graphique n'a pas encore eu le temps d'afficher ses objets et où l'EA essaie de prendre des données dans ses tampons. Par conséquent, des valeurs nulles apparaissent parfois. Bien sûr, j'ai vérifié les valeurs non nulles et seulement ensuite laissé l'EA continuer son opération, mais ... Il existe peut-être une solution plus élégante ?
 

Une dernière chose : j'ai rencontré un comportement étrange (pour moi) de UninitializeReason(). Je vérifie sa valeur dans l'Inite, et si l'horizon temporel a été modifié et qu'il y a des positions ouvertes, alors je dois émettre une demande pour les fermer. Si nous exécutons initialement l'EA sur M5, puis passons à une autre période, il n'y aura pas de demande. Si nous revenons à la TF initiale (M5), il y aura une demande. Je pense que ce n'est pas normal. J'ai besoin d'une demande à tout changement de TF.

Quelqu'un peut-il expliquer ?

 
artmedia70:

Une dernière chose : j'ai rencontré un comportement étrange (pour moi) de UninitializeReason(). Je vérifie sa valeur dans l'Inite, et si l'horizon temporel a été modifié et qu'il y a des positions ouvertes, alors il devrait y avoir une demande pour les fermer. Si nous exécutons initialement l'EA sur M5, puis passons à une autre période, il n'y aura pas de demande. Si nous revenons à la TF initiale (M5), il y aura une demande. Je pense que ce n'est pas normal. J'ai besoin d'avoir une demande à tout changement de TF.

Quelqu'un peut-il expliquer ?

Pour que ça marche, DeinitReason est une variable globale.

int deinit()
  {
//----
   DeinitReason = UninitializeReason( );
   Print("DeinitReason ",DeinitReason);
//----
   return(0);
  }
 
Mislaid:

Pour que ça marche, DeinitReason est une variable globale.

Exactement. La variable globale Reason reçoit une valeur, mais pas dans deinit(), mais dans init(), de sorte que lorsque init() est exécuté, vous pouvez voir la raison de la dernière désinitialisation et, en fonction de la valeur, exécuter une action ou une autre. Mais il ne fonctionne pas comme il le devrait.
 

Bonjour.Une nouvelle question a surgi.Aide s'il vous plaît.Pour les connaisseurs il ya une minute, mais pour les débutants est difficile.Googlé rien ne sert, mais peut-être quelqu'un a fait face.

Le journal dit

(2013.04.23 10:06:30 2013.04.01 00:00 xrust EURUSD,M1 : 2 paramètre pour la fonction SetIndexBuffer doit être un tableau).

https://forum.mql4.com/ru/55137#786974

 
palomnik:

Bonjour.Une nouvelle question a surgi.Aide s'il vous plaît.Pour les connaisseurs il ya une minute, mais pour les débutants est difficile.Googlé rien ne sert, mais peut-être quelqu'un a fait face.

Le journal dit

(2013.04.23 10:06:30 2013.04.01 00:00 xrust EURUSD,M1 : 2 paramètre pour la fonction SetIndexBuffer doit être un tableau).

https://forum.mql4.com/ru/55137#786974


Il est dit que le deuxième paramètre de la fonction SetIndexBuffer doit être un tableau. C'est-à-dire, pas le double znach1, mais le double znach1[]
 
Comment puis-je exécuter le script nouvellement édité sans redémarrer mt4 ?
 
Comment puis-je exécuter le script que je viens d'éditer sans redémarrer mt4 ?
Raison: