Bonjour
je pense que la bonne syntaxe est
if ( condition == vrai)
instruction
else
instruction
je pense que la bonne syntaxe est
if ( condition == vrai)
instruction
else
instruction
Gerard Willia G J B M Dinh Sy #:
Bonjour
je pense que la bonne syntaxe est
if ( condition == vrai)
instruction
else
instruction
Bonjour
je pense que la bonne syntaxe est
if ( condition == vrai)
instruction
else
instruction
Tu n'as pas essayé
if(!ArraySetAsSeries(myMovingAverageArray,true))Print("true ko");
ou
if(ArraySetAsSeries(myMovingAverageArray,true)==false)Print("true ko");
Cela ne change rien et la fonction renvoie bien un booléen voir doc .Bon, bref, cette fonction ne fonctionne pas. Son seul avantage est de le dire, c'est déjà cela.
Essaye
if( ! ArraySetAsSeries(myMovingAverageArray,true)) Print("Pas bon"); else Print("Bon");
Elle fonctionne de mon coté...
je ne sais pas quoi te dire
je ne sais pas quoi te dire
Essaye
et regarde dans le debug le résultat
essayes d'autres array, c'est peut être ton array
bool test = ArraySetAsSeries(myMovingAverageArray,true)
et regarde dans le debug le résultat
essayes d'autres array, c'est peut être ton array
myMovingAverageArray
qui pose souci
//variable globale moyenne mobile int movingAverage; // pointeur moyenne mobile' double myMovingAverageArray[10]; // Création un tableau pour les valeurs de la moyenne mobile. //variable globale moyenne mobile exponentiel int movingAverageExp; // pointeur moyenne mobile exponentiel double myMovingAverageArrayExp[10]; // Création un tableau pour les valeurs de la moyenne mobile exponentiel. int OnInit() { if( ! ArraySetAsSeries(myMovingAverageArray,true)) Print("Pas bon"); else Print("Bon"); ArrayInitialize(myMovingAverageArray,0);// init a zero // Initialisation de la moyenne mobile https://www.mql5.com/fr/docs/indicators/ima movingAverage = iMA(_Symbol, PERIOD_M1, 20, 0, MODE_SMA, PRICE_CLOSE); //creation d'un pointeur moyenne mobile ArrayInitialize(myMovingAverageArrayExp,0);// init a zero // Initialisation de la moyenne mobile triple expo https://www.mql5.com/en/docs/indicators/itema movingAverageExp = iTEMA(_Symbol,PERIOD_M1, 20, 0, PRICE_CLOSE); //creation d'un pointeur moyenne mobile triple exp return(INIT_SUCCEEDED); }
tu l’initialise dans la fonction OnInit() ?
C'est bon, j'ai trouvé. Pour cela, j'ai testé la fonction sur un robot vierge de tout code.
//+------------------------------------------------------------------+ //| testalacon.mq5 | //| Copyright 2023, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2023, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //variable globale moyenne mobile exponentiel int movingAverageExp; // pointeur moyenne mobile exponentiel' static double myMovingAverageArrayExp[10]; //variable globale moyenne mobile int movingAverage; // pointeur moyenne mobile' double myMovingAverageArray[10]; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { if( ! ArraySetAsSeries(myMovingAverageArray,true)) Print("Pas bon"); else Print("Bon"); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ //| Trade function | //+------------------------------------------------------------------+ void OnTrade() { //--- } //+------------------------------------------------------------------+
Normalement
Pour faire un buffer d'affichage
il te faut le créer au global. Met le en dynamique pour la taille, pas la peine de le limiter
avec les properties
Dans oninit
moi j'ai tendance à faire le SetIndexBuffer() puis après le ArraySetAsSeries()
Pour faire un buffer d'affichage
il te faut le créer au global. Met le en dynamique pour la taille, pas la peine de le limiter
avec les properties
Dans oninit
moi j'ai tendance à faire le SetIndexBuffer() puis après le ArraySetAsSeries()
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
bonjour
puis
pourquoi cette fonction renvoie toujours flase
la doc