Minha abordagem. O núcleo é o motor. - página 63

 
São poucos os programadores que trocam de mãos e são capazes de machucar bibliotecas adicionais e sabem como utilizá-las.

Os programadores que podem escrever sua própria biblioteca também são poucos e distantes.

Há muitos usuários que querem uma GUI. Mas, para eles, tudo deve ser simples. Tão simples quanto duas vezes duas.
Para este fim, é necessário fazer um projeto separado que lhe permita trabalhar como vs

Peter faça o que você acha necessário. Você só pode julgar a demanda depois de ter as estatísticas discadas. Tentamos fazer um indicador de coleta de estatísticas de contas com você. Eu só não queria me incomodar porque ainda não terminei a parte de cálculo.
Embora eu tenha certeza de que sua GUI é mais fácil de programar do que a minha, o que já está feito.
Estou apenas modificando constantemente e é mais fácil para mim mesmo administrar meu código, não quero pedir a mais ninguém que o faça.


Mas há poucos usuários reais que irão apreciar seu trabalho. Eu lhes conto por experiência própria.
Fiz uma biblioteca gratuita para especialistas. Uma biblioteca com informações prontas. Que exibe apenas informações e permite que você gerencie qualquer Expert Advisor.
Há centenas de downloads. Fui agradecido algumas vezes. China, Brasil, Tailândia e Rússia estão fazendo o download. É isso aí.

Sua biblioteca será útil para os vendedores que desejam uma interface agradável. Mas será preciso comparar a velocidade e os freios com as falhas. Eu já o encontrei.

Tudo o resto não é importante.
Faça sua própria coisa. Não há necessidade de provar nada.
 
Vladislav Andruschenko:
Há muito poucos programadores que são práticos e são capazes de dominar bibliotecas adicionais e sabem como utilizá-las.

Os programadores que podem escrever sua própria biblioteca também são poucos e distantes.

Há muitos usuários que querem uma GUI. Mas, para eles, tudo deve ser simples. Tão simples quanto duas vezes duas.
Para este fim, é necessário fazer um projeto separado que lhe permita trabalhar como vs

Peter faça o que você acha necessário. Você só pode julgar a demanda depois de ter as estatísticas discadas. Tentamos fazer um indicador para coletar estatísticas sobre a conta. Eu só não queria me incomodar porque ainda não terminei a parte de cálculo.
Embora eu tenha certeza de que sua GUI é mais fácil de programar do que a minha, o que já está feito.
Estou apenas modificando constantemente e é mais fácil para mim mesmo administrar meu código, não quero pedir a mais ninguém que o faça.


Mas há poucos usuários reais que irão apreciar seu trabalho. Eu lhes conto por experiência própria.
Fiz uma biblioteca gratuita para especialistas. Uma biblioteca com informações prontas. Que exibe apenas informações e permite que você gerencie qualquer Expert Advisor.
Há centenas de downloads. Fui agradecido algumas vezes. China, Brasil, Tailândia e Rússia estão fazendo o download. É isso aí.

Sua biblioteca será útil para os vendedores que desejam uma interface agradável. Mas será preciso comparar a velocidade e os freios com as falhas. Eu já o encontrei.

Tudo o resto não é importante.
Faça sua própria coisa. Não há necessidade de provar nada.


Obrigado. Sua opinião, como desenvolvedor e vendedor com vasta experiência, é muito importante para mim.

 
Реter Konow:


Obrigado. Sua opinião, como desenvolvedor e vendedor com vasta experiência, é muito importante para mim.

Obrigado.
O principal objetivo é que a biblioteca não afete o principal algoritmo do Expert Advisor.
Fui confrontado com isto no início, quando estava fazendo minha biblioteca.
 
Vladislav Andruschenko:
Obrigado.
O objetivo principal é que a biblioteca não afete o principal algoritmo da EA.
Fui confrontado com isto no início, quando estava fazendo minha biblioteca.

Todas as minhas conexões são puramente externas. Isso não a afeta de forma alguma.

O GUI é desenhado na linguagem de marcação. É transportado pelo indicador "motor".

Conectamos 2 arquivos à EA e preenchemos o arquivo de conexão.

Iniciamos o motor com a GUI e o Expert Advisor.

E tudo funciona.

 
Vladislav Andruschenko:
...

Os programadores que podem escrever sua própria biblioteca também são poucos e distantes.

...

Eu discordo. Todos os que programam em MQL, mesmo os não-profissionais, se já o fazem há muito tempo, têm muitas de suas funções originais. É fácil agrupá-los e convertê-los em um arquivo na forma de uma biblioteca. Acho que a maioria é capaz de fazer isso.

 
khorosh:

Eu discordo. Todos que programam em MQL, mesmo os não-profissionais, se já o fazem há muito tempo, têm muitas de suas próprias funções originais. É fácil reuni-los e arquivá-los como uma biblioteca. Acho que a maioria das pessoas pode fazer isso.

Não estou falando de um conjunto de funções. Refiro-me a uma biblioteca com GUI. Confie em mim. É complicado de organizar. E Peter tem feito um grande trabalho.
 

Vou repetir a tarefa mais uma vez:

  1. O programa MT deve mudar o estado dos elementos da forma das janelas (pressionado/pressionado).
  2. O programa MT deve mudar a cor dos botões no formulário das janelas.
  3. O programa MT deve aceitar texto doscampos de entrada do formulário do windows.
  4. O programa MT deve definir o texto nos campos de entrada do formulário do Windows.
  5. O programa MT deve abrir/fechar as janelas da aplicação de janelas.

É bastante simples. Você precisa desenhar duas formas simples em C#. Deve haver um botão, um campo de entrada e uma caixa de seleção. Adicione uma DLL. Conecte-se com o MT5.

Vou fazer meu análogo em MT. As mesmas formas e elementos, e fazendo as mesmas funções. A seguir, vamos comparar soluções em termos de qualidade e potencial de desenvolvimento.

//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Aqui está a minha solução:


//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Código de controle no Expert Advisor:

void OnTimer()
  { 
   static int q,q2,q3,q4,q5;    q++; q2++; q3++; q4++; q5++;
   //-----------------------------------------------------------------
   //Реализуем изменение цвета кнопки внутри формы.
   //-----------------------------------------------------------------
   if(q == 1)E_Window_1_Button_1(M_COLOR,C'245,245,245');
   if(q == 2)E_Window_1_Button_1(M_COLOR,C'245,0,0');
   if(q == 3)q = 0;
   //-----------------------------------------------------------------
   //Реализуем программное нажатие/отжатие/блокировку кнопки.
   //-----------------------------------------------------------------
   if(q2 == 1)E_Window_1_Button_2(STATE,ON);  
   if(q2 == 2)E_Window_1_Button_2(STATE,LOCKED_ON);
   if(q2 == 3)E_Window_1_Button_2(STATE,OFF);
   if(q2 == 4)E_Window_1_Button_2(STATE,LOCKED_OFF);
   if(q2 == 5)q2 = 0;
   //-----------------------------------------------------------------
   //Реализуем программное нажатие/отжатие/блокировку чекбоксов.
   //-----------------------------------------------------------------
   if(q3 == 1){E_Window_1_Checkbox_1(STATE,ON);         E_Window_1_Checkbox_2(STATE,LOCKED_ON);  E_Window_1_Checkbox_3(STATE,OFF);} 
   if(q3 == 2){E_Window_1_Checkbox_1(STATE,LOCKED_ON);  E_Window_1_Checkbox_2(STATE,OFF);        E_Window_1_Checkbox_3(STATE,ON);}
   if(q3 == 3){E_Window_1_Checkbox_1(STATE,OFF);        E_Window_1_Checkbox_2(STATE,ON);         E_Window_1_Checkbox_3(STATE,LOCKED_ON);}
   if(q3 == 4)q3 = 0;
   //-----------------------------------------------------------------
   //Реализуем изменение текста в поле ввода:
   //-----------------------------------------------------------------
   E_Window_1_Edit_box_1("Current text: " + MathRand());
   //-----------------------------------------------------------------
   //Реализуем изменение цвета текста в поле ввода.
   //-----------------------------------------------------------------
   if(q4 == 1)E_Window_1_Edit_box_1(T_COLOR,C'145,245,245');
   if(q4 == 2)E_Window_1_Edit_box_1(T_COLOR,C'245,10,0');
   if(q4 == 3)E_Window_1_Edit_box_1(T_COLOR,C'245,20,50');
   if(q4 == 4)E_Window_1_Edit_box_1(T_COLOR,C'245,130,0');
   if(q4 == 5)E_Window_1_Edit_box_1(T_COLOR,C'25,40,20');
   if(q4 == 6)E_Window_1_Edit_box_1(T_COLOR,C'245,170,0');
   if(q4 == 7)E_Window_1_Edit_box_1(T_COLOR,C'245,110,110');
   if(q4 == 8)E_Window_1_Edit_box_1(T_COLOR,C'245,255,0');
   if(q4 == 9)q4 = 0;
   //-----------------------------------------------------------------
   //Реализуем поочередное закрытие/открытие окон:
   //-----------------------------------------------------------------
   if(q5 == 1)W_Window_2(close);
   if(q5 == 5)W_Window_2();
   if(q5 == 10)q5 = 0;
   //-----------------------------------------------------------------
  }
//+------------------------------------------------------------------+

Arquivos conectados abaixo:

1. Teste o arquivo EA (instalar na pasta EAs, abrir, salvar, compilar, colocar no gráfico).

2. O arquivo de conexão externa (instale-o na pasta de inclusão).

3. Arquivo de propriedades de conexão (instalar na pasta inclusiva).

4. Amostra do fórum 2 arquivo com código de janela (somente visualização).

5. Motor (instalar na pasta de indicadores. Colocá-lo na tabela com o teste EA).

Arquivos anexados:
 
Espero que meus oponentes ofereçam sua solução para o problema de conectar um formulário Windows através de uma DLL.
 
Реter Konow:
Espero que meus oponentes ofereçam sua solução para o problema de conectar o formulário Windows via DLL.

Tenho a sensação de que você é o único que participa desta "Olimpíada especial" :-)

 

Por favor, no apêndice. Quando você inicia o Expert Advisor, uma janela se abrirá, na janela há dois botões, duas caixas de texto e uma caixa de seleção. A cor dos botões e do texto na primeira caixa de texto mudará uma vez por segundo. Se o texto for inserido no segundo campo de texto, o Conselheiro Especialista abrirá um alerta com uma mensagem de evento e este texto. Pressionando os botões também será aberto um alerta, com o primeiro botão abrindo o formulário-2 e o segundo botão fechando o formulário-2. Você também pode fechar o formulário 2 com uma cruz. O formulário principal (formulário 1) não será fechado por uma cruz, ele desaparecerá quando a EA for desconectada. A caixa de seleção também abre um alerta e há dois tipos de eventos a partir dele: 1 e 2 - desmarcar e caixa de seleção.

A maior parte do meu tempo foi gasto para lembrar C# (se eu soubesse de algo lá:), não fiz nada nele por mais de três anos e também para desenvolver uma classe para eventos de passagem, mas é universal e pode ser usado em qualquer projeto. Portanto, agora ao criar um engano conta por minutos ;).

Se você está se perguntando como isso consome tempo internamente, você precisa chamar um método de classe para passar um evento para a EA - uma linha. Para poder controlar os controles de uma EA, é preciso escrever dois métodos, um na classe de formulário e outro na classe de transferência de evento, uma linha de código em cada um deles.

Não fiz controles de caixa de seleção na EA deles - estou entediado com eles, eles já definiram cor e texto - tanto o parâmetro de texto quanto o ints. A cor é transmitida como RGB, mas provavelmente poderia ser feita por uma variável, eu não me aprofundei muito nela.

E há uma suposição de que alguém que conhece melhor C# e FindowsForms pode fazer isso duas vezes mais facilmente - sem dois métodos para definir as propriedades, mas com apenas um, e talvez fazer algo melhor.

Bem, as portas para o mundo infinito do C# e FindowsForms estão abertas.


Arquivos anexados: