EA a partir de indicador personalizado

 

Olá, sou novato na programação com o mql5.

Estou tendo dificuldades em criar um EA a partir de um indicador personalizado, eu só quero obter os dados de um indicador que criar e manipulá-los no robô de maneira simples.

Estou tentando algo como o código abaixo, mas parece não ser o caminho certo, eu tomei como base a chamada de um indicador iMA simples.

void OnTick()

{

double stopATR_Array[];

int stopATR_Handle;

stopATR_Array = iCustom(_Symbol, _Period, "StopATR", 10, 1);

ArraySetAsSeries(stopATR_Array, true);

CopyBuffer(stopATR_Handle, 0, 0, 3, stopATR_Array);

}

Alguém poderia me dar o caminho das pedras? Eu encontrei vários códigos diferentes, porem alguns bem complexos e com muitos rodeios.

 
wlysan:

Olá, sou novato na programação com o mql5.

Estou tendo dificuldades em criar um EA a partir de um indicador personalizado, eu só quero obter os dados de um indicador que criar e manipulá-los no robô de maneira simples.

Estou tentando algo como o código abaixo, mas parece não ser o caminho certo, eu tomei como base a chamada de um indicador iMA simples.

void OnTick()

{

double stopATR_Array[];

int stopATR_Handle;

stopATR_Array = iCustom(_Symbol, _Period, "StopATR", 10, 1);

ArraySetAsSeries(stopATR_Array, true);

CopyBuffer(stopATR_Handle, 0, 0, 3, stopATR_Array);

}

Alguém poderia me dar o caminho das pedras? Eu encontrei vários códigos diferentes, porem alguns bem complexos e com muitos rodeios.

    Olá, como vai vc?

    

    Um primeiro ponto é vc fazer a declaração das variáveis em cima, isso pode resolver 50% dos seus problemas;

    O seu código está sem o tratamento de erro, porém funciona. Ocorre que vc está acessando embaixo no ontick();

    Joga pra cima as variáveis e chama o icustom no oninit();


     aaaaa um detalhe, a variável do icustom é a Handle, não a Array


    Um abraço;

 
wlysan:

Olá, sou novato na programação com o mql5.

Estou tendo dificuldades em criar um EA a partir de um indicador personalizado, eu só quero obter os dados de um indicador que criar e manipulá-los no robô de maneira simples.

Estou tentando algo como o código abaixo, mas parece não ser o caminho certo, eu tomei como base a chamada de um indicador iMA simples.

void OnTick()

{

double stopATR_Array[];

int stopATR_Handle;

stopATR_Array = iCustom(_Symbol, _Period, "StopATR", 10, 1);

ArraySetAsSeries(stopATR_Array, true);

CopyBuffer(stopATR_Handle, 0, 0, 3, stopATR_Array);

}

Alguém poderia me dar o caminho das pedras? Eu encontrei vários códigos diferentes, porem alguns bem complexos e com muitos rodeios.

Olá!

Você está confundindo um pouco as bolas...

Talvez você tenha aprendido a ler as coisas via MT4, em MT5, o retorno do iCustom é um Handle (manipulador de indicador) que poderá ser usado depois para obter dados dele, via CopyBuffer...

Se você usa MT5, foque no MT5... Esqueça o MT4.

Somente use a documentação do MT5 para montar seus códigos... Se você procurar no Codebase sobre Stop ATR (Código MQL5) você vai resolver seu problema bem rápido...


;)

Razão: