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
Je suis encore en train d'apprendre les subtilités des indicateurs et j'ai des questions. Je réinitialise le tampon de l'indicateur dans OnInit(), mais pour une raison quelconque, les tampons ne sont pas réinitialisés pendant la compilation de l'indicateur. Pour la logique, il devrait y avoir une cellule pleine pour chaque tampon après la compilation, mais dans l'image vous pouvez voir qu'il y en a beaucoup (je pense que ce sont les cellules des tampons précédents). Où est-ce que je fais une erreur ?
if(rates_total-8==i)// || rates_total-5==i || rates_total-2==i) { ColorHistogram_2Buffer1[i]=high[i]; ColorHistogram_2Buffer2[i]=low[i]; ColorHistogram_2Colors[i]=0; }
Je suis encore en train d'apprendre les subtilités des indicateurs et j'ai des questions. Je réinitialise le tampon de l'indicateur dans OnInit(), mais pour une raison quelconque, les tampons ne sont pas réinitialisés pendant la compilation de l'indicateur. Pour la logique, il devrait y avoir une cellule pleine pour chaque tampon après la compilation, mais dans l'image vous pouvez voir qu'il y en a beaucoup (je pense que ce sont les cellules des tampons précédents). Où est-ce que je fais une erreur ?
Dans OnInit, les tampons indicateurs ont une longueur nulle.
C'est pour ça qu'ils peuvent faire tout ce que vous voulez, ça leur semble être le travail d'un homme mort.
Et lorsque l'exécution du code passe à OnCalculate, la taille devient immédiatement égale à rates_total.
et il y a des "déchets" dans toutes les cellules du tableau. Il peut aussi y avoir des restes d'un ancien calcul d'indicateur.
Dans OnInit, les tampons indicateurs ont une longueur nulle.
C'est pour ça que vous pouvez faire ce que vous voulez avec eux, ils sont très révélateurs.
Et lorsque l'exécution du code passe à OnCalculate, la taille devient immédiatement égale à rates_total.
et toutes les cellules du tableau contiennent des "déchets". Il peut y avoir des restes de l'ancien calcul de l'indicateur.
Merci beaucoup, j'ai tout compris et ça a marché ! Je l'ai fait comme ça :
Merci beaucoup, tout s'est arrangé ! Je l'ai fait comme ça :
Pourquoi attribuer deux fois une valeur à une variable ?
Et une question : quel est l'intérêt de faire tout ça ? Après tout, en passant par toutes les barres dans la boucle, toutes les cellules du tableau doivent être remplies avec quelque chose de toute façon. A moins que l'indicateur ne doive montrer que la position actuelle, mais alors le tableau doit être initialisé sur chaque barre, pas seulement au début...
Pourquoi attribuer deux fois une valeur à une variable ?
Et la question est : pourquoi avons-nous besoin de tout cela ? Après tout, en passant par toutes les barres de la boucle, toutes les cellules du tableau doivent être remplies de quelque chose, de toute façon. A moins que l'indicateur ne doive montrer que la position actuelle, mais alors le tableau devrait être initialisé sur chaque barre, pas seulement au début...
Dans cet exemple, je voulais juste comprendre comment réinitialiser le tampon. Mais à l'avenir (dans l'indicateur sur lequel je travaille actuellement), je devrai à la fois laisser les cellules précédentes et en ajouter de nouvelles. Et c'est sur cette base que j'ai commencé à travailler. Pour ainsi dire - les premiers tests.
Je n'étais pas sûr que toutes les actions avec le graphique soient imitées par OnInit(), par exemple le changement de taimfreims. Changement de taimfreim reset (vérifié maintenant), mais peut-être qu'il y a autre chose, donc j'ai mis le deuxième dans OnInit() pour être sûr. Mais si ce n'est pas le cas, alors je ne le mettrai pas là.
Ahh. Eh bien oui, les variables de niveau global ne sont pas initialisées lorsque la période du graphique change. Je pense... Je ne me souviens pas exactement.
Et en général, vous pouvez vous passer de cette variable bool supplémentaire.
Et en général, on peut se passer de cette variable bool supplémentaire.
Oui, exactement, encore mieux, merci.
Pouvez-vous me dire pourquoi, si la période est supérieure à 30 minutes, il renvoie un nombre aussi étrange ?
KP 0 14:33:22.423 Test_DRAW_COLOR_HISTOGRAM2 (EURUSD,M30) PERIOD : 30
GG 0 14:33:24.402 Test_DRAW_COLOR_HISTOGRAM2 (EURUSD,H1) PERIOD : 16385
RJ 0 14:33:25.675 Test_DRAW_COLOR_HISTOGRAM2 (EURUSD,H4) PERIOD : 16388Pouvez-vous me dire pourquoi si la période est supérieure à 30 minutes, il renvoie un nombre aussi étrange ?
Dans MT5, les valeurs des périodes ne sont pas égales au nombre de minutes, comme dans MT4.