Como usar um EA, com interface gráfica, no testador de estratégias do MT5

 

Olá a todos,

Minha dificuldade está em como testar meu EA, que possui uma interface gráfica, no testador de estratégias do MT5.

Ao inserir o EA no testador, e iniciar o teste em si, não consigo gerar eventos ao clicar nos botões do EA (compra, venda, zerar posições...). É como se meu EA não estivesse na tela de testes.

Por acaso existe alguma configuração necessária no testador?

Ou realmente não é possível testar um EA que possua uma interface gráfica, onde os eventos de compra e venda são gerados a partir do clique de botões?

Abraço a todos.

 
Márcio Hermes:

Olá a todos,

Minha dificuldade está em como testar meu EA, que possui uma interface gráfica, no testador de estratégias do MT5.

Ao inserir o EA no testador, e iniciar o teste em si, não consigo gerar eventos ao clicar nos botões do EA (compra, venda, zerar posições...). É como se meu EA não estivesse na tela de testes.

Por acaso existe alguma configuração necessária no testador?

Ou realmente não é possível testar um EA que possua uma interface gráfica, onde os eventos de compra e venda são gerados a partir do clique de botões?

Abraço a todos.

Vamos começar do começo... Foi você quem desenvolveu o EA?
 
Flavio Jarabeck:
Vamos começar do começo... Foi você quem desenvolveu o EA?

Sim.

Para dar mais detalhes não explicados:

 - opero Fundos Imobiliários. Sei que muitos vão dizer que é chato e não tem  muita liquidez (o que importa é lucro!). Perfil de cada um!

 - operando, percebi que seria melhor se pudesse automatizar alguns procedimentos. Então nasceu a ideia de um EA que atendesse minha necessidade.

 - tive que aprender a programar usando MQL5, pois é diferente de JAVA que trabalha com Orientação a Objeto. Já MQL5 trabalha com eventos. 

 - a melhor opção era uma interface gráfica, pois no caso de FII, não dá para simplesmente usar uma média móvel, ou um nível de preço ... , para FII é Book de Ofertas, Times & Trades e um gráfico de 5 minutos está ótimo. Simples assim. Sem muita frescura.

 - os eventos de compra e venda são gerados através de botões.

 - e só para complementar: INTERFACE GRÁFICA EM 'C', É FOGO!! É QUASE JOGAR LEGO. PEÇA POR PEÇA.

 Desculpe não ter detalhado antes. Vou pegando o jeito a cada postagem!!

 
Márcio Hermes:

Sim.

Para dar mais detalhes não explicados:

 - opero Fundos Imobiliários. Sei que muitos vão dizer que é chato e não tem  muita liquidez (o que importa é lucro!). Perfil de cada um!

 - operando, percebi que seria melhor se pudesse automatizar alguns procedimentos. Então nasceu a ideia de um EA que atendesse minha necessidade.

 - tive que aprender a programar usando MQL5, pois é diferente de JAVA que trabalha com Orientação a Objeto. Já MQL5 trabalha com eventos. 

 - a melhor opção era uma interface gráfica, pois no caso de FII, não dá para simplesmente usar uma média móvel, ou um nível de preço ... , para FII é Book de Ofertas, Times & Trades e um gráfico de 5 minutos está ótimo. Simples assim. Sem muita frescura.

 - os eventos de compra e venda são gerados através de botões.

 - e só para complementar: INTERFACE GRÁFICA EM 'C', É FOGO!! É QUASE JOGAR LEGO. PEÇA POR PEÇA.

 Desculpe não ter detalhado antes. Vou pegando o jeito a cada postagem!!

O grande problema do MT5 é que ele peca MUITO em termos de boleta, se comparado a um Tryd/Profit/Protrader. Some-se a isso as limitações de fazer Backtest, com esse nível de interação...

Desculpe não poder te ajudar mais, nunca tentei interagir manualmente durante o Backtest...

Talvez tenha alguma alma bondosa com essa experiência!


Sorte aí!


;)

 

Faz sentido interagir manualmente em um backtest?

Se é você que decide a hora de comprar e de vender clicando em um botão, o que este backtest está otimizando?

obs: não é um questionamento retórico, é uma curiosidade mesmo, só pra entender que tipo de teste vc está fazendo.

 
Trader_Patinhas:

Faz sentido interagir manualmente em um backtest?

Se é você que decide a hora de comprar e de vender clicando em um botão, o que este backtest está otimizando?

obs: não é um questionamento retórico, é uma curiosidade mesmo, só pra entender que tipo de teste vc está fazendo.

Na verdade existe, vi um trader fazer isso em trades semi-automatizados, onde ele não era veloz o suficiente para entrar no trade, mas depois, a saída, era por conta dele... 


;)

 
Trader_Patinhas:

Faz sentido interagir manualmente em um backtest?

Se é você que decide a hora de comprar e de vender clicando em um botão, o que este backtest está otimizando?

obs: não é um questionamento retórico, é uma curiosidade mesmo, só pra entender que tipo de teste vc está fazendo.


1º pergunta:

 - O EA desenvolvido, necessita de interação através de clique de botões pelo fato de operar com FIIs (Fundo de Investimento Imobiliário).

FIIs não têm muita liquidez, logo, é preciso observar os níveis de preço para realizar uma entrada e saída e aproveitar os momentos de maior volatilidade do dia. Não dá para usar indicadores que são tradicionalmente empregados em EAs.

2ª pergunta:

 - Gostaria de utilizar o backtest somente para realizar operações e observar o comportamento do EA com relação a BUGS e possíveis melhorias.

Sei que é um ambiente simulado, e tem limitações.

Utilizo um gráfico, um book de ofertas agrupado por preço e um book de ofertas ordem a ordem para ver os players, e um times and trades.

Uma breve explanação sobre o EA:

a) A compra e a venda é o usuário que decide ao clicar nos botões de compra e venda;

b) Após ter efetuado uma compra:

b.a) se o usuário deixou configurado o valor da ordem de venda, o EA automaticamente lança uma ordem de venda, do tipo SELL_LIMIT, neste preço configurado;

b.b) se o usuário preferir, poderá lançar uma ordem de venda quando achar necessário;

b.c) há um campo, onde o usuário pode deixar configurado em qual preço o EA vai laçar uma ordem de venda (agressão de compra). O EA fica monitorando o preço BID, e quando este valor for igual ou maior, verifica se tem cotas disponíveis. Caso tenha cotas para vender, lança uma ordem de venda, que vai consumir cotas até este valor definido. Se a ordem não for consumida por inteiro, é cancelada pelo EA.

c) Após ter efetuado uma venda:

c.a) se o usuário deixou configurado o valor da ordem de compra, o EA automaticamente lança uma ordem de compra, do tipo BUY_LIMIT, neste preço;

c.b) se o usuário preferir, poderá lançar uma ordem de compra quando achar necessário;

c.c) Não é possível operar vendido em FIIs.

d) Existem outros botões que realizam funções diversas como:

                d.a) selecionar a ordem de compra mais próxima do BID, e deslocar até este valor (BID); deslocar até BID + R$0,01; deslocar até BID – R$0,01;

                d.b) selecionar a ordem de venda mais próxima do ASK e a deslocar até este valor (ASK); deslocar até ASK - R$0,01; deslocar até ASK + R$0,01;

                d.c) selecionar TODAS as ordens de compra, e deslocar até o valor BID; deslocar até BID + R$0,01; deslocar até BID – R$0,01;

                d.d) selecionar TODAS as ordens de venda, e deslocar até o valor ASK; deslocar até ASK - R$0,01; deslocar até ASK + R$0,01;

É uma forma de “brigar” com os players!!

Existem outras funções, mas creio que com o que foi descrito já dá para ter uma ideia do tanto de interação que é possível.

 
Flavio Jarabeck:

O grande problema do MT5 é que ele peca MUITO em termos de boleta, se comparado a um Tryd/Profit/Protrader. Some-se a isso as limitações de fazer Backtest, com esse nível de interação...

Desculpe não poder te ajudar mais, nunca tentei interagir manualmente durante o Backtest...

Talvez tenha alguma alma bondosa com essa experiência!


Sorte aí!


;)

As operações de compra e venda são realizadas exclusivamente pelo EA. A boleta do MT5 não atende minhas necessidades.

O backtest será para observar o funcionamento do EA, encontrar BUGs e possíveis melhorias.

 
Márcio Hermes:

As operações de compra e venda são realizadas exclusivamente pelo EA. A boleta do MT5 não atende minhas necessidades.

O backtest será para observar o funcionamento do EA, encontrar BUGs e possíveis melhorias.

Entendi. Faz sentido. Até porque nesses ativos pouco líquidos as coisas acontecem muito devagar. Então fazer um backtest é uma forma de acelerar o processo de depuração operando contra um mercado simulado que anda bem mais rápido que o mercado real, te permitindo testar várias semanas/meses de operação em poucas horas, e assim vc descobre e conserta os bugs mais rápido.

Legal! Obrigado pela explicação. 

 
Flavio Jarabeck:

Na verdade existe, vi um trader fazer isso em trades semi-automatizados, onde ele não era veloz o suficiente para entrar no trade, mas depois, a saída, era por conta dele... 


;)


Se "esbarar" com esse trader, pergunte como ele faz isso por gentileza. Por hora, vou continuar procurando a solução. 

E quando encontrar esta solução, volto a este tópico e descreverei como solucionar esse "problema".

Razão: