Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 243

 
Se si ha bisogno di una compilazione veloce senza un grande impatto sulle prestazioni, si possono usare librerie compilate - #import .ex5
 
Nikolai Semko #:

forse allora:

uchar WhatWeekDay(datetime t) {
   return uchar(t/(24*60*60)+4 )%7;
}

No, non funziona. ((()

 
Mikola_2 #:

No, non funziona. ((((

Funziona in modo molto preciso. Io uso questo. È possibile convertire il valore in ENUM_DAY_OF_WEEK

 
Alexey Viktorov #:

Funziona in modo molto preciso. Io uso questo. È possibile convertire il valore in ENUM_DAY_OF_WEEK

Non esiste una cosa "molto accurata". O è sempre preciso, o non è sempre preciso. È come una seconda aringa fresca. Su quale periodo l'hai testato? Non ci sono riuscito.
 
Mikola_2 #:

No, non funziona. ((((

Mancano le parentesi, il resto della divisione per 7 viene preso dal numero convertito in tipo uchar.

 
Mikola_2 #:
Non esiste una cosa "molto precisa". O è sempre preciso o non lo è. È come una seconda aringa fresca. Su quale periodo l'hai testato? Non ci sono riuscito.

Cosa intendi con "quale periodo"? La funzione restituisce solo il giorno della settimana. Cosa c'entra il periodo? Se inserisci un'ora qualsiasi, ottieni il giorno della settimana.

Mettete la vostra data di nascita e otterrete il giorno della settimana in cui siete nati.

Oppure ecco il giorno della settimana in base all'ora della candela


 
Aliaksandr Hryshyn #:

Mancano le parentesi, il resto quando si divide per 7 viene preso da un numero castato nel tipo uchar.

È tutto lì. Ho solo sostituito 24*60*60 a mio piacimento.

uchar WhatWeekDay(datetime t)
 {
  return uchar(t/(PeriodSeconds(PERIOD_D1))+4)%7;
 }

Risultati sopra...

Si noti che sto usando questa formula da molto tempo, dal momento che


 
Alexey Viktorov #:

Tutto quello che c'è dentro è sufficiente. Ho solo sostituito il 24*60*60 a mio piacimento.

risultati sopra...

Si noti quanto a lungo ho usato questa formula.


Non c'è alcun errore nella schermata! Guardate bene. Ho evidenziato l'errore.

 
Aliaksandr Hryshyn #:

Mancano le parentesi, il resto quando si divide per 7 viene preso da un numero castato nel tipo uchar.

Oh, giusto! Ora sembra essere vero.
 
Aliaksandr Hryshyn #:

Non c'è nessun errore sullo schermo! Guardate bene. Ho indicato l'errore.

Ho mostrato anche il codice completo della funzione. Di nuovo:

uchar WhatWeekDay(datetime t)
 {
  return uchar(t/(PeriodSeconds(PERIOD_D1))+4)%7;
 }

Sono comunque d'accordo con te. Forse Nikolai ha scritto a memoria e ha commesso un'imprecisione. Ma non è del tutto corretto dire che non funziona.