Marcelo De Sousa Cunha:
Pessoal, tudo bem?
No meu EA, preciso identificar se o candle atual é o primeiro do dia.
Podem me ajudar?
Olá Marcelo,
bom, existem inúmeras possibilidades, mas a mais simples a meu ver, é testar se hora do candle atual é menor que a hora do candle anterior.
Att. Rogério
Conforme prp
Rogerio Giannetti Torres #:
Olá Marcelo,
bom, existem inúmeras possibilidades, mas a mais simples a meu ver, é testar se hora do candle atual é menor que a hora do candle anterior.
Att. Rogério
Implementei algo similar ao proposto, segue codigo.
//+------------------------------------------------------------------+ //| RETORNA O TAMANHO DO GAP DE ABERTURA DO DIA CORRENTE | //+------------------------------------------------------------------+ double getGAPAberturaEmPips() { // SE AINDA NAO CALCULOU O GAP DE ABERTURA - DATA DO CALCULO DE GAP DIFERENTE DA DATA DO DIA ATUAL if (TimeToString(dataCalculoGAPAbertura, TIME_DATE) != TimeToString(TimeCurrent(), TIME_DATE)) { // LOCAL PARA ARMAZENAR OS DADOS PARA LEITURA POSTERIOR MqlRates rates[]; // INVERTE SEQUENCIA ONDE ZERO SENDO ULTIMO CANDLE ArraySetAsSeries(rates, true); // CARREGA DADOS DAS ULTIMAS 25 HORAS (CASO MERCADO 24H E SISTEMA ABERTO ULTIMA HORA DO DIA) CopyRates(Symbol(), PERIOD_H1, 0, 25, rates); // PARA CADA CANDLE DO DIA for (int i = 0; i < 24; i++) { // PROCURA PRIMEIRO CANDLE DO DIA (HORARIO ATUAL MENOR QUE HORARIO ANTERIOR) if (TimeToString(rates[i].time, TIME_MINUTES) < TimeToString(rates[i + 1].time, TIME_MINUTES)) { // VALIDA DIFERENCA DE VALORES PARA SEMPRE RETORNAR POSITIVO if (rates[i].open > rates[i + 1].close) gapAbertura = rates[i].open - rates[i + 1].close; else gapAbertura = rates[i + 1].close - rates[i].open; // GUARDA ULTIMA VEZ QUE ACHOU O GAP PARA CALCULAR APENAS NO PROXIMO DIA dataCalculoGAPAbertura = TimeCurrent(); // GUARDA HORA INICIO PARA USO FUTURO horaInicioDia = rates[i].time; return gapAbertura; } } } return gapAbertura; }
eu faria algo assim (nao testei o codigo)
int bar_index=iBarShift(NULL,PERIOD_CURRENT,iTime(NULL,PERIOD_D1,0)); MqlRates rates[1]; CopyRates(NULL, PERIOD_CURRENT, bar_index, 1, rates);
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Pessoal, tudo bem?
No meu EA, preciso identificar se o candle atual é o primeiro do dia.
Podem me ajudar?