Discussão do artigo "Criando interfaces gráficas para EAs e indicadores baseados no .Net Framework e C#" - página 4

 
Реter Konow:

Sim, eu entendo. Eu estava intimidado, intimidado pelo dó sustenido... :)))))

Na verdade, você ficou intimidado com razão. O sustenido não é simples o suficiente se você se aprofundar nele e tentar fazer algo bom.

 

Mostrar de forma realista um exemplo de uso, por exemplo, dessa biblioteca?

 

O artigo é excelente!

 

Este artigo é excelente!

Qualquer programador de MQL já pode usá-lo para criar uma GUI em um editor profissional e estável. E usar repetidamente, e não apenas no MT, o resultado de seu trabalho.

E se for possível criar classes derivadas do Controller, será "chocolate" em geral - o Expert Advisor se comunicará com o Controller por meio de pacotes de alto nível ("abrir ordem #NN com opções"), o Controller enviará suas mensagens ao formulário ("adicionar uma linha com campos à tabela"). Dessa forma, a atividade é separada nas partes certas. O EA só negocia, e a GUI exibe. E eles podem ser feitos/alterados/realizados separadamente, até mesmo por projetos diferentes e até mesmo por pessoas diferentes.

Respeito ao autor !!!


 
Maxim Kuznetsov:

E se você puder criar classes derivadas do Controller, então é "chocolate" em geral.

Você pode simplesmente adicionar sua própria função de troca de dados à fonte e chamá-la;)

 
Igor Makanu:

você pode simplesmente adicionar sua própria função de troca de dados ao código-fonte e chamá-la ;)

é claro que você pode... mas essa maneira descomplicada de fazer isso resulta em um código sem sentido e em um monte de projetos murchos :-) A OOP foi criada para evitar essas coisas.

A "física" da comunicação com o EA e a forma devem estar concentradas no Controlador original. E as formas de criar derivados.

A propósito, como todo esse pacote se comportará quando o formulário for substituído?

Na minha opinião, o destaque da tecnologia é que o Expert Advisor continua a funcionar como antes (sem recompilação e, de preferência, sem parar), e o formulário pode ser alterado.

O principal requisito é que o EA opere. Ele está ligado ao dinheiro e deve ser tocado o mínimo possível.

 
Maxim Kuznetsov:

É claro que você pode... mas essa maneira descomplicada de fazer isso resulta em um código sem graça e em um monte de projetos murchos :-) A OOP foi projetada para evitar essas coisas.

Do ponto de vista perfeccionista, você está 100% certo, mas infelizmente há casos em que, ao tentar obter a universalidade do código em tudo, obtemos um resultado perfeitamente lento, mas todas as situações e exceções possíveis serão levadas em consideração.

SUS: Acabei de desistir do datagridview do VS2017 para ajustá-lo para não ficar lento ao trabalhar com big data e atualizar pelo menos uma vez em 1 segundo ... ainda é chato, mas quantas classes ele coletou em si mesmo e é uma amostra de perfeita adesão aos princípios da OOP ;)

PS: o código-fonte do datagridview tem apenas 7.000 linhas, mas não quero nem contar quanto mais código adicional ele agrega.

https:// referencesource.microsoft.com/#system.windows.forms/winforms/managed/system/winforms/DataGridView.cs


)))

 
Igor Makanu:

Do ponto de vista de um perfeccionista, você está 100% certo, mas infelizmente há casos em que, ao tentar obter um código universal em tudo, obtemos um resultado perfeitamente lento, mas todas as situações e exceções possíveis serão levadas em consideração.

SUS: Acabei de desistir de configurar o datagridview do VS2017 para que ele não ficasse lento ao trabalhar com dados grandes e atualizar pelo menos uma vez a cada 1 segundo... ele ainda fica lento, mas quantas classes ele coletou em si mesmo e é uma amostra da perfeita adesão aos princípios da OOP ;)

PS: o código-fonte do datagridview tem apenas 7.000 linhas, mas não quero nem contar quanto mais código adicional ele puxa para si.

https:// referencesource.microsoft.com/#system.windows.forms/winforms/managed/system/winforms/DataGridView.cs


)))

Não há o que discutir aqui - a Microsoft é mestre em criar software à frente dos recursos de hardware :-))

---

desviando do assunto - aqui as crianças perguntaram "queremos fazer um brinquedo nós mesmos" e tiveram que procurar algo visual. Desenhar com um mouse, definir regras simples sem recorrer a python/lisp/sharp - e trabalhar de uma só vez.

Com toda a riqueza de opções, apenas o Kodu da Microsoft era adequado. Ele é legal, bonito, claro, exatamente o ideal de "como a programação visual deve ser". Mas ele puxa tantas coisas do Sharp e fica muito lento... terei que comprar um novo computador :-)

 

Olá, ótimo artigo!

Várias perguntas surgiram em relação ao que foi dito acima:

1) Fiquei com a impressão, pelo texto do artigo, de que não apenas as interfaces gráficas podem ser organizadas da mesma forma, mas também a implementação de quase todas as APIs que "não se encaixam" na MQL5.

2) Pelo que entendi, usando a plataforma .Net, você pode escrever programas em diferentes linguagens, não apenas em C#. Em particular, em C++. Tenho muito mais afinidade com essa linguagem por vários motivos.
Minha pergunta é se é possível escrever uma biblioteca .Net em C++ (entendo que usando C++/CLR) para que a MQL5 possa entender seu código .Net da mesma forma que em seu mecanismo GuiController? Quero dizer que #include "...dll" e sem declaração de funções importadas?


O exemplo prático que me interessa é o seguinte. Atualmente, há possibilidades de integrar bibliotecas de sensores 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 mesmo importar uma dll C++ de teste para a MQL5 usando o método mencionado aqui.


 
AikAcrobatt: 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.

O artigo indica 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

Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
  • www.mql5.com
Так уж сложилось, что сейчас мало кто из разработчиков помнит, как написать простую DLL библиотеку и в чем особенности связывания разнородных систем. Я постараюсь за 10 минут на примерах показать весь процесс создания простых DLL библиотек и раскрою некоторые технические детали нашей реализации связывания. Демонстрация будет на примере Visual...