Por el momento, la biblioteca está personalizada para un panel del gráfico.
Si intentas añadir 2 paneles, los eventos se capturan incorrectamente - los elementos tienen el mismo Id, y el Id padre no se comprueba.
Para probarlo, tomé la demo Controls.mq5 y dupliqué el panel - todos los eventos se duplican en ambos paneles, aunque no debería ser así.
ObjCAppDialog.Create(chart,name,subwin,x1,y1,x2,y2))en lugar de
CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2))?
En el elemento "Llenado del panel de visualización" puede en lugar de utilizar algo como ?
Buenos días, tal vez usted me puede decir qué hacer.
Su ejemplo ekspert Controles.
Al cambiar a un período diferente el experto se descarga, trató de quitar ExtDialog.Destroy(razón); en OnDeinit().
¿Me puedes decir que tengo que hacer para que el cuadro de diálogo siga funcionando al cambiar a otros periodos?
- www.mql5.com
Buenos días, tal vez usted me puede decir qué hacer.
Tu ejemplo es un Expert Advisor Controls.
Al cambiar a otro periodo el Expert Advisor se descarga, he intentado quitar ExtDialog.Destroy(reason); en OnDeinit().
¿Puede decirme qué debo hacer para que el cuadro de diálogo siga funcionando al cambiar a otros periodos?
IMHO, creo que es mas facil crear librerias a mano, para saber donde y como usarlas o arreglarlas si algo esta mal.
Ejemplo de escribir un panel sin usar clases estandar: VirtualTradePad PositionsStyle
Uno puede preguntarse por qué usando el MQL5 Wizard para construir una clase produce un código que no compila :

Como se indica en el artículo, usted tiene que agregar esta línea de código manualmente, esto es un poco extraño para un Asistente destinado a no-codificador
#include <Controls\Dialog.mqh>Además :
This article will demonstrate how easy it is to create your own display panels in a separate chart subwindow using the Standard Library classes.
Creo que esto es una broma, no ?
- 2011.01.11
- MetaQuotes Software Corp.
- www.mql5.com
"Esto es un poco raro para un asistente destinado a no codificadores".
No creo que este asistente sea para no-codificadores.
Puede que te consiga (al programador novato) un pie en los primeros pasos necesarios para crear algo.
El framework MQL5 ofrece mucho potencial y parte de él podría ser descubierto con las creaciones del asistente
pero creo que para conseguir algo más complejo como este ejemplo siempre necesitarás los fundamentos de la programación.
Pero estoy de acuerdo en que debería ser necesario incluir las cosas obvias si derivas de una clase base...
" Esto es un poco raro para un asistente destinado a no codificadores".
No creo que este asistente sea para no-codificadores.
Puede que te consiga (al programador novato) un pie en los primeros pasos necesarios para crear algo.
El framework MQL5 ofrece mucho potencial y parte de él podría ser descubierto con las creaciones del asistente
pero creo que para conseguir algo más complejo como este ejemplo siempre necesitarás los fundamentos de la programación.
Pero estoy de acuerdo en que debería ser necesario incluir las cosas obvias si se derivan de una clase base ...
Probablemente tengas razón, pero pensé que el MQL5 Wizard fue diseñado en primer lugar para los no-codificadores. De todos modos la cuestión es como un error aquí, ya que tienes que añadir código manualmente para compilar el código creado por Wizard.
- 2011.01.11
- MetaQuotes Software Corp.
- www.mql5.com
Me di cuenta de que en la biblioteca de GUIs de usuario (paneles) se copia no del todo éxito en mi opinión modelo de eventos:
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { ... }
En primer lugar, no todos los eventos tienen un conjunto de variables correspondientes a int, long, double y string. En algún lugar puede haber más variables que describan el evento, en algún lugar menos, en algún lugar no coinciden con los tipos básicos propuestos. De hecho, vemos conversiones constantes como int -> bool, string -> int, double -> int, etc. Y si desde el punto de vista de la programación procedimental no se puede hacer prácticamente nada (porque no se van a crear 1.000.000 de funciones sobrecargadas para cada hipotético caso), en el marco de la POO todo se puede hacer mucho más fácil y elegante.
Pero el principal problema de OnEvent es que este manejador de eventos está pensado para manejar eventos recibidos del gráfico, mientras que el evento puede ser cualquier cosa, como la apertura de una nueva posición o el cambio de cotizaciones. En general, OnEvent(...) de alguna manera no parece un manejador de eventos universal, IMHO. Tal vez los desarrolladores de alguna manera han logrado manejar sus propios eventos sobre la base de la CWnd existente, pero para mí el uso de la biblioteca estándar de los paneles sigue siendo problemático.
- 2010.11.10
- Samuel
- www.mql5.com
Gracias, lo he estudiado, ¡es útil! Un momento: ¿hay algún plan para crear algún tipo de constructor, para que los paneles se puedan montar en el constructor de formularios como en VS? porque no es muy cómodo contar todo a mano, quizá sea una muestra de profesionalidad, pero lleva mucho tiempo)).
con las macros obviamente se han pasado...
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Cree sus propios paneles gráficos en MQL5:
La funcionalidad del programa MQL5 viene determinada tanto por sus ricas características como por una interfaz de usuario muy desarrollada. A veces, la percepción visual es más importante que el funcionamiento rápido y estable. Esta es una guía paso a paso para que pueda crear por sí mismo paneles gráficos sobre la base de las clases de la librería estándar.
Autor: MetaQuotes Software Corp.