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
Bonjour !
J'ai besoin de voir graphiquement comment la valeur d'une certaine variable change sur chaque barre pendant un test visuel, c'est-à-dire que je dois construire un graphique séparé dans une sous-fenêtre. Par exemple, je veux voir un graphique des variations des actions sur chaque barre dans une fenêtre séparée sous le graphique.
Que dois-je faire ? Dois-je écrire un indicateur, l'attacher au graphique et lui transmettre les valeurs des variables de l'EA via les variables globales du terminal ? Ou bien il y a une "meilleure" façon de faire ?
Merci d'avance.
Bonjour !
J'ai besoin de voir graphiquement comment la valeur d'une certaine variable change sur chaque barre pendant un test visuel, c'est-à-dire que je dois construire un graphique séparé dans une sous-fenêtre. Par exemple, je veux voir un graphique des variations des actions sur chaque barre dans une fenêtre séparée sous le graphique.
Que dois-je faire ? Dois-je écrire un indicateur, l'attacher au graphique et lui transmettre les valeurs des variables de l'EA via les variables globales du terminal ? Ou bien il y a une "meilleure" façon de faire ?
Merci d'avance.
Pas du tout, vous pouvez obtenir les valeurs d'équité ou de solde directement dans l'indicateur.
Définissez les paramètres du tampon de l'indicateur en le dessinant comme un graphique à barres.
Et écrire les quatre valeurs dans les tampons appropriés,
Ouverture à l'ouverture de la barre, haut bas et dynamique (la dernière barre).
cela ressemble à ceci : dans la pièce jointe
Bien sûr, vous pouvez également utiliser la valeur absolue (option recommandée), mais je ne pense pas qu'elle montre les petits incréments initiaux, donc je pense que la différence entre les valeurs initiales et actuelles est meilleure.
ZS, mais non, l'échelle est dynamique donc vous pouvez faire la deuxième option, c'est tout à fait lisible.
Pas du tout, vous pouvez obtenir les valeurs d'équité ou de solde directement dans l'indicateur.
Définissez les paramètres pour dessiner le tampon de l'indicateur comme un graphique à barres.
et écrire les quatre valeurs dans les tampons correspondants,
ouverture à l'ouverture de la barre, haut bas et fermeture de manière dynamique (dernière barre).
OBJ_LABEL sur le graphique.
Vous pouvez également le lire ici :
https://www.mql5.com/ru/forum/1111/40260#comment_40260
https://www.mql5.com/ru/forum/2963
Les valeurs d'équité et de solde, oui, mais que faire si je veux voir la valeur d'une variable calculée dans un EA ?
Vous pouvez le faire via un événement personnalisé, mais n'oubliez pas de mettre à jour le graphique après l'événement,
car le tic-tac vient avant le traitement de l'événement, par ordre de priorité.
Mais il est possible de le faire avec des globaux, mais il y a le même problème - le tick est déjà venu et la variable est encore en cours de traitement dans l'EA (ses changements sont en cours de préparation), bien sûr, les données seront reçues, mais il y aura un retard sur un tick, il est encore plus correct dans l'événement, il ya un endroit pour mettre à jour le graphique après le fait, quand vous savez déjà avec certitude que la variable a les données réelles.
Ce code ne compile pas avec l'erreur "'return' - structure has objects and cannot be copied" à cause de l'arrêt"CTest getCopy(void) {CTest res ; return res;}".
Ce problème peut être résolu de deux manières :
1) remplacer"class" par"struct".
2) décommenter le stopka avec un opérateur d'affectation surchargé.
Il faut donc que le rôle du constructeur de copie soit joué par un opérateur d'affectation surchargé ? Pourquoi alors n'est-elle pas mentionnée dans le livre de référence, sauf pour un exemple de classe matricielle (dont l'analyse détaillée m'a d'ailleurs permis de trouver l'erreur dans mon code) ?
Ce code ne compile pas avec l'erreur "'return' - structure has objects and cannot be copied" à cause de l'arrêt"CTest getCopy(void) {CTest res ; return res;}".
Ce problème peut être résolu de deux manières :
1) remplacer"class" par"struct".
Voir ci-dessus.
2) décommenter le stopka avec un opérateur d'affectation surchargé.
Bien sûr, l'opérateur surchargé renvoie un pointeur de poignée, ce qui est normal. Maintenant, ce n'est pas l'objet renvoyé par la fonction getCopy() mais le pointeur (le retour de la fonction est une affectation implicite) qui rend le code correct.
// Seulement syntaxiquement correct.
// Le retour d'une variable non initialisée de la fonction getCopy() ne sert, je l'espère, qu'à démontrer le problème de syntaxe et ne prétend pas être raisonnable.
Il faudrait donc que le rôle du constructeur de copie soit joué par un opérateur d'affectation surchargé ?
Pourquoi n'est-il pas mentionné dans le livre de référence, à l'exception d'un exemple de classe matricielle (dont l'analyse détaillée m'a d'ailleurs aidé à trouver l'erreur dans mon code) ?
Parce que le 11 février 2096785 avant J.-C., le dinosaure Vassia a accidentellement marché sur le lézard Clava. Cela a provoqué une longue chaîne de causes et de conséquences, qui a conduit à la situation actuelle. On n'y peut rien.
;)
Pourquoi doit-il être initialisé ? Il s'agit d'une instance d'une classe qui possède un constructeur dans ce but précis.
Hum... Qu'est-ce que les rôles ont à voir là-dedans ? Vous pouvez surcharger l'opérateur d'affectation comme vous le souhaitez et écrire le constructeur de copie correctement. Votre erreur se situe à un tout autre endroit.
Et ensuite, comment écrire un constructeur de copie correct dans ce but ?