Come riferirsi a un tempo particolare - pagina 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. Se usi High[nyitohigh], il tuo codice si rompe su qualsiasi grafico che non sia M15.
  2. Puoi usare StrtoTime, o come ho mostrato precedentemente
 
RaptorUK:

No, perché Time[x] restituisce un datetime. . . ma si può fare . . .

leggere su TimeHour


Ciao a tutti
Un affare fastidioso ha preso tutto il mio tempo per un po', ma ora sono tornato a programmare.

Grazie per tutte queste risposte

Stavo pensando di usare un codice simile per questo intervallo di tempo di trading, ma ora vedo che ci sono molti modi diversi per farlo.
if(Ora() >= 2 && Ora()<17)

Grazie ancora
 
Un'ultima domanda sulle costanti Datetime e sul formato datetime usato per iBarsShift

Vedo i documenti qui su questo:
https://docs.mql4.com/basis/types/datetime

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


Sto cercando di selezionare una candela come questa forse

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

So che 7:15 non è il metodo datetime corretto; eppure è qui che ho problemi a confrontare il tempo giornaliero ricorrente

IBarsShift indica lo stesso schema datetime per la costante datetime, ma sembra essere solo per un datetime parziale e non per il tempo giornaliero ricorrente.

Suppongo che devo usare IBarsShift per trovare lo spostamento per cercare quel particolare tempo di barre e restituisce lo spostamento per quella barra, poi posso usare lo spostamento per selezionare quella candela e usare i suoi dati.
Almeno questo è il modo in cui lo vedo io.


Potrei probabilmente lavorare attraverso quello che sto cercando di fare se potessi capire come selezionare un tempo giornaliero ricorrente piuttosto che un tempo specifico durante 1 data particolare.
E uno che abbia lo stesso formato a Time[] o TimeToStr(Time[]) o qualche metodo simile in modo che io possa fare il confronto e usare i dati per quella candela

Non sono completamente convinto di voler usare IBarsShift perché non voglio nemmeno cercare una barra in base al tempo di apertura

Voglio sapere quando Time[1] o anche Close[1] == a_particular_time

Per favore consigliatemi
Grazie




 
Agent86:
Un'ultima domanda sulle costanti Datetime e il formato datetime usato per iBarsShift

Vedo i documenti qui su questo:
https://docs.mql4.com/basis/types/datetime

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


Sto cercando di selezionare una candela come questa forse

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

So che 7:15 non è il metodo datetime corretto; eppure è qui che ho problemi a confrontare il tempo giornaliero ricorrente

Perché non calcolare semplicemente il valore datetime per 7:15? Come?

Calcola il datetime per la mezzanotte ... aggiungi ( (7 * PERIOD_H1) + 15) * 60

datetime per mezzanotte

 
RaptorUK:
Perché non calcolare semplicemente il valore datetime per le 7:15? Come?
Calcola il datetime per la mezzanotte...aggiungi ( (7 * PERIOD_H1) + 15) * 60

Proprio come ho già postato, in precedenza, su questo thread

Agent86: Se non ti prendi la briga di leggere quello che abbiamo postato e di imparare, stiamo perdendo il nostro tempo con te.

 
WHRoeder:

Proprio come ho già postato, in precedenza, su QUESTO thread

Sì, ma quello era l'anno scorso . . . tutti hanno dormito da allora ;-)
 
RaptorUK:

Perché non calcolare semplicemente il valore datetime per le 7:15? Come?

Calcolare il datetime per la mezzanotte... aggiungere ( (7 * PERIOD_H1) + 15) * 60

datetime per la mezzanotte

Grazie

Quindi potrei codificare qualcosa come

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

Ma qual è il valore di PERIOD_H1 quando non viene usato come valore di enumerazione del timeframe per un indicatore. Non vedo nulla nella documentazione sull'uso di questo in un altro modo.

Ma questo suona come quello che sto cercando per selezionare un tempo particolare per confrontarlo con il tempo di una particolare candela
Grazie
 
WHRoeder:

Proprio come ho già postato, in precedenza, su QUESTO thread

Agent86: Se non ti prendi la briga di leggere quello che abbiamo postato e imparare, stiamo perdendo il nostro tempo con te.

Ciao
Grazie per la risposta

Ho letto il tuo post che riguardava un intervallo di tempo o un intervallo / filtro e ho capito la conclusione ma non le equazioni completamente

Dalla tua risposta devo supporre che non capisco come creare un'espressione che confronti qualcosa come if(Time[1] == 7:15) nella sua forma corretta perché non capisco le equazioni che hai postato.

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

Per favore conferma

Non intendo fare le stesse domande se questa è effettivamente la stessa risposta di cui avevo bisogno, ma non pensavo che lo fosse o non l'avrei chiesto di nuovo.

Grazie


 
RaptorUK:
Sì, ma quello era l'anno scorso . . . tutti hanno dormito da allora ;-)
LOL

Senza dubbio.
Volevo davvero imparare mql velocemente e dedicarci molto più tempo
Purtroppo la mia attività è una completa seccatura che ha consumato troppo tempo l'anno scorso.
Ho fatto alcuni aggiustamenti quindi spero di poter procedere in modo coerente ancora una volta.

Grazie a tutti per le risposte
 
Agent86:
Grazie

Quindi potrei codificare qualcosa come

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

Ma qual è il valore di PERIOD_H1 quando non viene usato come valore di enumerazione del timeframe per un indicatore. Non vedo nulla nella documentazione sull'uso di questo in un altro modo.

Hai davvero bisogno di iniziare a imparare la tua strada attraverso la documentazione . . .

Vai a qualsiasi funzione che usa un TimeFrame e vedrai timeframe enumerazione . . . e si collega a qui: Timeframe enumeration e ti dirà che Period_H1 è un valore di 60 . . . in altre parole 60 minuti . . . 60 minuti * 60 = secondi . . . i datetime sono in secondi.


Quello che hai codificato non funzionerà . . il tuo time_select NON è un datetime . . . ricorda, cos'è un datetime? dalla documentazione . . . "tipo datetime (intero che rappresenta la quantità di secondi trascorsi dalla mezzanotte, 1 gennaio, 1970)" se vuoi un datetime che significa 7:15 deve essere il numero di secondi che sono trascorsi dal 1 gennaio 1970 alle 7:15 di oggi . . .

Quello che hai calcolato è il numero di secondi da mezzanotte alle 7:15 di questa mattina, e questo non è un datetime.

Motivazione: