Discussão do artigo "Como exportar cotações do MetaTrader5 para aplicações .NET usando serviços WCF" - página 3

 
Encontrei algumas dificuldades na implementação do que foi mencionado acima. É por isso que vou falar sobre isso, caso alguém enfrente problemas semelhantes.


1) Se você tiver um terminal x64, provavelmente precisará recompilar seu projeto C++ em x64. Por segurança, você deve fazer isso da seguinte maneira: Visual Studio -> Propriedades (do seu projeto C++) -> Gerenciador de configuração -> e altere-o para x64 por meio da lista suspensa ou <New...>. Compile. Pronto. Se não estiver compilando, verifique as Referências do projeto e verifique os erros do compilador.
2) Tive problemas com o EA, ele nem sequer inicializava. Só notei isso ao desconectar o EA do gráfico, quando o erro init falhou (engraçado...). O EA caiu em um Sleep infinito no estágio de inicialização e tudo se resumia a essas linhas (em QService.mqh):

 QService::EnterCriticalSection()
{
   while (GlobalVariableCheck("QService_CriticalSection") > 0)
   Sleep(1);
   GlobalVariableTemp("QService_CriticalSection");

Após a depuração e tentativas vãs de entender esse "Sleep(1)", substituí o código por:

QService::EnterCriticalSection()
{
   if(!GlobalVariableCheck("QService_CriticalSection"))
   GlobalVariableTemp("QService_CriticalSection");
}

A propósito, esse artigo também se aplica ao MT4. Embora o MT4 tenha DDE, gosto mais dessa abordagem. Tudo funciona muito bem.

P.S: Obrigado ao autor do artigo! Tudo está ótimo!
 
Não entendo, ele está bem escrito, mas não funciona. O QEXPORTWRAPPER não é executado em um terminal de 64 bits.
 
shelandr1:
Muito interessante... Obrigado... Mas talvez hoje existam opções mais simples*???

É claro que existem - usando a conexão por meio do recurso embutido do terminal. É um canal PIPE.

https://www.mql5.com/ru/docs/files/fileopen

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Acabei de postar um novo trabalho com base neste artigo: https: //www.mql5.com/en/job/34392.

Ele não está funcionando em meu ambiente MT5 de 64 bits...

Ótimo artigo!

Muito obrigado

Freelance service at MQL5.com: Make Visual Studio 2012 solution downloaded from article work with Metatrader 5 64 bits
Freelance service at MQL5.com: Make Visual Studio 2012 solution downloaded from article work with Metatrader 5 64 bits
  • www.mql5.com
Hi, I'm a C# developer and downloaded the code from the article "HOW TO EXPORT QUOTES FROM METATRADER 5 TO .NET APPLICATIONS USING WCF SERVICES" ( https://www.mql5.com/en/articles/27 ). The problem is that my machine is a Windows 64 bits with MetaTrader 5 64 bits installed and I had to change the compile configurations to 64 bits in Visual Studio 2012. Ok, it compiled normally, then I added one new method that aims to return a string to MT5 which i called ReadBroker2MeInstructions . Compiled...
 

Apenas para conhecimento, descobri o que aconteceu em minha máquina de 64 bits.

Após horas e horas de pesquisa e depuração, descobri que um assembly referenciado não estava sendo carregado, gerando a exceção "System.IO.FileNotFoundException: Unable to load file or assembly 'QExport.Service, Version=1.0.5771.13857, Culture=neutral, PublicKeyToken=56996a45dd1e337b'".

Talvez porque a dll não tenha um arquivo de configuração, ainda não sei, o MT 5 não sabia onde encontrar o assembly. Portanto, ele estava tentando obtê-lo no caminho base (caminho onde o metaeditor64.exe está localizado). Depois de alterar o diretório de saída dos projetos referenciados para esse caminho, funcionou perfeitamente.

 
sabe:

Oi, Joe,

Houve algum truque especial para fazê-lo funcionar no x64? Acabei de compilá-lo para x64, mas a dll trava com erros estranhos na inicialização.

Sabe, veja minha resposta abaixo.

[]'s

 

Olá,


Testei seu arquivo pronto e tudo parece bem no MT5. Mas não há dados no WinClient.







 

Gostaria de saber se existe um projeto semelhante com pré-carregamento de barras históricas? Gostaria de adicionar tudo isso ao Lightweight-Chart e usar o gráfico de forma conveniente.