2017-09-23 1 views
0

Je voudrais écrire un réitéré si la conditionfonction booléenne boucle MQL4

if (BOX_H1(1) && BOX_H1(2) && BOX_H1(3) && BOX_H1(4) && BOX_H1(5) && BOX_H1(6) && BOX_H1(7) && BOX_H1(8);) 

Dans un formulaire de boucle, quelque chose comme ceci:

if (
for (int x=1;x<=7; x++) 
      { 
       (BOX_H1(x)); 

      }) 

BOX_H1(1) si une des fonctions booléennes qui prend int (paramètre de décalage), mais ce code ne fonctionne pas.

Quelqu'un sait comment puis-je l'écrire?

EDIT: Mon code est sous cette forme:

bool Buy_H1 =0, ...

...

if(Buy_H1) {if(...)}

...

void Entry() 
{ 
Buy_H1 =BOX_H1(1) && BOX_H1(2) && BOX_H1(3) && BOX_H1(4) && 
     BOX_H1(5) && BOX_H1(6) && BOX_H1(7) && BOX_H1(8) ; 
} 

Si, au lieu de dernier code, je substitue

void Entry() 
{ 
bool Buy_H1(const int parameter){ 
for(int i=1; i<=parameter; i++){ 
    if(!BOX_H1(i)) 
    return false; } 
return true; } 
} 

J'arrive 'Buy_H1' - function can be declared only in the global scope

Répondre

1
bool booleanFunction(const int parameter){ 
    for(int i = 1; i <= parameter; i++){ 
      if (!BOX_H1(i)) 
       return false; 
    } 
    return true; 
} 


void OnStart(){ 
    ... 
    if ( booleanFunction(8)){ 
      Print("OK"); 
    }         //edited, your code instead of this 
    ... 
} 
+0

Malheureusement doesen't œuvres. Dites "token inattendu" pour "boolean function" et "parameter" Ci-dessous montre "'return' - La fonction 'void' renvoie une valeur" – perjliv

+0

vous avez manqué ")" quelque part ou un autre signe –

+0

si vous avez copié la dernière ligne (c'est juste un exemple pour vous) - alors j'ai édité –