Criação de uma GUI para MQLs em modo gráfico.

 

Levantei este tópico há alguns anos, quando diferentes bibliotecas para a criação de GUI começaram a se desenvolver rapidamente. Muitos deles foram criados desde então, mas o processo de criação permaneceu no nível de 30 anos atrás (quem ainda se lembra de como eles sofreram com a interface, criando-a à mão em Win API?) Se eu estiver errado e tal ferramenta aparecer, eu aceitarei de bom grado um chute e a aceitarei de volta.

-------

Aqui está o exemplo mais simples do VS 2017, C# Windows Forms. À esquerda está uma barra de ferramentas de controle que pode ser arrastada e solta no formulário.

painelformulário

E aqui está algum do código que é gerado para esta forma rudimentar.

private void InitializeComponent()
        {
            this.btnDoSomething = new System.Windows.Forms.Button();
            this.textBox1 = new System.Windows.Forms.TextBox();
            this.SuspendLayout();
            // 
            // btnDoSomething
            // 
            this.btnDoSomething.Location = new System.Drawing.Point(12, 12);
            this.btnDoSomething.Name = "btnDoSomething";
            this.btnDoSomething.Size = new System.Drawing.Size(100, 23);
            this.btnDoSomething.TabIndex = 0;
            this.btnDoSomething.Text = "Do something";
            this.btnDoSomething.UseCompatibleTextRendering = true;
            this.btnDoSomething.UseVisualStyleBackColor = true;
            // 
            // textBox1
            // 
            this.textBox1.Location = new System.Drawing.Point(12, 53);
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(100, 20);
            this.textBox1.TabIndex = 1;
            this.textBox1.Text = "Hello MQL5!";
            this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6 F, 13 F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(133, 98);
            this.Controls.Add(this.textBox1);
            this.Controls.Add(this.btnDoSomething);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        protected System.Windows.Forms.Button btnDoSomething;
        private System.Windows.Forms.TextBox textBox1;

Então estou me perguntando, quem assumiria um projeto onde tal código seria analisado e codificado para gráficos baseado em qualquer uma das bibliotecas apresentadas neste site?

Estou escrevendo um artigo na seção "Coma e ganhe dinheiro na MQL5" sem o nome do autor há mais de um ano.

55Reescrita e modificação automática dos códigos fonte MQL5 usando oRegularExpressions.
Obter a lista de funções, variáveis globais, definições, classes, etc.

E por que ninguém a toma? Porque ninguém precisa desta análise. O mercado tem um programa maravilhoso de Doxigênio, que está sendo polido e melhorado há mais de 10 anos. E ninguém está interessado em tentar criar uma cópia patética dela (o que certamente será patético em comparação). E recentemente saiu um artigo sobre a Criação Automática de Documentação...

Portanto,

  1. Se já existe um projeto desse tipo.
  2. Quem estaria interessado em tal criação de interface gráfica?
Fiz um ramo separado de propósito, uma vez que se perde rapidamente no ramo "Comer e ganhar na MQL5", e não há muita gente que o leia.

 

Uma GUI para a METATRADER é uma possibilidade tão distante, por enquanto. Para a criação de painéis - ok. Mas você não precisa mais.

Embora eu concorde com você - "Visual" MetaEditor seria uma boa idéia

 
Vladislav Andruschenko:

Uma GUI para a METATRADER é uma possibilidade tão distante, por enquanto. Para a criação de painéis - ok. Mas você não precisa mais.

Embora eu concorde com você - o MetaEditor "Visual" seria perfeito.

Por que se preocupar em torná-lo tão complicado, em particular o MT-MQL? A MQL, imho, já é super-complicada. Você pode criar seus painéis em VS e tudo o que você precisa, por exemplo, através de DLL. Não há necessidade de fazer um monstro a partir do MT-MQL).

 
Yuriy Asaulenko:

Por que tornar as coisas tão complicadas, MT-MQL em particular? A MQL, imho, já é super-complicada. Você tem VS, e pode criar seus painéis e tudo o que você precisa lá, por exemplo, através dessas DLL's. Não há necessidade de fazer um monstro com o MT-MQL. Não há necessidade de transformar o MT-MQL em um monstro)).


Eu estou apenas sonhando acordado :-) (VISUAL para sistemas gráficos e comerciais), é claro que já existem muitos designers....

Para ser honesto, desenhei meu primeiro painel no Photoshop e ainda está lá...

agora estou tentando desenhar diretamente no terminal, mas percebo que apenas algumas pessoas o usam.

E os painéis personalizados são mais fáceis de fazer individualmente.

Embora eu tenha estudado extensivamente artigos sobre bibliotecas de desenho. Mas eu decidi que o uso dessas bibliotecas só será útil por 1% do tempo, por isso desisti.

 
Yuriy Asaulenko:

Por que tornar as coisas tão complicadas, MT-MQL em particular? A MQL, imho, já é super-complicada. Você tem VS, e pode criar seus painéis e tudo o que você precisa lá, por exemplo, através dessas DLL's. Não há necessidade de fazer um monstro com MT-MQL. Não há necessidade de transformar o MT-MQL em um monstro)).

Eu costumava fazer isso dessa maneira. Abaixo está um exemplo de um simples painel de configuração para multi-estratégia (oh my!) EA. Mas está cortando o mercado!

E eu não entendo, o que a MT tem a ver com isso? Estou apenas sugerindo que se faça um roteiro de análise em MQL. Você pode fazê-lo em C++/C#, mas então eles não o levarão nem mesmo aos artigos.

Oops, esqueci a foto, aqui está, uma foto simples


 
Vladislav Andruschenko:


Eu estou apenas sonhando :-) (VISUAL para sistemas gráficos e comerciais), é claro que já existem muitos designers....

Para ser honesto, desenhei meu primeiro painel no photoshop e ainda está lá...

agora estou tentando desenhar diretamente no terminal, mas percebo que apenas algumas pessoas o usam.

E os painéis personalizados são mais fáceis de fazer individualmente.

Embora eu tenha estudado extensivamente artigos sobre bibliotecas de desenho. Mas decidi que o uso dessas bibliotecas só será útil em 1 %, desisti.

Então você faz sem bibliotecas? Tenho apenas uma tarefa para fazer um painel bastante complexo, e sinto que ele será reconfigurado muitas vezes.

Até agora, decidi fazer uma visualização em VS e depois usar minhas mãos para obter as coordenadas e tamanhos dos controles, depois novamente, usar minhas mãos para traduzi-las para uma biblioteca. Por enquanto estou inclinado para as bibliotecas por Anatoly Kazrsky, ele fez um trabalho monstruoso lá. Tudo será mais rápido do que o código->partida->correções com resultados registrados em papel->código correto... etc.

 
Alexey Volchanskiy:

Então você faz isso sem nenhuma biblioteca? Só aqui eu tenho a tarefa de fazer um painel bastante complexo e, sinto que ele será reconfigurado muitas vezes.

Até agora, decidi fazer uma visualização em VS, depois recuperar coordenadas e dimensões dos controles e traduzi-los à mão para uma biblioteca. Por enquanto estou inclinado para as bibliotecas por Anatoly Kazrsky, ele fez um trabalho monstruoso lá. Tudo será mais rápido que o código->partida->correções com resultados registrados em papel->código de correção... etc.

É melhor usar a biblioteca do Kazarsky,

Mas sim, eu tenho bibliotecas para desenhar. elas são padrão. (não o mesmo que o de Kazarsky, é claro :-))

Eu uso desenho muito raramente, por isso não vale a pena perder tempo com isso.


Eu costumava desenhar em photoshope, depois desenhava em Delphi e depois organizava de acordo com as coordenadas :-)

Eu não faria isso agora, mas desenhei meu primeiro painel em MQL naquela época (antes era em Delphi).

Ainda tenho medo de tocá-lo :-) Eu o atualizo, é claro, e já otimizei o código 10 vezes. Mas estou pensando em desenhar o mesmo painel com os botões regulares......

mas há prós e contras: os botões normais não são legais : Kanvas não funciona no testador ...............

 
Alexey Volchanskiy:

Foi o que eu já fiz antes. Abaixo está um exemplo de um painel de configuração simples para uma estratégia múltipla (oh bang!) EA. Mas isso corta o mercado!

E eu não entendo o que a MT tem a ver com isso? Estou apenas sugerindo que se faça um roteiro de análise em MQL. Você pode fazê-lo em C++/C#, mas então eles não o levarão nem mesmo aos artigos.

Oops, esqueci a foto, aqui está, uma foto simples.

Se você quiser usá-lo no Mercado, terá que lidar com ele. Somente MQL. ((

Você não precisa disso para si mesmo, não vai precisar dele com VS.

 
Yuriy Asaulenko:

Se é para o Mercado, sim, bada bada. Somente MQL. ((

E para si mesmo, você não precisa disso, e com a VS tudo é simples.

É muito simples e rápido com a VS. Eu até fiz aquele painel com acesso a arquivos compartilhados, e funcionou bem e rápido.

Eu nem sei, talvez eu deva criar um rapidamente usando VS e traduzi-lo para MQL depois de ter eliminado doenças infantis?

Mas como não vou poder criar uma filial para meu painel em C# neste fórum. Então, posso começar a trabalhar novamente no fórum vermelho e me envolver neste lixo? O que vocês acham, caros moderadores? Posso colocar o painel em C# como parte do projeto?

É claro que posso postar a parte MQL5 em uma filial e o painel C# no blog. Mas é um pouco humilhante, como se eu fosse privado disso e tivesse que me esconder no blog.

 
Alexey Volchanskiy:

É muito simples e rápido com a VS, eu até fiz aquele painel com acesso via arquivos compartilhados e funcionou bem e rápido.

Eu nem sei, talvez eu devesse criar rapidamente uma variante VS e traduzi-la para MQL depois de ter eliminado doenças infantis?

Mas como não vou poder criar uma filial para meu painel em C# neste fórum. Então, posso começar a trabalhar novamente no fórum vermelho e me envolver neste lixo? O que vocês acham, caros moderadores? Posso colocar o painel em C# como parte do projeto?

É claro que posso postar a parte MQL5 em uma filial e o painel C# no blog. Mas é um pouco humilhante, como se eu fosse privado disso e tivesse que me esconder no blog.

Eu gosto muito de compartilhar arquivos - tudo é simples, rápido e fácil de usar. Com o RAM-Disk eu não preciso de DLL's ou gizmos, é >1,5 GBytes/segundo. O suficiente para tudo, e até mesmo sobras)).

E todos os tipos de DLLs podem ser feitas mais tarde, se necessário, à sua vontade.

 
Alexei, é possível trabalhar com seu painel em C# para que ele seja exibido dentro da janela do gráfico?