Discussão do artigo "Usando o AutoIt com MQL5"

 

Novo artigo Usando o AutoIt com MQL5 foi publicado:

Este artigo descreve como criar scripts para o terminal MetraTrader 5, integrando MQL5 com AutoIt. Vou mostrar como automatizar várias tarefas usando a interface do usuário do terminal e apresentar uma classe que usa a biblioteca AutoItX.

O AutoIt vem com uma ferramenta chamada AutoIt Window Info Tool que é usada para obter informações sobre as janelas do aplicativo.

Ao arrastar a ferramenta Finder sobre qualquer parte de um aplicativo de destino, podemos obter as propriedades de um componente específico. Esses componentes são chamados de controles. Um controle pode ser um botão, um menu suspenso ou uma guia. Estes são apenas alguns exemplos, existem muitos tipos de controles usados ​​para construir aplicativos. Cada controle está associado a uma janela. Um aplicativo pode ser composto por várias janelas. Normalmente, há uma janela principal, na qual outras janelas filhas são anexadas ou ancoradas. Se as janelas filhas estiverem anexadas ou encaixadas na janela principal do aplicativo, todos os controles incluídos nessas janelas filhas se tornarão parte da janela principal do aplicativo. Ao usar o AutoIt para localizar com precisão um controle, a janela à qual o controle está associado é importante, seja uma janela filha ou a janela principal do aplicativo.

Observando o gráfico abaixo, podemos ver a ferramenta de busca sendo arrastada sobre diferentes regiões de um aplicativo Metatrader 5. Note as configurações do Window Info Tool quando o menu Otions estiver selecionado. As opções Freeze, Always On Top e Use Spy++ Control Detection Logic estão marcadas.


Autor: Francis Dube

 

Você pode me dizer como pressionar o botão que permite ativar/desativar o AutoTrading (Ctrl+E)? Devo usar `ALGOTRADECHECK_BUTTON` ou `WINDOWTEXT_EA` ou talvez outra coisa? Perdoe-me se eu estiver desatento, mas parece que você verifica se os especialistas têm permissão para negociar quando adiciona um deles a um gráfico (mas e se outro EA já estiver lá?), portanto, poderia ser um método público separado para isso.

Obrigado por seu excelente trabalho!

 
Daniel Lagoshniak verifica se os especialistas têm permissão para negociar quando adiciona um deles a um gráfico (mas e se outro EA já estiver lá?), portanto, poderia ser um método público separado para isso.

Obrigado por seu excelente trabalho!

ALGOTRADECHECK_BUTTON e `WINDOWTEXT_EA` só devem ser usados para interagir com diálogos de EA. O que você está tentando fazer não está implementado na classe. Mas isso pode ser feito usando o método ControlSend() do CAutoIt para enviar a combinação de teclas (Ctrl+E) para o terminal ou você pode direcionar o botão na barra de ferramentas e emular um clique com ControlLeftClick()

Quando já houver um EA no gráfico que seja diferente do que está sendo aplicado ao gráfico, o código pode lidar com a caixa de diálogo que aparece e pede para confirmar se o EA existente deve ser removido, após o que o novo EA será adicionado ao gráfico.

 

Código sem comentários... Não é bom...

Obrigado!

 

O AutoIt é uma excelente ferramenta, mas esteja ciente de que a última atualização foi em março de 2018...

;)

 
Artigo muito interessante e útil. Obrigado ao autor!
 
E, por favor, me diga como definir o terceiro parâmetro nessa função int AU3_WinGetPos(string, string, LPRECT); e obter essas coordenadas?
 

há um espião mais útil e da Microsoft no kit VS.

O AutoIt não é um software gratuito (é shareware), você precisa pagar por ele e não está claro como você não viu o artigo promocional.

 
Sim, o AutoIt é ótimo. Na verdade, escrevi AutoMTF no AutoIt
 

Existe alguma maneira de definir a cor do vermelho e do azul no Market Watch como cor sólida e não gradação? Eu uso o Autoit para ler a cor, mas toda vez que executo novamente o aplicativo de negociação, ela muda, fazendo com que o verificador de cor de pixel também mude.

Também preciso de uma maneira de ler o lucro de cada posição aberta usando o Autoit