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

 
Pr0t0tip:

Bonjour, j'ai le problème suivant. Le journal donne un OrderModify de 130 lors du test, aidez-moi à trouver une solution. Voici le code de l'EA :


SL = NormalizeDouble(Bid+StopLoss*Point, Digits);

SL = NormalizeDouble(Bid-TakeProfit*Point, Digits);     Здесь поменяй   SL  на   TP
SL = NormalizeDouble(Ask-StopLoss*Point, Digits);

SL = NormalizeDouble(Ask+TakeProfit*Point, Digits);     И здесь
 

'}' - tous les chemins de contrôle ne renvoient pas une valeur

met en évidence une telle erreur dans la fonction..... bien qu'elle renvoie une valeur et fonctionne bien dans un autre indicateur sans cette erreur.


 
Zver4991:

'}' - tous les chemins de contrôle ne renvoient pas une valeur

met en évidence une telle erreur dans la fonction..... bien qu'elle renvoie une valeur et fonctionne bien dans un autre indicateur sans cette erreur.



Ouvrez dans un nouvel éditeur, mettez en surbrillance la première parenthèse et vérifiez la dernière, vous verrez tout en même temps.
 

Pouvez-vous me dire s'il est possible d'organiser une exécution pas à pas du programme en mode débogage? Et ajouter plus de variables pour le suivi

 
Zver4991:

'}' - tous les chemins de contrôle ne renvoient pas une valeur

la fonction..... bien qu'elle renvoie une valeur et fonctionne bien dans un autre indicateur sans cette erreur.


Il s'agit d'un message vous indiquant qu'il existe des options de branchement dans la fonction, alors qu'elle peut ne rien retourner. Par exemple :

//+----------------------------------------------------------------------------+
int TestFunc(int a) {
   if(a>2 || a<0) a=2;
   if(a==0) return(1);
   else if(a==1) return(2);
   else if(a==2) return(3);
}
//+----------------------------------------------------------------------------+

La valeur de la variable a semble être limitée dans la plage de 0 à 2, mais le compilateur considère toujours cela comme une erreur.

Mettez return() avec la valeur de retour par défaut de la fonction avant la parenthèse fermante du corps de la fonction et tout ira bien :

//+----------------------------------------------------------------------------+
int TestFunc(int a) {
   if(a>2 || a<0) a=2;
   if(a==0) return(1);
   else if(a==1) return(2);
   else if(a==2) return(3);
   return(-1);
}
//+----------------------------------------------------------------------------+
 
artmedia70:

Cela vous indique qu'il existe des possibilités de branchement dans la fonction lorsqu'elle peut ne rien retourner. Par exemple :

La valeur de la variable a semble être limitée à la plage de 0 à 2, mais le compilateur la considère toujours comme une erreur.

Mettez return() avant la parenthèse fermante du corps de la fonction avec la valeur de retour par défaut de la fonction et tout ira pour le mieux :


Que faire si a n'est pas un type int ?

type de fonction - valeur de retour à la fin de la fonction

int  - return(-1);

void - return;

bool - return(false);

string - return(""); 
 
artmedia70:

Cela vous indique qu'il existe des possibilités de branchement dans la fonction lorsqu'elle peut ne rien retourner. Par exemple :

La valeur de la variable a semble être limitée à une plage de 0 à 2, mais le compilateur la considère toujours comme une erreur.

Mettez return() avant la parenthèse fermante du corps de la fonction avec la valeur de retour par défaut de la fonction et tout ira pour le mieux :


merci beaucoup..... sauvé mes nerfs
 
Vladon:


Que faire si le type d'une personne n'est pas int ?

Le type de fonction est le résultat du retour à la fin de la fonction.


Qu'est-ce qui s'est passé ? J'ai juste donné un exemple - la première chose qui m'est venue à l'esprit. Vous auriez pu écrire une fonction retournant tout autre type de données (sauf void)... Ça ne change rien à l'affaire.
 
artmedia70:
Qu'est-ce qui s'est passé ? J'ai juste donné un exemple - la première chose qui m'est venue à l'esprit. Vous auriez pu écrire une fonction retournant tout autre type de données (sauf void)... Ça ne change rien à l'affaire.


Je ne faisais que clarifier le type de données. Il s'agit d'une branche des questions des débutants, ils s'attendent donc à la même réponse dans n'importe quelle fonction.
 

Aidez-nous à lutter contre les bugs !

J'ai décidé de faire un EA pour moi-même sur la base d'un exemple du manuel mql4. Je m'amuse avec depuis une semaine maintenant, mais ça me donne toujours une sorte d'erreur.

Veuillez vérifier ce qui ne va pas, peut-être que quelque chose doit être modifié ou supprimé en plus des parenthèses.

Erreurs :

'}' - fin inattendue du programme expert.mq4 218 3

'{' - parenthèses non équilibrées expert.mq4 23 2

Dossiers :
expert_1.mq4  9 kb
Raison: