Pegar hora do TimeTradeServer()

 

Estou desenvolvendo uma condição onde o EA abre ordem somente numa margem de horário pré definida. Para isso, quero utilizar o mínimo de linhas possíveis. Acredito que obtendo as horas do objeto, já resolvo, por exemplo se o TimeTradeServer() retorna '2016.06.17 21:40', quero pegar somente a hora, que nesse caso é '21'

 

Alguma sugestão? 

 
Bruno Salles Pereira:

Estou desenvolvendo uma condição onde o EA abre ordem somente numa margem de horário pré definida. Para isso, quero utilizar o mínimo de linhas possíveis. Acredito que obtendo as horas do objeto, já resolvo, por exemplo se o TimeTradeServer() retorna '2016.06.17 21:40', quero pegar somente a hora, que nesse caso é '21'

 

Alguma sugestão?  

 

Bruno,

Dá uma olhada nesse artigo.

https://www.mql5.com/pt/articles/599 

Fundamentos básicos da programação MQL5: Tempo
Fundamentos básicos da programação MQL5: Tempo
  • 2014.03.19
  • Dmitry Fedoseev
  • www.mql5.com
Este artigo foca nas funções padrões do MQL5 para trabalhar com o tempo, bem como técnicas de programação e funções praticamente úteis para trabalhar com o tempo que são necessárias ao criar Expert Advisors e indicadores. Atenção particular é dedicada à teoria geral da medição de tempo. Este artigo deve ser de interesse principalmente para programadores MQL5 novatos.
 

Amigo, sua indicação foi de grande valia. Pelo exemplo citado, ele usa TimeToString para apresentar parte da informação. Eu não pretendo coletar em string, mas sim em inteiro. Inevitavelmente é preciso migrar pra string e então converter pra int ou há uma maneira mais elegante de escrever?

 
Bruno Salles Pereira:

Amigo, sua indicação foi de grande valia. Pelo exemplo citado, ele usa TimeToString para apresentar parte da informação. Eu não pretendo coletar em string, mas sim em inteiro. Inevitavelmente é preciso migrar pra string e então converter pra int ou há uma maneira mais elegante de escrever?

Olá Bruno,

Note que nesse mesmo artigo citado pelo Otavio existe um exemplo clássico de como acessar valores individuais de data e hora, ver abaixo:

datetime    tm=TimeCurrent();
MqlDateTime stm;
TimeToStruct(tm,stm);
//--- output date components
Alert("Year: "        +(string)stm.year);
Alert("Month: "      +(string)stm.mon);
Alert("Day: "      +(string)stm.day);
Alert("Hour: "        +(string)stm.hour);
Alert("Minute: "     +(string)stm.min);
Alert("Second: "    +(string)stm.sec);
Alert("Day of the week: "+(string)stm.day_of_week);
Alert("Day of the year: "  +(string)stm.day_of_year);

Melhores Cumprimentos,

Rogério Figurelli