Olá pessoal,
Preciso comunicar o EA com uma aplicação em java.
Pensei de cara em fazer da maneira rencomendada número 1 em aulas de Sistemas Operacionais (comunicação por arquivos sendo que ambos possuem a capacidade de receber um evento todas as vezes que o arquivo é alterado). Isso é bem eficiente mas não encontrei em Mql5 uma forma de receber eventos com a atualização do arquivo, o que me obrigaria a fazer espera ocupada (descarto a possibilidade pela ineficiencia pois eu precisaria fazer em dezenas de arquivos).
Bom. Parti para a segunda recomendação mais popular: sockets.
Mas ao ler nos fóruns muita gente reclama da estabilidade de algumas dlls para socket em mql5 e também de algumas terem comunicação apenas unidirecional. E eu preciso fazer ambas as direções.
Aí vao minhas perguntas:
1) alguém sabe implementar um whatcher de arquivos em mql5 sem realizar espera ocupada?
2) alguém conhece e usa alguma coisa para conectar via socket tcp algo que seja bidirecional para mql5, e confiável?
Agradeco a atenção pessoal!
Abraços
Olá Humberto, essa intercomunicação com seu sistema em java vc pode fazer de várias formas, das quais já experimentei a webrequests e arquivos e funcionou bem:
1- WebRequests (através de webservices da aplicação, no meu caso era python/django) - https://www.mql5.com/en/docs/network/webrequest
2- via arquivos mesmo, onde faz a verificaçao a cada tick, funciona bem se pretende apenas comprar ou vender a partir de um sistema interno, pra uma comunicação mais complexa
pode ficar um pouco lento, coloquei um código que fiz pra fazer isso há um tempo atrás que funcionou bem.
3 - Via banco de dados MySQL , nunca testei mas parece funcionar bem e ser confiável - https://www.mql5.com/en/articles/932
![Documentation on MQL5: Common Functions / WebRequest Documentation on MQL5: Common Functions / WebRequest](/i/community/logo_mql5_small.png)
- www.mql5.com
Olá Humberto,
Concordo com o Rodrigo quanto à facilidade do WebRequest, mas acredito que não resolveria o problema pois também é uma solução por polling, além do fato de ter maior latência.
Realmente sockets e pipes já vi vários tipos de problemas, embora não seja algo inviável também.
Entretanto, a maior parte dos programas de espelhamento de trades do MT5 utilizam polling de arquivos, por ser uma transferência rápida e robusta, e sem depender de DLLs.
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Olá pessoal,
Preciso comunicar o EA com uma aplicação em java.
Pensei de cara em fazer da maneira rencomendada número 1 em aulas de Sistemas Operacionais (comunicação por arquivos sendo que ambos possuem a capacidade de receber um evento todas as vezes que o arquivo é alterado). Isso é bem eficiente mas não encontrei em Mql5 uma forma de receber eventos com a atualização do arquivo, o que me obrigaria a fazer espera ocupada (descarto a possibilidade pela ineficiencia pois eu precisaria fazer em dezenas de arquivos).
Bom. Parti para a segunda recomendação mais popular: sockets.
Mas ao ler nos fóruns muita gente reclama da estabilidade de algumas dlls para socket em mql5 e também de algumas terem comunicação apenas unidirecional. E eu preciso fazer ambas as direções.
Aí vao minhas perguntas:
1) alguém sabe implementar um whatcher de arquivos em mql5 sem realizar espera ocupada?
2) alguém conhece e usa alguma coisa para conectar via socket tcp algo que seja bidirecional para mql5, e confiável?
Agradeco a atenção pessoal!
Abraços