Questions des débutants MQL5 MT5 MetaTrader 5 - page 532
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
Nous obtiendrons les secondes dont nous avons besoin pour arrondir - l'arrondi est le problème.
duh
et il y a un arrondi au début de la journée. 86400=24*60*60Je n'arrive pas à comprendre comment l'utiliser.
La deuxième valeur nécessite"MqlDateTime&dt_struct// structure pour prendre des valeurs" et je ne comprends pas comment utiliser ce MqlDateTime.
Il y a un temps. L'heure comporte des paramètres tels que : l'année, le mois, le jour, les heures, les minutes, les secondes, etc. En appelant la fonction TimeToStruct(), vous décomposez le temps en ces composantes. Ensuite, par exemple, vous pouvez mettre à zéro les heures, les minutes et les secondes - vous obtenez le début de la journée.
MqlDateTime est un type de données, tout comme int, bool, etc. Il s'agit simplement d'un type composé, c'est-à-dire que pour accéder à ses champs (heures, minutes, secondes...), vous devez utiliser un point. Par exemple : dt_struct.hour - valeur de l'heure. Pour en savoir plus sur les structures, consultez le site https://www.mql5.com/ru/docs/basis/types/classes.
bien
et il y a un arrondi au début de la journée. 86400=24*60*60Il y a du temps. L'heure comporte des paramètres tels que : année, mois, jour, heures, minutes, secondes, etc. En appelant la fonction TimeToStruct(), vous décomposez le temps en ces composantes. Ensuite, par exemple, vous pouvez mettre à zéro les heures, les minutes et les secondes - vous obtenez le début de la journée.
MqlDateTime est un type de données, tout comme int, bool, etc. C'est juste un type composé, c'est-à-dire que pour avoir accès à ses champs (heures, minutes, secondes...) il faut utiliser un point. Par exemple : dt_struct.hour - valeur de l'heure. Pour en savoir plus sur les structures, consultez le site https://www.mql5.com/ru/docs/basis/types/classes.
Selon votre formule, nous obtenons le nombre de jours entre la barre actuelle et la barre à distance, mais ces jours sont conditionnels, c'est-à-dire qu'il peut être 9 heures le jour actuel et 1 heure le jour précédent. Alors la différence en secondes sera de 122400, ce qui équivaut à 1,42 jours - une fois arrondi à 1 jour, et la nécessité d'en avoir 2.
un jour perdu, 23h+24h+9h=2 jours 8h... Je n'ai pas besoin de cette formule si j'en ai besoin :
J'ai besoin de calculer sur chaque graphique de l'intervalle de temps actuel. Pour le calcul, j'ai besoin de connaître la date du cadre temporel supérieur (jours). J'ai joint le code ci-dessus - le but est de connaître sur chaque barre le prix maximal de la TF supérieure au moment de l'ouverture de la barre dans le cadre temporel actuel.
Et vous dites que la structure... :)
un jour perdu, 23h+24h+9h=2 jours 8h... Vous n'avez pas besoin de cette formule si vous en avez besoin :
Encore une fois :Et vous dites que la structure... :)
Pourquoi avez-vous 23 heures - J'ai écrit 1 heure, mais le point ne change pas.
24 (la veille - une heure hier)+24 (hier - une heure aujourd'hui)+8 (après une heure aujourd'hui - moins une heure)=56/24=2,33, ce qui fait deux jours, n'est-ce pas ?
Pourquoi avez-vous 23 heures - J'ai écrit 1 heure, mais l'essence ne change pas.
24 (avant-hier - à l'heure d'hier)+24 (hier - à l'heure d'aujourd'hui)+8 (après une heure d'aujourd'hui - moins une heure) =56/24 = 2,33 c'est-à-dire deux jours, n'est-ce pas ?
23h avant hier +
24h hier +
9h aujourd'hui=
2 jours 8h=2,(33)jours
C'est la bonne façon de faire :
Peu importe, ce n'est pas nécessaire)23h avant hier+
24h hier+
9h aujourd'hui=
2 jours 8h=2,(33)jours
La méthode correcte est la suivante :
Peu importe, ce n'est pas nécessaire)Imaginons maintenant qu'il ne soit pas 9h ce jour mais 19
24(avant-hier +24(hier - 1h aujourd'hui)+18(après 1h aujourd'hui - moins 1h)=66/24=2,75 c'est-à-dire que cela fait trois jours, êtes-vous d'accord ?
Comme si la gamme n'avait pas changé chaque jour, et que le calcul pendant la journée donnait alors 2, puis 3 jours - c'est là que le bât blesse.
La variante
int DayN=time[0]/86400-time[163]/86400;
Cela ne fonctionne pas non plus si nous supposons que la barre actuelle est de 1 heure et que la barre estimée est de 23 heures, auquel cas le résultat du calcul est zéro et devrait être 1.
Ce sera 1, les deux temps sont d'abord arrondis à un jour entier, puis soustraits.