Características da linguagem mql5, subtilezas e técnicas - página 243

 
Se você precisar de uma compilação rápida sem um grande impacto no desempenho, poderá usar bibliotecas compiladas - #import .ex5
 
Nikolai Semko #:

talvez então:

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

Não, não funciona. (((

 
Mikola_2 #:

Não, não está funcionando. ((((

Funciona com muita precisão. Eu uso isso. Você pode converter o valor para ENUM_DAY_OF_WEEK

 
Alexey Viktorov #:

Ele funciona com muita precisão. Eu uso isso. Você pode converter o valor para ENUM_DAY_OF_WEEK

Não existe algo como "muito preciso". Ou ele é sempre preciso ou nem sempre é preciso. É como um segundo arenque fresco. Em que período você o testou? Não consegui fazer isso.
 
Mikola_2 #:

Não, não está funcionando. ((((

Os colchetes estão faltando, o resto na divisão por 7 é retirado do número convertido para o tipo uchar.

 
Mikola_2 #:
Não existe algo como "muito preciso". Ou é sempre preciso ou não é. É como um segundo arenque fresco. Em que período você o testou? Não consegui fazer isso.

O que você quer dizer com "qual período"? A função retorna apenas o dia da semana. O que isso tem a ver com o período? Coloque qualquer hora e você obterá o dia da semana.

Coloque sua data de nascimento e você obterá o dia da semana de seu nascimento.

Ou aqui está o dia da semana por hora da vela


 
Aliaksandr Hryshyn #:

Os colchetes estão faltando, o restante ao dividir por 7 é retirado de um número convertido para o tipo uchar.

Está tudo lá. Apenas substituí 24*60*60 de acordo com minha preferência.

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

Resultados acima...

Observe há quanto tempo estou usando essa fórmula


 
Alexey Viktorov #:

Tudo o que está lá dentro é suficiente. Apenas substituí o 24*60*60 de acordo com minha preferência.

resultados acima...

Observe há quanto tempo estou usando essa fórmula.


Não há nenhum erro na tela! Dê uma boa olhada. Eu apontei o erro.

 
Aliaksandr Hryshyn #:

Os colchetes estão faltando, o restante ao dividir por 7 é retirado de um número convertido para o tipo uchar.

Ah, certo! Agora parece ser verdade.
 
Aliaksandr Hryshyn #:

Não há nenhum erro na tela! Dê uma boa olhada. Eu apontei o erro.

Bem, também mostrei o código completo da função. Mais uma vez:

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

Mas concordo com você. Talvez Nikolai tenha escrito de memória e tenha cometido uma imprecisão. Mas não é correto dizer que ela não funciona.