Discussão do artigo "Como exportar cotações do MetaTrader5 para aplicações .NET usando serviços WCF" - página 2
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Também tive uma falha no testador de estratégia. No modo normal, está tudo bem.
Alguém já encontrou uma solução?
Excelente trabalho, Alexander. Eu nunca havia programado em C# antes e estava tentando fazer com que as cotações do MT5 fluíssem no Excel sem usar o DDE-Server.
Finalmente consegui fazê-lo funcionar ajustando seu código com o MT5 de 32 bits. Próxima etapa x64.
SM
TradePlatform.NET
No momento, estou tentando implementar meu próprio wrapper c++ para minha dll c# para interopção mql5. Tenho um problema com a adição da referência da dll c# à minha biblioteca c++. Você poderia esclarecer a seguinte frase "...add the CLR support, System.dll, QExport.dll, Qexport.Service.dll to the build reference". Consegui registrar minha dll com o utilitário regasm, adicioná-la ao gac e obter um arquivo de definição de tipo .tlb. Meu problema é que não consigo encontrar nenhuma declaração #import ou #include no código-fonte que você forneceu. Seu projeto parece fazer referência às suas bibliotecas dll de alguma forma misteriosa. Alguém poderia explicar uma maneira adequada de adicionar uma referência à dll .NET a uma biblioteca c++? Embora essa não seja uma pergunta puramente sobre o mql5, ela está diretamente relacionada ao artigo. Estou pesquisando o assunto há um bom tempo e ainda não consigo entender como uma biblioteca c++ pode ter dlls .NET em suas "Dependências externas" sem nenhuma instrução #import. Esse é meu primeiro encontro com o c++ e, até agora, não tem sido agradável. Até pensei em converter a .dll em .lib e adicionar uma referência a ela, mas, antes de fazer qualquer coisa, decidi procurar a orientação de um especialista em COM. Estou executando o Windows 8 Ultimate x64 e compilei minhas dlls c# com o VS2012 Ultimate. Por favor, ajude o novato.
Muito interessante... Obrigado... Mas talvez hoje existam maneiras mais fáceis*???
O artigo é bom para falar sobre o WCF para aqueles que não estão familiarizados com a tecnologia. A propósito, verifiquei o desempenho do WCF via Internet na distância Peter - Odessa e obtive uma velocidade decente de cerca de 14.000 transações bilaterais/seg. com pacotes de 1kB. Pessoalmente, gosto da tecnologia por ser orientada a objetos, ou seja, não é transmitido um fluxo de bytes (embora seja possível fazer isso), mas instâncias de classes, que, na extremidade receptora, não precisam decodificar esse fluxo.
E com relação ao tópico de citações, é mais fácil usar o mapeamento de memória. Iniciamos uma tarefa separada com um mutex em um aplicativo .NET, a MQL4 carrega os dados na memória e redefine o mutex, após o que o aplicativo lê os dados. É mais fácil e mais rápido, e você não precisa de uma DLL. Só é necessário adicionar DLLs de sistema na MQL4 para dar suporte ao mapeamento e aos mutexes; houve um artigo recente sobre esse tópico.
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
Olá, 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.