Mi enfoque. El núcleo es el motor. - página 63

 
Los programadores que cambian de mano y son capaces de hachar bibliotecas adicionales y saben cómo usarlas son pocos y distantes.

Los programadores que pueden escribir su propia biblioteca también son pocos y distantes entre sí.

Hay muchos usuarios que quieren una interfaz gráfica de usuario. Pero para ellos, todo debería ser sencillo. Tan simple como dos veces dos.
Para ello, es necesario realizar un proyecto independiente que permita trabajar como vs

Peter haz lo que creas necesario. Sólo se puede juzgar la demanda una vez que se han establecido las estadísticas. Es decir, intentamos hacer un indicador para recoger estadísticas sobre la cuenta. No he querido molestarme porque todavía no he terminado la parte de los cálculos.
Aunque seguro que su interfaz gráfica es más fácil de programar que la mía, que ya está hecha.
Estoy modificando constantemente y me resulta más fácil gestionar mi código yo mismo, no quiero pedirle a nadie que lo haga.


Pero hay pocos usuarios reales que aprecien su trabajo. Te lo digo por experiencia propia.
He creado una biblioteca gratuita para expertos. Una biblioteca informativa preparada. Que sólo muestra información y permite gestionar cualquier Asesor Experto.
Hay cientos de descargas. Me han dado las gracias un par de veces. China, Brasil, Tailandia y Rusia lo están descargando. Eso es todo.

Su biblioteca será útil para los vendedores que quieran una interfaz agradable. Pero habrá que comparar la velocidad y los frenos con los fallos. Me lo he encontrado.

Todo lo demás no tiene importancia.
Haz lo que quieras. No es necesario demostrar nada.
 
Vladislav Andruschenko:
Hay muy pocos programadores que sean hábiles y puedan manejar y utilizar bibliotecas adicionales.

Los programadores que pueden escribir su propia biblioteca también son pocos y distantes entre sí.

Hay muchos usuarios que quieren una interfaz gráfica de usuario. Pero para ellos, todo debería ser sencillo. Tan simple como dos veces dos.
Para ello, es necesario realizar un proyecto independiente que permita trabajar como vs

Peter haz lo que creas necesario. Sólo se puede juzgar la demanda una vez que se tienen las estadísticas marcadas. Es decir, tratamos de hacer un indicador de recogida de estadísticas de cuentas con usted. No he querido molestarme porque todavía no he terminado la parte de los cálculos.
Aunque seguro que su interfaz gráfica es más fácil de programar que la mía, que ya está hecha.
Estoy modificando constantemente y me resulta más fácil gestionar mi código yo mismo, no quiero pedirle a nadie que lo haga.


Pero hay pocos usuarios reales que aprecien su trabajo. Te lo digo por experiencia propia.
He creado una biblioteca gratuita para expertos. Una biblioteca informativa preparada. Que sólo muestra información y permite gestionar cualquier Asesor Experto.
Hay cientos de descargas. Me han dado las gracias un par de veces. China, Brasil, Tailandia y Rusia lo están descargando. Eso es todo.

Su biblioteca será útil para los vendedores que quieran una interfaz agradable. Pero habrá que comparar la velocidad y los frenos con los fallos. Me lo he encontrado.

Todo lo demás no tiene importancia.
Haz lo que quieras. No es necesario demostrar nada.


Gracias. Su opinión, como promotor y vendedor con amplia experiencia, es muy importante para mí.

 
Реter Konow:


Gracias. Su opinión, como promotor y vendedor con amplia experiencia, es muy importante para mí.

Gracias.
El objetivo principal es que la biblioteca no afecte al algoritmo principal del Asesor Experto.
Me enfrenté a esto al principio cuando estaba haciendo mi biblioteca.
 
Vladislav Andruschenko:
Gracias.
El objetivo principal es que la biblioteca no afecte al algoritmo principal de EA.
Me encontré con esto al principio, cuando estaba haciendo mi biblioteca.

Todas mis conexiones son puramente externas. No lo afecta de ninguna manera.

Has dibujado la interfaz gráfica de usuario en el lenguaje de marcas. Lo lleva el indicador "motor".

Conectamos 2 archivos al EA y rellenamos el archivo de conexión.

Hemos puesto en marcha el motor con GUI y el Asesor Experto.

Y todo funciona.

 
Vladislav Andruschenko:
...

También hay muy pocos programadores que puedan escribir su propia biblioteca.

...

No estoy de acuerdo. Todos los que programan en MQL, incluso los no profesionales, si llevan mucho tiempo haciéndolo, tienen más bien muchas de sus funciones originales. Es fácil agruparlos y convertirlos en un archivo en forma de biblioteca. Creo que la mayoría es capaz de hacerlo.

 
khorosh:

No estoy de acuerdo. Todos los que programan en MQL, incluso los no profesionales, si llevan mucho tiempo haciéndolo, tienen muchas funciones propias y originales. Es fácil reunirlos y archivarlos como una biblioteca. Creo que la mayoría de la gente puede hacerlo.

No estoy hablando de un conjunto de funciones. Me refiero a una biblioteca con GUI. Confía en mí. Es complicado organizarse. Y Peter ha hecho un gran trabajo.
 

Repetiré la tarea una vez más:

  1. El programa MT debe cambiar el estado de los elementos del formulario de las ventanas (pulsado/reprimido).
  2. El programa MT debe cambiar el color de los botones en el formulario de las ventanas.
  3. El programa de MT debe aceptar el texto delos campos de entrada del formulario de Windows.
  4. El programa MT debe establecer el texto en los campos de entrada del formulario de las ventanas.
  5. El programa MT debe abrir/cerrar las ventanas de la aplicación Windows.

Es bastante sencillo. Necesitas dibujar dos formas simples en C#. Debe haber un botón, un campo de entrada y una casilla de verificación. Añade una DLL. Conecta con MT5.

Haré mi análogo en MT. Las mismas formas y elementos, y haciendo las mismas funciones. A continuación, comparemos las soluciones en términos de calidad y potencial de desarrollo.

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

Esta es mi solución:


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

Código de control en el Asesor Experto:

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;
   //-----------------------------------------------------------------
  }
//+------------------------------------------------------------------+

Archivos conectados a continuación:

1. Archivo EA de prueba (instalar en la carpeta de EAs, abrir, guardar, compilar, poner en el gráfico).

2. El archivo de conexión externa (instálelo en la carpeta de inclusión).

3. Archivo de propiedades de la conexión (se instala en la carpeta de inclusión).

4. Fichero de ejemplo del Foro 2 con el código de la ventana (sólo vista).

5. Engine (instalar en la carpeta de indicadores. Ponerlo en el gráfico con el EA de prueba).

Archivos adjuntos:
 
Espero que mis oponentes aporten su solución al problema de conectar un formulario de Windows a través de una DLL.
 
Реter Konow:
Espero que mis oponentes proporcionen su solución al problema de conectar el formulario de Windows a través de DLL.

Tengo la sensación de que eres el único que participa en esta "olimpiada especial" :-)

 

Por favor, en el apéndice. Al iniciar el Asesor Experto, se abrirá una ventana, en la que hay dos botones, dos cuadros de texto y una casilla de verificación. El color de los botones y el texto del primer cuadro de texto cambiarán una vez por segundo. Si se introduce un texto en el segundo campo de texto, el Asesor Experto abrirá una alerta con un mensaje de evento y este texto. Al pulsar los botones también se abrirá una alerta, con el primer botón abriendo el formulario-2 y el segundo cerrando el formulario-2. También puede cerrar el formulario 2 con una cruz. El formulario principal (formulario 1) no se puede cerrar con una cruz, desaparecerá cuando se desconecte el EA. La casilla de verificación también abre una alerta y hay dos tipos de eventos de la misma: 1 y 2 - desmarcar y marcar.

La mayor parte de mi tiempo lo dediqué a recordar C# (si es que sabía algo allí:), no he hecho nada en él desde hace más de tres años y también a desarrollar una clase para pasar eventos, pero es universal y se puede usar en cualquier proyecto. Así que ahora al crear un gui cuenta por minutos ;).

Si te preguntas cuánto tiempo consume internamente, necesitas llamar a un método de la clase para pasar un evento al EA - una línea. Para poder controlar los controles desde un EA es necesario escribir dos métodos, uno en la clase formulario y otro en la clase de transferencia de eventos, una línea de código en cada uno de ellos.

No he hecho controles de casillas de verificación en su EA - estoy aburrido de ellos, ya han establecido el color y el texto - tanto parámetro de texto y ints. El color se transmite como RGB, pero probablemente podría hacerse mediante una variable, no he profundizado en ello.

Y se supone que alguien que conozca mejor C# y FindowsForms puede hacerlo con el doble de facilidad, sin dos métodos para establecer las propiedades, sino con uno solo, y quizás hacer algo mejor.

Pues bien, las puertas del infinito mundo de C# y FindowsForms están abiertas.


Archivos adjuntos: