Questions des débutants MQL5 MT5 MetaTrader 5 - page 530
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
Aidez-moi ! (MQL4)
J'ai besoin d'obtenir l'heure d'ouverture de la journée sur le graphique M15 en tenant compte de chaque barre - pour l'indicateur.
J'ai décidé de calculer en secondes, en tenant compte de la barre actuelle (0), mais je dois me tromper.
D_Shift=(Open_time-pos*15*60-(Open_time-Open_timeTF))/1440*60;
Si pour l'indicateur, alors :
Mais : ce code sera exécuté à chaque fois que OnCalculate() est entré - selon vos besoins, vous pouvez ajouter un drapeau bool ou placer le code dans une fonction séparée.
Si pour l'indicateur, alors :
Mais : ce code sera exécuté à chaque fois que OnCalculate() - selon vos besoins, ou ajouter un drapeau bool ou placer le code dans une fonction séparée.
Merci, mais à chaque tic-tac faire un nouveau calcul n'est pas bon - je dois analyser votre code, cependant, alors que je veux comprendre pourquoi mon code ne fonctionne pas, dans le journal sont retournés des chiffres étranges
il s'avère qu'il y a une différence de 479 barres entre la première barre du jour et la barre actuelle - pourquoi ?
Merci, mais recalculer à chaque tick n'est pas bon - je dois réfléchir à votre code, cependant, alors que je cherche à comprendre pourquoi mon code ne fonctionne pas, le log renvoie des chiffres étranges
il s'avère qu'il y a une différence de 479 barres entre la première barre du jour et la barre actuelle - pourquoi ?
J'ai indiqué que je ne suis pas médium et que c'est pour ça :
Mais : ce code sera exécuté chaque fois que OnCalculate() est entré- ici, selon vos besoins, vous pouvez ajouter un drapeauboolou mettre le code dans une fonction séparée.
J'ai précisé que je ne suis pas médium et c'est pour ça :
Karputov Vladimir, je ne comprends pas votre code - je suis un débutant dans ce domaine et je n'ai jamaisutilisé la fonctionOnCalculate auparavant, donc je n'arrive pas à comprendre ce que letaux_totalest calculé ici et, plus important encore, où il doit être renvoyé ? Je ne comprends pas non plus comment faire pour que tout cela soit une fonction séparée... c'est difficile à comprendre sans commentaires.
Voici le code complet de l'indicateur MQL4 :
Algorithme de son fonctionnement : Lorsque vous démarrez l'indicateur, vous définissez l'intervalle de temps de la minuterie (par exemple, 10 secondes) - cela signifie que toutes les 10 secondes, la minuterie sera déclenchée :
et la variableIsDefineTime reçoit la valeur true. A quoi ça sert ? Lorsque IsDefineTime=true, nous pouvons, dans OnCalculate(), entrer dans une boucle pour déterminer l'heure de début de la journée :
Dans cette boucle, nous commençons à parcourir le tableau time[] (ce tableau stocke les valeurs du temps d'ouverture) à partir de la barre la plus à droite (son index est "0"). Lorsque le début de la journée est trouvé, nous annulons sa valeur et attribuons à la variableIsDefineTime la valeurfalse - de cette façon, nous nous protégeons pour ne plus entrer dans le cycle de détermination de l'heure de début de la journée, jusqu'à ce que la minuterie s'exécute à nouveau.
Karputov Vladimir , merci pour cette précision, cependant, comment cela résout-il le problème ?
En gros, nous devons connaître la barre de l'unité de temps actuelle qui correspond à la barre du début de la journée. Nous devons savoir sur chaque barre et calculer et dessiner l'indicateur en conséquence.
Karputov Vladimir , merci pour cette précision, cependant, comment cela résout-il le problème ?
En gros, nous devons connaître la barre de l'unité de temps actuelle qui correspond à la barre du début de la journée. Vous devez le connaître sur chaque barre et calculer et dessiner l'indicateur en conséquence.
C'est ainsi que vous avez demandé et c'est ainsi qu'on vous a répondu :) . Et si vous voulez non pas l'heure de la première barre de ce jour, mais l'index de cette barre - c'est ici, lorsque vous imprimez le début de la journée :
Vous utilisez l'indice [i-1] - c'est le numéro de la première barre du jour.
Comme vous l'avez demandé, vous avez obtenu votre réponse :) . Et si vous n'avez pas besoin de l'heure de la première barre de la journée, mais de l'index de cette barre, c'est ici, lorsque vous imprimez le début de la journée :
Vous utilisez l'indice [i-1] - c'est le numéro de la première barre du jour.
Je suis d'accord - j'ai demandé de manière confuse.
Il y a un indicateur dans l'application que j'ai créée, mais il ne compte pas correctement. Je suis terriblement bête et ne comprends pas, même après vos explications, comment lui faire déterminer correctement l'indice correspondant à la première barre du début de journée.
Je m'excuse pour l'insolence, mais peut-être pouvez-vous me montrer comment combiner votre code et le mien ?
-Aleks-:
Comment faire pour qu'il détecte correctement l'indice correspondant à la première barre du début de journée ?
C'est un peu le bazar :