EA - Vwap cript no robo

 

Boa Tarde Pessoal, Tudo bem ?


Poderiam me tirar uma duvida ?


Estou tentando utilizar o indicador "vwap", porem só tenho o script do mesmo, tem como no Robo EA colocar por exemplo um include que execute o script/indicador/vwap e retorna o valor  vwap em uma variável no EA  ?


Muito Obrigada

 
 Robo vwap?
 
Vc conseguiu fazer?
 
MicheliBarcello:

Boa Tarde Pessoal, Tudo bem ?


Poderiam me tirar uma duvida ?


Estou tentando utilizar o indicador "vwap", porem só tenho o script do mesmo, tem como no Robo EA colocar por exemplo um include que execute o script/indicador/vwap e retorna o valor  vwap em uma variável no EA  ?


Muito Obrigada

Vamos por PARTES, como diria JACK ... 😁

Primeiro você tem um indicador ou um script ?!?! Isto por que são coisas diferentes ....

Se você tem um indicador, em principio SIM, daria para transferir os dados do indicador para o EA a fim de usar os dados. Mas, porém, toda via e entretanto, existe um pequeno problema ai.

Se você tem o código do indicador, beleza, problema resolvido. Se não tem o código você precisará verificar uma coisa.

A unica maneira de você, simples, transferir dados do indicador para o EA é usando um BUFFER. Aqui é que está o problema. Sem ter o código, você teria que verificar se o indicador foi bem construido, a ponto de permitir a comunicação entre ele e o EA. Caso o indicador não tenha sido bem construido, isto não será possível.

Normalmente grande parte dos programadores amadores, não se atentam ao fato de que é preciso dar um nome ao indicador, a fim de permitir transferir os dados calculados pra fora do mesmo, ou seja para ser usado em um EA por exemplo.

No código abaixo, você pode ver com ler os dados do indicador VWAP para ser usado no EA.

        double Buff[];
        
        if (CopyBuffer(ChartIndicatorGet(ChartID(), 0, "VWAP"), 0, 0, 2, Buff) > 0)
        {
//Use o valor calculado pelo indicador VWAP a partir daqui ...
        };

A única pendencia é justamente a STRING "VWAP", você deverá usar o mesmo nome que estiver no indicador. Detalhe: NÃO é o nome do arquivo executável, e sim o nome que está definido dentro do arquivo.

Existe um outra solução, porém ela tem alguns pequenos incovenientes ... a mesma pode ser vista logo abaixo:

        if (CopyBuffer(iCustom(NULL, 0, "VWAP.ex5"), 0, 0, 2, Buff) > 0)
        {
//Use o valor apartir daqui ...
        };

Neste caso a STRING "VWAP.ex5" representa de fato o nome do arquivo executável, mas você não deve colocar a VWAP no gráfico, antes de lançar o EA no gráfico, quem neste caso deverá lançar a VWAP no gráfico é o EA.

A um tempo atras fiz um artigo que talvez lhe ajude a entender melhor o que deve ser feito. Dê uma lida nele já que trata justamente do que você está querendo fazer : https://www.mql5.com/pt/articles/10329

Desenvolvendo um EA de negociação do zero (Parte 10): Acessando indicadores personalizados
Desenvolvendo um EA de negociação do zero (Parte 10): Acessando indicadores personalizados
  • www.mql5.com
Como acessar Indicadores personalizados diretamente no EA ? Um EA de negociação, só será realmente bem explorado se for possível você usar indicadores personalizados nele, caso contrário ele será apenas um conjunto de códigos e instruções.