Discussão do artigo "Como exportar cotações do MetaTrader5 para aplicações .NET usando serviços WCF"
Muito bem! Não posso dizer mais nada. Infelizmente, a conexão MQL5 - .NET ainda requer um intermediário, o que torna toda a construção muito complicada.
Infelizmente, a comunicação MQL5 - .NET ainda requer um intermediário, o que torna toda a construção muito complicada.
Eu concordo. A propósito, para interações simples, existe uma coisa ótima - Inverse P/Invoke - interação sem intermediários.
Também tentei usar o ILMerge para mesclar todos os três assemblies no QExportWrapper.dll - não funcionou, ou melhor, funcionou, mas após a mesclagem do mql5 ele não vê as funções exportadas
Hi!
Copiei seus arquivos de origem e os recompilei para execução.
Mas tive um travamento do MT5.
Como posso depurar / solucionar esse problema?
Obrigado!
1. Primeiro, tente usar os arquivos compilados, localizados no arquivo bin.rar
Por exemplo, o diretório do terminal do cliente MetaTrader5 é "C:\Program Files\MetaTrader 5\"
Vamos criar uma nova pasta para o expert QExporter.mq5, por exemplo,"QE", na pasta "C:\Program Files\MetaTrader 5\MQL5\Experts\"
C:\Program Files\MetaTrader 5\MQL5\Experts\QE\QExporter.mq5 (1615 bytes)
C:\Program Files\MetaTrader 5\MQL5\Experts\QE\QService.mqh (4380 bytes)
C:\Program Files\MetaTrader 5\MQL5\Libraries\QExport.dll (5632 bytes)
C:\Program Files\MetaTrader 5\MQL5\Libraries\QExport.Service.dll (7168 bytes)
C:\Program Files\MetaTrader 5\MQL5\Libraries\QExportWrapper.dll (27648 bytes)
C:\Program Files\MetaTrader 5\WindowsClient\QExport.Client.dll (6656 bytes)
C:\Program Files\MetaTrader 5\WindowsClient\QExport.dll (5632 bytes)
C:\Program Files\MetaTrader 5\WindowsClient\WindowsClient.exe (12288 bytes)
Então, após a compilação do QExporter.mq5, o arquivo compilado QExporter.ex5 aparecerá no diretório:
C:\Program Files\MetaTrader 5\MQL5\Experts\QE\QExporter.ex5 (6706 bytes)
Depois de anexá-lo ao gráfico EURUSD,H1 e executar o WindowsClient.exe, obtive a seguinte imagem:
Eu o testei no buld 249 (18 de fevereiro).
Copiei seus arquivos de origem e os recompilei para execução.
Mas tive um travamento do MT5.
Como posso depurar / solucionar esse problema?
Olá,
Em primeiro lugar, eu tentaria depurar os códigos-fonte do MT5 para encontrar a função que causa o erro - configure pontos de interrupção antes da chamada de todas as funções da dll. Infelizmente, não consegui anexar a dll ao terminal.exe para depuração porque o terminal travou. Talvez em novas versões seja possível
Também gostaria de saber qual sistema operacional você usa. Eu tenho um sistema operacional de 32 bits e, portanto, não pude verificá-lo em sistemas de 64 bits.
E você já tentou executar arquivos compilados?
E mais uma coisa, tente executar o ConsoleService e o ConsoleClient na solução. Talvez o problema não esteja relacionado ao mql ou à biblioteca wrapper.
Por fim, suponho que você tenha se esquecido de criar (ou copiar) o arquivo terminal.exe.config. Tente fazer isso.
Essa é uma boa notícia, pois a MQL5 pode usar a wrap dll do NET.
Por que o Mql4 não pode usar esse modo para se comunicar com a DLL envolvida do Net?
Essa é uma boa notícia, pois a MQL5 pode usar a wrap dll do NET.
Por que o Mql4 não pode usar esse modo para se comunicar com a DLL envolvida do Net?
Muito obrigado pelo exemplo postado. Há uma semana (à noite) estou lutando para criar uma biblioteca para troca de dados entre o.net e o mql5.
Não sou bom em C++ e essa postagem foi muito útil para mim.
Só há um problema. Após a compilação em x64, a inicialização do serviço apresenta um erro.
ExportService^ service = gcnew ExportService(serverName); // <- ServiceManaged.cpp
O processo simplesmente "sai" sem nenhuma explicação.
Como posso enviar esse erro para o log para análise posterior? Ou talvez você já tenha se deparado com esse problema e haja uma solução ????.
Consegui fazer com que isso funcionasse com o MT5 de 32 bits e, depois de recompilar para x64, consegui fazer com que funcionasse com o MT5 de 64 bits....no entanto, quando tento executar o EA no testador de estratégias, ambos travam espetacularmente.
Gostaria de usá-lo para exportar alguns dados de preços e indicadores para uma tabela de banco de dados, a fim de fazer algumas análises com software externo...... Alguma ideia do que poderia estar causando esse travamento? Este é o mais próximo que cheguei de uma solução funcional até agora.
Joe

- 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
Novo artigo Como exportar cotações do MetaTrader5 para aplicações .NET usando serviços WCF foi publicado:
Quer organizar a exportação de cotas do MetaTrader 5 para sua própria aplicação? A junção MQL5-DLL permite criar essas soluções! Este artigo mostrará a você um dos meios de exportação de cotas do MetaTrader 5 para aplicações escritas no .NET. Para mim, é mais interessante, racional e fácil implementar a exportação de cotas usando esta mesma plataforma. Infelizmente, a versão 5 ainda não suporta .NET, então, como antigamente, usaremos o win32 dll com suporte .NET como intercamada.
Autor: Alexander