![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
parce que pour une raison quelconque (probablement un bug) les tableaux ne sont pas initialisés.
Jusqu'à présent, je n'ai pas obtenu de valeur pour 'T3MA' et 'HMA'.
C'est probablement la raison pour laquelle cet EA n'ouvre aucun ordre puisque ces deux indis sont utilisés.
Ou ai-je fait une erreur dans l'EA ?
Jusqu'à présent, je n'ai pas obtenu de valeur pour 'T3MA' et 'HMA'.
Je vous l'ai déjà dit
parce que pour une raison quelconque (probablement un bug), les tableaux ne sont pas initialisés.
C'est probablement la raison pour laquelle cet EA n'ouvre pas d'ordre puisque ces deux indis sont utilisés.
Je ne sais pas, peut-être, probablement, peut-être, possible, probable, raisonnable...
Ou ai-je fait une erreur dans l'EA ?
Je ne le pense pas
Oui, vous avez raison. Mais pourquoi ?
Je les ai compilés comme le dit SDC et j'ai trouvé '0' erreur ou avertissement.
Alors que puis-je faire pour les mettre à jour vers B-600+ ?
HMA.mq4 a un bug, changez cette ligne dans init() :
àCet EA n'ouvre aucune transaction même dans le Build 509 où les deux 'T3MA' et 'HMA' fonctionnent bien.
Quelle peut être la raison alors ?
Bogue similaire dans T3MA.mq4, changer en :
Ce sont des bogues logiques que le compilateur ne peut pas attraper.
Ces bogues sont déjà présents dans la build 509, mais ne posent pas de problème car SetIndexBuffer a peu de chance d'être faux. C'est maintenant un problème dû à ce changement:
Shortened conditions check is now used in logical operations, unlike the old MQL4 version where all expressions have been calculated and the check has been performed afterwards. Suppose there is a check of two conditions with the use of logical AND
Si l'expression condition1 est fausse, le calcul de l'expression condition2 n'est pas effectué, car le résultat false && true est toujours égal à false.
Bug similaire dans T3MA.mq4, changer en :
Ce sont des bogues logiques que le compilateur ne peut pas attraper.Merci beaucoup Monsieur.
Oui, c'était les bogues et ils fonctionnent maintenant :)
Pouvez-vous regarder pourquoi l'EA n'ouvre aucun ordre malgré le fait que ces indicateurs fonctionnent ?
Salutations
Pouvez-vous vérifier pourquoi l'EA n'ouvre aucun ordre malgré le fait que ces indicateurs fonctionnent ?
Montrez le code de votre EA
montrez votre code EA
Le voici :
iCustom
Calcule l'indicateur personnalisé spécifié et renvoie sa valeur.
double iCustom(
string symbole, // symbole
int timeframe, // timeframe
string name, // chemin/nom du programme compilé de l'indicateur personnalisé
... // paramètres d'entrée de l'indicateur personnalisé (si nécessaire)
int mode, // indice de ligne
int shift // décalage
) ;
Paramètres
symbol
[in] Nom du symbole sur les données duquel l'indicateur sera calculé. NULL signifie le symbole actuel.
timeframe
[in] Cadre temporel. Il peut s'agir de l'une des valeurs de l'énumération ENUM_TIMEFRAMES. 0 signifie la période actuelle du graphique.
name
[in] Nom du programme compilé de l'indicateur personnalisé, relatif au répertoire racine des indicateurs (MQL4/Indicators/). Si l'indicateur est situé dans un sous-répertoire, par exemple, dans MQL4/Indicators/Examples, son nom doit être spécifié comme "Examples\\indicator_name" (la double barre oblique inversée "\\" doit être spécifiée comme séparateur au lieu d'un simple).
...
[in] Paramètres d'entrée de l'indicateur personnalisé, séparés par des virgules.
Les paramètres passés et leur ordre doivent correspondre à l'ordre de déclaration et au type des variables externes de l'indicateur personnalisé. Si les valeurs des paramètres d'entrée ne sont pas spécifiées, les valeurs par défaut seront utilisées.