Não consigo pegar valores diários dos meus MA

 

Pessoal, eu estou tentando criar um EA básico de cruzamento de duas médias(MA9 e MA40), contudo quando o coloquei para rodar tive algumas divergências do que eu esperava. Eu gostaria de que diariamente eu ficasse vendo se a MA9 está maior do que a MA40, se sim, efetuar uma compra, caso contrário efetuar uma venda. O que acontece é que aparentemente eu estou pegando valores em interválos de tempo muito pequenos, de modo que estou fazendo compras intraday.

EDIT: Não sei se ficou claro mas esse gráfico é uma visualização Daily do papel que estou testando, ou seja, esses candles são diários.

O que está ocorrendo é que se no intraday as médias ficarem se cruzando eu fico fazendo várias operações de compra e venda, o que não é meu objetivo.


Eu fiquei printando o valor dos meus indicadores e deixarei aqui esses prints e o trecho do código onde isso ocorre.

 

// ...
void StrategyTest(){
    
    printf("%f - %f", iMA1Buffer[0], iMA2Buffer[0]);
    // Checando caso base(início)
    if (iMA1Buffer[0] > iMA2Buffer[0] && !start)
        return;
    else if (iMA1Buffer[0] <= iMA2Buffer[0] && !start)
        start = 1;
    
    if (start) { // Inicia o processo de verificação
        if (iMA1Buffer[0] > iMA2Buffer[0]) // Cruzamento das médias móveis
            BuyOrder();
        else
            SellOrder();
    }
}

void GetValueIndicator(double& buffer[],
                        int ind_period,
                        int ind){
    CopyBuffer(ind, 0, 0, ind_period, buffer);
    ArraySetAsSeries(buffer, true);                           
}

void OnTick(){
    GetValueIndicator(iMA1Buffer, ma1_period, _iMA1);
    GetValueIndicator(iMA2Buffer, ma2_period, _iMA2);
    StrategyTest();
}
// ...

Talvez eu precise alterar esse meu copybuffer a fim de conseguir colher todos os tickes que correspondem ao dia, mas não sei exatamente como fazer e nem se é essa a solução, eu estou pegando sempre o iMA1Buffer[0] e o iMA2Buffer[0] , pois achei que a posição 0 seria o dia passado, como coloquei a simulação para rodar em Daily. O ideal seria eu conseguir verificar as 16h20 de cada dia, pois provavelmente não teria tanta variação até as 17h, e caso eu estivesse no meu gatilho eu venderia ou compraria o papel. Alguém pode me dizer como eu posso fazer isso? 


Desde já, obrigado.


EDIT2: Comecei a mexer com mql5 ontem, então desculpa qualquer coisa.

Razão: