Verificar um dia Teve Operação

 

Bom dia Pessoal, 

Alguém poderia me ajudar em como eu faço para saber se aquele determinado dia teve operação ? não encontrei nenhum função que já faria isso.

Estou desenvolvendo um EA que verifica o dia anterior, mas esse dia anterior pode ser um sábado, um domingo ou ate mesmo um dia que não houve operação, por isso a dúvida de qual seria a melhor forma de verificar se um determinado dia teve operação.

Abraços,

 
Diego Araujo:

Bom dia Pessoal, 

Alguém poderia me ajudar em como eu faço para saber se aquele determinado dia teve operação ? não encontrei nenhum função que já faria isso.

Estou desenvolvendo um EA que verifica o dia anterior, mas esse dia anterior pode ser um sábado, um domingo ou ate mesmo um dia que não houve operação, por isso a dúvida de qual seria a melhor forma de verificar se um determinado dia teve operação.

Abraços,

Bom dia!


//--- último dia em que houve negociação
datetime dia_anterior = iTime(_Symbol, PERIOD_D1, 1);
 
Vinicius de Oliveira:

Bom dia!


Muito bom Vinicius! 

Caso eu queria saber a partir de uma data, exemplo um dia antes de 19/07/2021 (segunda-feira) ou seja seria no dia 16/07/2021 (sexta-feira), é possível ?

 
Diego Araujo:

Muito bom Vinicius! 

Caso eu queria saber a partir de uma data, exemplo um dia antes de 19/07/2021 (segunda-feira) ou seja seria no dia 16/07/2021 (sexta-feira), é possível ?

Sim, você pode usar iBarShift(), também PERIOD_D1, pra localizar o índice (shift) da data pretendida, caso encontre, acrescentar 1 ao valor retornado pela função pra descobrir o dia anterior.


Exemplo:

datetime date_time = D'2021.07.19 00:00';

int indice_anterior = iBarShift(_Symbol, PERIOD_D1, date_time, true);

if(indice_anterior >= 0)
  {
   datetime data_anterior = iTime(_Symbol, PERIOD_D1, indice_anterior + 1);
  }

Veja se é isso . . .

Documentação sobre MQL5: Séries Temporais e Acesso a Indicadores / iBarShift
Documentação sobre MQL5: Séries Temporais e Acesso a Indicadores / iBarShift
  • www.mql5.com
iBarShift - Séries Temporais e Acesso a Indicadores - Referência MQL5 - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
 
Vinicius de Oliveira:

Sim, você pode usar iBarShift(), também PERIOD_D1, pra localizar o índice (shift) da data pretendida, caso encontre, acrescentar 1 ao valor retornado pela função pra descobrir o dia anterior.


Exemplo:

Veja se é isso . . .

Perfeito Vinicius, resolveu o meu problema! 

Muito Obrigado