Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1030

 
abeiks:

Bonjour.

J'essaie actuellement de comprendre les variables globales. Maintenant il y a un problème et je n'arrive pas à le résoudre. Si je supprime une variable globale de l'indicateur, le conseiller expert continue de récupérer cette variable. Comment résoudre ce problème ?

a comment le supprimer ?

 
valenok2003:

Pouvez-vous me dire quelle est l'erreur dans cette ligne ? Avant, la compilation se faisait sans message d'erreur, maintenant - '{' - expression attendue

Merci d'avance

Arr_Tickets[MAX_NUM_ORDER][2] = {0,0, ,0,0} ;


Comptez les virgules.
 
AlexeyVik:

Comptez les virgules.
Les virgules sont correctes, il s'agit de la notation selon laquelle, quel que soit le nombre d'éléments du tableau, ils seront tous remplis de zéros.
 
abeiks:

Bonjour.

J'essaie actuellement de comprendre les variables globales. Maintenant il y a un problème et je n'arrive pas à le résoudre. Si je supprime une variable globale de l'indicateur, le conseiller expert continue de récupérer cette variable. Comment puis-je résoudre ce problème ?

Appuyez sur F3 dans le terminal et supprimez manuellement cette variable. Il est créé une fois et se trouve dans l'environnement - le conseiller expert le lit à partir de là. Ou peut-être n'ai-je pas bien compris ? Vous venez de supprimer la création d'une variable globale du terminal dans le code de l'indicateur lui-même, mais elle était créée par cet indicateur auparavant ?
 
artmedia70:
Appuyez sur F3 dans le terminal et supprimez manuellement cette variable. Il est créé une fois, et se trouve dans l'environnement - c'est de là que l'EA le lit.
Merci ! Je ne savais pas.
Comment puis-je vérifier et supprimer cela dans le conseiller expert lui-même ? Par exemple, si je ferme l'indicateur par erreur, l'EA aura toujours cette dernière variable et s'il y a un signal pour ouvrir des positions...
 
valenok2003:

a comment supprimer ?


J'ai fait ça, mais ce n'est pas bien :

 if (!GlobalVariableCheck("Test_1"))
GlobalVariableDel("Test_1"); 
 
valenok2003:
Les virgules sont correctes, il s'agit de la notation selon laquelle, quel que soit le nombre d'éléments d'un tableau, ils seront tous remplis de zéros.
Eh bien, je ne sais pas, peut-être en C++, que je n'ai jamais étudié, mais mql n'est qu'un C-like. Et deuxièmement, vous ne pouvez pas définir la dimension du tableau comme une variable, bien que dans votre exemple MAX_NUM_ORDER puisse ne pas être une variable...
 
valenok2003:

Pouvez-vous me dire quelle est l'erreur dans cette ligne ? Avant, la compilation se faisait sans message d'erreur, maintenant - '{' - expression attendue

Merci d'avance

Arr_Tickets[MAX_NUM_ORDER][2] = {0,0, ,0,0} ;

Une ligne et une colonne du tableau sont sélectionnées, respectivement, nous pouvons y écrire une valeur particulière, c'est-à-dire que l'entrée doit être la même que pour une variable ordinaire, mais pour réinitialiser toutes les valeurs

ArrayInitialize(Arr_Tickets, 0) ;

 
abeiks:

J'ai fait ça, mais ce n'est pas bien :

if (!GlobalVariableCheck("Test_1"))
GlobalVariableDel("Test_1"); 

Qu'est-ce que ça dit ?

S'il n'y a pas de variable globale nommée Test_1, supprimez-la...

 
abeiks:
Merci ! Je ne savais pas.
Et comment faire une telle vérification et la supprimer dans le Conseiller Expert lui-même ? Par exemple, si je ferme accidentellement l'indicateur, le Conseiller Expert recevra cette dernière variable tout le temps et s'il y a un signal pour ouvrir des positions, il...
Si la suppression involontaire de l'indicateur doit supprimer les variables globales créées par cet indicateur, la suppression des variables globales doit être prescrite dans la fonction OnDeinit() de l'indicateur.
En même temps, vous devez vérifier qu'il ne s'agit pas d'un changement d'horizon temporel, mais de la suppression de l'indicateur du graphique.
Raison: