Discussion de l'article "Better Programmer (Partie 02): Arrêtez de faire ces 5 choses pour devenir un programmeur MQL5 performant"
Bonjour à tous,
Je suis un noob. J'ai beaucoup d'expérience en programmation mais je commence seulement à coder en MQL5 - c'est mon premier langage similaire au C++. J'ai lu la documentation de référence mais je n'arrive pas à trouver mon erreur - la valeur que je m'attends à recevoir d'expoMA est imprimée/commentée sur mon graphique comme 0.0 - est-ce que je fais une erreur de syntaxe ? Je ne reçois aucun problème/erreur lors de la compilation. Tout commentaire de votre part serait le bienvenu.
void OnTick( { int days = 3; double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits); double movingAverageValues[]; double bidAskAverage = (Ask + Bid)/2; int exponentialMovingAverage = iMA(_Symbol,_Period,MA_Period,0,MODE_EMA,PRICE_CLOSE); ArraySetAsSeries(movingAverageValues,true); CopyBuffer(exponentialMovingAverage,0,0,3,movingAverageValues); double alpha = expoMA(days); double dEMA = bidAskAverage - movingAverageValues[1]; // l'indice 1 représente ici l'EMA de la valeur t - 1 Comment("The ask price is: " + DoubleToString(Ask,5) + "\n" "The bid price is: " + DoubleToString(Bid,5) + "\n" "The average price is: " + DoubleToString(bidAskAverage,5) + "\n" "The custom expoMA value is: " + DoubleToString(alpha,5) + "\n" "The dEMA value is: " + DoubleToString(dEMA,5)) ; } double expoMA(int days=2) { double alpha = 2 / (days + 1); NormalizeDouble(alpha,5); return(alpha); }
Bonjour à tous,
Je suis un noob. J'ai beaucoup d'expérience en programmation mais je commence seulement à coder en MQL5 - c'est mon premier langage similaire au C++. J'ai lu la documentation de référence mais je n'arrive pas à trouver mon erreur - la valeur que je m'attends à recevoir d'expoMA est imprimée/commentée sur mon graphique comme 0.0 - est-ce que je fais une erreur de syntaxe ? Je ne reçois aucun problème/erreur lors de la compilation. Tout commentaire de votre part serait le bienvenu.
double expoMA(int days=2) { double alpha = 2.0 / (days + 1); //... }
Vous divisez 2/4 en entiers (0), qui sont ensuite analysés en doubles. Au lieu de cela, vous devriez faire en sorte que le dividende ou le diviseur soit un double (de sorte que la division soit effectuée dans le type de données "le plus détaillé").
D'autres options pourraient être (étant des jours un int) :
double alpha = double(2) / (days + 1); double alpha = 2 / (days + 1.0); double alpha = 2 / double(days + 1);C'est probablement une erreur de python.
Manuel Alejandro Cercos Perez:
Vous divisez 2/4 en entiers (0), qui sont ensuite analysés en doubles. Au lieu de cela, vous devriez faire en sorte que le dividende ou le diviseur soit un double (de sorte que la division soit effectuée dans le type de données "le plus détaillé").
D'autres options pourraient être (étant des jours un int) :
C'est probablement une erreur de python hehehHey Manuel,
Merci beaucoup ! L'astuce ci-dessus a fonctionné comme un charme. Vous m'avez évité de passer de nombreuses heures à trouver la cause première.
Sinon, vous le ferez à chaque tick reçu.
Votre dernière question : prenez l'heure d'ouverture et ajoutez-y
Sinon, vous le ferez à chaque tick reçu.
Votre dernière question : prenez l'heure d'ouverture et ajoutez-y
Bravo aux traducteurs.
Après le premier article, j'ai eu des doutes, mais maintenant je suis sûr que l'auteur veut expliquer aux programmeurs crétins qu'ils sont des crétins. Auteur, ne vous vexez pas, mais l'article est écrit pour vous. En outre, l'arrogance avec laquelle vous vous adressez à vos lecteurs réduit votre travail à néant.
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Un nouvel article Better Programmer (Partie 02): Arrêtez de faire ces 5 choses pour devenir un programmeur MQL5 performant a été publié :
Il s'agit de l'article incontournable pour tous ceux qui souhaitent améliorer leur carrière en programmation. Cette série d'articles vise à faire de vous le meilleur programmeur possible, quelle que soit votre expérience. Les idées discutées fonctionnent aussi bien pour les débutants en programmation MQL5 que pour les professionnels.
J'utilise beaucoup le mot noob dans cette série d'articles pour décrire quelqu'un avec moins d'expérience en programmation MQL5 (ne soyez pas offensé par cela). Cela facilite la relation. Cela ne veut pas dire que cet article est réservé aux noobs. Absolument pas ! C'est pour tout le monde, quelle que soit votre expérience en programmation, car ce qui fait de vous un noob ou non, ce sont vos habitudes et vos comportements de codage... pas des années de codage.
Le premier article est ici pour ceux qui ne l'ont pas lu, alors laissez-moi poursuivre cette mission de transformer les débutants en professionnels.
Auteur : Omega J Msigwa