Questions des débutants MQL5 MT5 MetaTrader 5 - page 990
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
Question : Pourquoi un Handel réglé sur une période ne transmet pas de valeurs àCopyBuffer sur d'autres périodes. Et que faire ?
Si le problème résidait dans le déplacement d'un élément de la mémoire tampon du tableau à différents moments, je résoudrais le problème. Et donc ce n'est pas clair du tout.
Question : Pourquoi un Handel réglé sur une période ne transmet pas de valeurs àCopyBuffer sur d'autres périodes. Et que faire ?
Si le problème résidait dans le déplacement d'un élément de la mémoire tampon du tableau à différents moments, je résoudrais le problème. Et donc ce n'est pas clair du tout.
Si le handle a été créé avec succès, il est créé avec les paramètres que vous lui avez passés lors de sa création. Et il donnera les données de l'indicateur à n'importe quel moment. Cependant, il donnera les données de la période que vous avez spécifiée lors de la création. Et pour les afficher correctement sur le cadre temporel de travail, vous devez convertir les données reçues de la poignée de l'indicateur au cadre temporel dans lequel votre indicateur travaille.
Je vérifiais juste ça. Mais le PROBLÈME est qu'en fixant la main à une période permanente, en
La valeur du CopyBuffer sur d'autres horizons temporels n'est PAS TRANSFÉRABLE. La valeur était sur la période d'hendle définie et 0.0 (zéro) sur les plus petites périodes. Je l'ai déplacé autour du tampon pour le chercher... zéro. Pourquoi n'est-il pas passé àCopyBuffer ?
Je l'ai copié...
Une autre question est de savoir ce qui est copié :) Il est fort probable que vous demandiez plus de barres à copier qu'il n'y en a sur cette TF, imprimez...
Si le handle a été créé avec succès, il a été créé avec les paramètres que vous lui avez donnés lors de sa création. Et il donnera les données de l'indicateur à n'importe quel moment. Mais il donnera les données de la période qui a été définie lors de la création. Et pour les afficher correctement sur le cadre temporel de travail, vous devez convertir les données obtenues de la poignée de l'indicateur au cadre temporel dans lequel votre indicateur travaille.
Est-ce que j'ai fait l'expérience correctement ?
Je vous ai donné une direction...
Étudiez-le:
Je l'ai copié...
Une autre question est de savoir ce qui est copié :) Il est fort probable que vous demandiez à copier plus de barres qu'il n'y en a sur cette TF, imprimez...
kopeyka2:
Верно ли я провел эксперемент.?
...
... Même lorsque l'on passe à une autre période, les valeurs doivent être celles de l'ensemble D1. C'est exactement ce que je ne vois pas. Ou quelque chose ne va pas ? Y a-t-il autre chose que je devrais ajouter lors de la définition d'une poignée ? Puisqu'il n'y a pas de transfert de tampon.
Tout simplement, expérimenter avec CopyByffer , ce qu'il faut mettre dedans. Mais il n'est pas là.
Vous n'avez pas vérifié la disponibilité des données, mais vous essayez de copier. Regardez le code ci-dessus - il y a un second timer toutes les minutes et demie où l'on accède à l'image temporelle non native - pour garder les données à jour. Et la première chose dans le code est de vérifier si les données demandées sont disponibles. S'ils ne sont pas prêts, alors il retourne zéro pour le prochain tick et le calcul complet de l'indicateur. Et lorsque toutes les données ont été reçues, calculées et affichées, la quantité de données calculées est renvoyée à la fin - afin de ne pas avoir à effectuer un nouveau calcul complet au prochain tick.
Merci. J'ai tout lu. Je vais continuer à chercher.
Que cherchez-vous ? Le code ci-dessus fonctionne parfaitement. Vous pouvez le disséquer comme vous voulez. J'ai souligné votre erreur - vous ne vérifiez pas la disponibilité des données.
Même sur cette ligne ici :
int lm=IBarShift(NULL,PERIOD_D1, iTime(NULL, PERIOD_CURRENT, limit));
Où est la vérification de ce que iTime() a retourné ? Il n'y a pas de contrôle. Mais tu pousses un résultat inconnu directement dans iBarShift(). Êtes-vous sûr de donner à la fonction ce que vous attendez ?
Si le handle a été créé avec succès, il est créé avec les paramètres que vous lui avez donnés lors de la création. Et il transmettra les données de l'indicateur à n'importe quel moment. Cependant, il donnera les données de la période qui a été définie lors de la création. Et pour les afficher correctement sur le cadre temporel de travail, vous devez convertir les données reçues de la poignée de l'indicateur au cadre temporel dans lequel votre indicateur travaille.
C'est exactement ce que je pensais. La question du malentendu est le mot "paramètres". J'ai donc commencé à regarder TOUTES les variables qui sont impliquées dans le handle --> CopyBuffer
1) Ma question depuis le début était de basculer l'écran de l'horizon temporel pour sauvegarder les données de la poignée. Comme c'est le cas dans MT4.
Et en fait, c'est ce qui se passe :
TOUJOURS et sur TOUS les horizons temporels donne la même valeur de 10
N'ayant rien obtenu ici, je suis passé à autre chose.
2) Et je cite :"Obtient les données du tampon spécifié de l'indicateur spécifié dans la quantité spécifiée dans le tableau du tampon".
C'est-à-dire qu'en réglantle compte à la main, nous devrions avoir un INTERVALLE avec les valeurs . Et les voilà ! BUT !!!!!! Seulement lorsque la période de la poignée correspond à
PERIOD_H1sur l'écran du moniteur. Toutes les valeurs sont transmises clairement. Mais en passant à une autre période de temps, il n'y a PAS de données à l'écran.
Ils ne sont PAS transmis de quelque manière que ce soit. ! !!! Et ma question était exactement ça. Et le nombre de barres n'est pas si important ici s'il n'y en a PAS !!!!.
J'ai regardé l'indicateur proposéMTF_LRMA.mq5 mais c'est la même chose. Il passe à une autre période de l'écran et les données passent par la période de l'écran. J'en ai besoin sur un ordinateur de poche.
Par exemple : iClose(NULL, PERIOD_H1, 5) ; sur tous les horizons temporels, cela donnera la même valeur : clôture sur 5 barres sur H1.
Jusqu'à présent, tous les exemples concernaient la correction dunombre de CopyBuffer. Mais le tableau est vide.