Discussão do artigo "Criando interfaces gráficas para EAs e indicadores baseados no .Net Framework e C#" - página 5
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
No artigo, há uma maneira completamente diferente de interação do MT5 com o "mundo externo". Você precisa descrever assinaturas de funções C++ no código do MT5 e chamá-las como uma dll normal.
https://www.mql5.com/pt/articles/18
HI: o tensorflow c# é perfeitamente pesquisável no Google, aqui estão as soluções prontas para o C# https://nugetmusthaves.com/Tag/tensorflow
Bom artigo, vou tomar nota, obrigado!
Eu já sei que o tensorflow c# é perfeitamente pesquisável no Google, só não quero perder tempo aprendendo C#, então integro o tensorflow com o C++.
Essa não era a minha pergunta.
Qual é a diferença entre a forma de interação descrita no artigo e a forma usual? Está escrito no texto que basta que o dllka seja escrito na plataforma .Net. Mas você não precisa usar o C# para escrever nessa plataforma. Mas quando eu uso C++/CLR (e o Visual Studio sugere que eu obtenha um aplicativo com classes .Net), a MQL5 ainda exige a declaração de funções da dllka resultante como de costume, e não vê as classes de forma alguma.
É possível enviar uma string do Visual Studio para o MT5? Como posso fazer isso?
Obrigado por sua ajuda
Qual é a diferença entre a forma de interação descrita no artigo e a forma usual? O texto diz que basta que o dllka seja escrito na plataforma .Net. Mas você não precisa usar o C# para escrever nessa plataforma.
Se não me engano, o método usado no artigo é chamado de injeção de C# - pesquise no Google, não estou ajudando aqui, como a interação entre C# e MQL5 ocorre, como uma opção "girar" o exemplo https://www.mql5.com/ru/forum/303283/page3#comment_10607873.
É realista mostrar um exemplo de uso, por exemplo, dessa biblioteca?
A biblioteca é interessante. Acho que é bastante realista integrá-la ao mecanismo.
Olá, este é um ótimo artigo!
Há uma série de perguntas decorrentes do que foi dito acima:
1) Pelo texto do artigo, fiquei com a impressão de que não apenas as interfaces gráficas, mas também a implementação de quase todas as APIs que "não se encaixam" na MQL5 podem ser organizadas da mesma forma.
Sim, isso é absolutamente verdade. O artigo descreve essencialmente um padrão de design MVC modificado. Os padrões são universais e não dependem de ferramentas de linguagem e tarefas, o principal é que o conceito de "modelo-representação-controlador" se encaixa bem na tarefa.
Minha pergunta é: é possível escrever uma biblioteca C++ para .Net (entendo que usar C++/CLR) de modo que a MQL5 possa ser implementada em seu código .Net, como em seu mecanismo GuiController?
2) Teoricamente, você pode. A dll Net é um CIL compactado para o qual linguagens de alto nível como C#, VB Net, C++ Net são traduzidas. Ou seja, o MQL deve ler a net dll independentemente da linguagem em que foi escrita. Mas apenas a forma como isso ocorrerá na prática deve ser verificada, pois os desenvolvedores obviamente pretendiam usar o C#.
O exemplo prático no qual estou interessado é este. Atualmente, há possibilidades de integrar bibliotecas de opsensores em aprendizado de máquina com o VS2017 e, por exemplo, o TensorFlow fornece API em C++ com suporte para computação de GPU. Seu artigo oferece uma ótima oportunidade de integrar a implementação em C++ do TensorFlow (ou qualquer outra biblioteca de aprendizado de máquina) diretamente na MQL5, o que me parece muito conveniente. O problema é que, por algum motivo, não consigo nem importar uma dll C++ de teste para a MQL5 usando o método especificado aqui.
Você se refere à dll Net C++? Se sim, você deve verificar. É difícil entender como isso funcionará na realidade.
Mas, em geral, você está muito certo: a integração rápida com o código existente é definitivamente o futuro. E você não terá tempo suficiente para escrever tudo sozinho. E aqui você pode fazer o download do que precisa e seguir em frente.
...
Qual é a diferença entre a forma de interação descrita no artigo e a forma usual? O texto diz que basta ter um dllka escrito na plataforma .Net. Mas você não precisa usar o C# para escrever nessa plataforma. Mas quando uso C++/CLR (e o Visual Studio sugere que eu obtenha um aplicativo com classes .Net), a MQL5 ainda exige a declaração de funções da dllka resultante como de costume, mas não vê as classes.
Isso é muito estranho, pois tudo funciona de forma bem diferente com o C#. A MQL vê perfeitamente as classes Net e seus métodos com assinaturas. Até mesmo o intellisense funciona no MetaEditor.
Infelizmente, sou quase inexperiente em C++. Ficaria feliz em ajudá-lo, mas receio que não seja possível.
É possível enviar uma string do Visual Studio para o MT5? Como posso fazer isso?
Obrigado por sua ajuda
Sim, é claro. Você pode retornar a string de um método (linha 1). Você também pode retornar a string a partir de uma referência (linha 3):
Onde SharpClass é a classe C# estática em seu conjunto.
Isso é muito estranho, pois tudo funciona de forma bem diferente com o C#. O MQL vê perfeitamente as classes Net e seus métodos com assinaturas. Até mesmo o intellisense no MetaEditor funciona.
Infelizmente, sou quase inexperiente em C++. Ficaria feliz em ajudá-lo, mas receio que não seja possível.
Até o momento, tenho o seguinte:
A dllka mais simples em C++ usando .NET:
Essa biblioteca interage com a MQL5 da mesma forma que uma biblioteca semelhante em C# (eu verifiquei) e semelhante à descrita em seu artigo.
Quando inserimos o programa na MQL5:
Tudo compila, o compilador vê a classe Class1 e a função Func1. Mas, ao contrário do comportamento de Sharpe, o terminal diz que não consegue carregar a dll:
Cannot load 'C:\Users\...\MQL5\Libraries\TesterMQL5_4.dll' [0]
Falha no carregamento do EX5.
Sim, é claro. A string pode ser retornada do método (string 1). Você também pode retornar a referência da string (linha 3):
Onde SharpClass é uma classe C # estática em seu conjunto.
Obrigado por sua ajuda, mas preciso aprender mais sobre C #, posso realmente fazer essa coisa simples funcionar ou incluir o código
Mais uma vez, obrigado por sua atenção
Até o momento, tenho o seguinte:
Uma dll simples em C++ usando .NET:
...Por favor, insira o código corretamente: