Comment faire référence à un moment particulier - page 3

 
datetime ejfel = StrToTime("00:00");
int shift=iBarShift(NULL,PERIOD_M15,ejfel,true);
nyitohigh=iHigh(NULL,PERIOD_M15,shift);
nyitolow=iLow(NULL,PERIOD_M15,shift);
  1. Soit vous spécifiez toujours la période, soit vous ne la spécifiez jamais (utilisez NULL à la place.) Si vous utilisez High[nyitohigh], votre code se casse sur tout graphique autre que M15.
  2. Vous pouvez utiliser StrtoTime, ou comme je l'ai montré précédemment
 
RaptorUK:

Non, car Time[x] renvoie une date... mais vous pouvez le faire...

se renseigner sur TimeHour


Bonjour à tous
Des affaires ennuyeuses ont pris tout mon temps pendant un moment, mais je suis de retour au codage maintenant.

Merci pour toutes ces réponses

J'ai envisagé d'utiliser un code de ce type pour cette plage de temps de négociation, mais je vois maintenant qu'il y a plusieurs façons différentes de procéder.
if(Hour() >= 2 && Hour()<17)

Merci encore
 
Une dernière question sur les constantes Datetime et le format de date utilisé par iBarsShift.

Je vois les documents ici à ce sujet :
https://docs.mql4.com/basis/types/datetime

https://docs.mql4.com/series/iBarShift


J'essaie de sélectionner une bougie comme celle-ci peut-être

if(TimeToStr(Time[1]) == 7:15)
Print(Low[1], " 7:15 low") ;

Je sais que 7:15 n'est pas la bonne méthode de temps de date ; et pourtant, c'est ici que j'ai des difficultés à comparer les temps quotidiens récurrents

IBarsShift indique le même schéma de temps de date pour la constante de temps de date, mais il semble que ce soit seulement pour un temps de date partiel et non pour un temps quotidien récurrent.

Je suppose que je dois utiliser IBarsShift pour trouver le décalage à rechercher pour l'heure de cette barre particulière et qu'il renvoie le décalage pour cette barre, puis je peux utiliser le décalage pour sélectionner cette bougie et utiliser ses données.
Du moins, c'est ainsi que je vois les choses.


Je pourrais probablement faire ce que j'essaie de faire si je pouvais trouver comment sélectionner un temps qui se répète quotidiennement plutôt qu'un temps spécifique pendant une date particulière.
Et une qui a le même format à Time[] ou TimeToStr(Time[]) ou une méthode similaire afin que je puisse faire la comparaison et utiliser les données pour cette bougie.

Je ne suis pas complètement convaincu de vouloir utiliser IBarsShift parce que je ne veux pas vraiment rechercher une barre par heure d'ouverture non plus.

Je veux savoir quand Time[1] ou même Close[1] == a_particular_time

Merci de me conseiller
Merci




 
Agent86:
Une dernière question sur les constantes Datetime et le format de datetime utilisé pour iBarsShift

Je vois les documents ici à ce sujet :
https://docs.mql4.com/basis/types/datetime

https://docs.mql4.com/series/iBarShift


J'essaie de sélectionner une bougie, comme ceci peut-être

if(TimeToStr(Time[1]) == 7:15)
Print(Low[1], " 7:15 low") ;

Je sais que 7:15 n'est pas la bonne méthode de datetime ; et pourtant c'est ici que j'ai du mal à comparer le temps récurrent quotidien.

Pourquoi ne pas simplement calculer la valeur de datetime pour 7:15 ? Comment ?

Calculer la date-heure pour minuit ... ajouter ( (7 * PERIOD_H1) + 15) * 60

datetime pour minuit

 
RaptorUK:
Pourquoi ne pas simplement calculer la valeur de la date de 7:15 ? Comment ?
Calculer la date de minuit ... ajouter ( (7 * PERIOD_H1) + 15) * 60

Tout comme j'ai déjà posté, précédemment, sur CE fil de discussion

Agent86: Si vous ne prenez pas la peine de lire ce que nous avons publié et d'apprendre, nous perdons notre temps avec vous.

 
WHRoeder:

Tout comme j'ai déjà posté, précédemment, sur CE fil de discussion

Oui, mais c'était l'année dernière... tout le monde a dormi depuis...)
 
RaptorUK:

Pourquoi ne pas simplement calculer la valeur de la date pour 7:15 ? Comment ?

Calculer la date de minuit . . . ajouter ( (7 * PERIOD_H1) + 15) * 60

datetime pour minuit

Merci

Je pourrais donc coder quelque chose comme

datetime time_select = ( (7 * PERIOD_H1) + 15) * 60
if(Time[1] == time_select)
Print(Time[1], '' et", Low[1]) ;

Mais qu'est-ce que la valeur PERIOD_H1 lorsqu'elle n'est pas utilisée comme valeur d'énumération de timeframe pour un indicateur. Je ne vois rien dans la documentation sur l'utilisation de cette valeur d'une autre manière.

Mais cela ressemble à ce que je cherche pour sélectionner un moment particulier pour le comparer avec le moment d'une bougie particulière.
Merci
 
WHRoeder:

Tout comme j'ai déjà posté, précédemment, sur CE fil de discussion

Agent86: Si vous ne prenez pas la peine de lire ce que nous avons posté et d'apprendre, nous perdons notre temps avec vous.

Bonjour
Merci pour la réponse

J'ai lu votre message qui concernait une plage de temps ou une plage/filtre et j'ai compris la conclusion mais pas les équations complètement.

Par votre réponse, je dois supposer que je ne comprends pas comment créer une expression qui comparerait quelque chose comme if(Time[1] == 7:15) dans sa forme correcte parce que je ne comprends pas les équations que vous avez postées.

 
datetime now = Time[0],
         bod = now - now % 86400,
         HR1800 = bod + 18*3600,
         HR2100 = bod + 21*3600;
if (Time[1] >= HR1800 && Time[1] < HR2100) ...

Veuillez confirmer

Je ne veux pas poser les mêmes questions si c'est en fait la même réponse que celle dont j'avais besoin, mais je ne pensais pas que c'était le cas sinon je ne l'aurais pas posée à nouveau.

Merci


 
RaptorUK:
Oui, mais c'était l'année dernière... Tout le monde a dormi depuis...)
LOL

Sans aucun doute.
Je voulais vraiment apprendre mql rapidement et passer beaucoup plus de temps dessus.
Malheureusement, mon entreprise est une nuisance complète qui a consommé beaucoup trop de temps l'année dernière.
J'ai fait quelques ajustements et j'espère pouvoir à nouveau procéder de manière cohérente.

Merci à tous pour les réponses
 
Agent86:
Merci

Je pourrais donc coder quelque chose comme :

datetime time_select = ( (7 * PERIOD_H1) + 15) * 60
if(Time[1] == time_select)
Print(Time[1], '' et", Low[1]) ;

Mais qu'est-ce que la valeur PERIOD_H1 lorsqu'elle n'est pas utilisée comme valeur d'énumération de timeframe pour un indicateur. Je ne vois rien dans la documentation sur l'utilisation de cette valeur d'une autre manière.

Vous devez vraiment commencer à vous familiariser avec la documentation...

Allez dans n'importe quelle fonction qui utilise un TimeFrame et vous verrez timeframe enumeration ... et il y a un lien vers ici : Timeframe enumeration et cela vous dira que Period_H1 est une valeur de 60 . . . en d'autres termes 60 minutes . . . 60 mins * 60 = secondes ... les dates sont exprimées en secondes.


Ce que vous avez codé ne fonctionnera pas ... votre time_select n' est PAS un datetime ... rappelez-vous, qu'est-ce qu'un datetime ? d'après la documentation ... "datetime type (integer representing the amount of seconds elapsed from midnight, 1 January, 1970)" si vous voulez un datetime qui signifie 7:15 am il doit être le nombre de secondes qui se sont écoulées du 1 Jan 1970 à 7:15 am today ...

Ce que vous avez calculé est le nombre de secondes entre minuit et 7h15 ce matin, et ce n'est pas une date.

Raison: