Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1286

 
Vladimir Karputov:

De todos modos, OnChartEvent sólo se activa para el símbolo actual - en este caso no tiene sentido reconocer el símbolo: siempre está colocado.

La segunda forma es saltarse la lista de todos los gráficos - ObjectFind.

Mientras tanto, ¿podría decirme qué tipo de error es este?

2021.02.02 18:06:55.780 GDICache        pen creation error [87]
2021.02.02 18:06:56.251 GDICache        pen creation error [87]
2021.02.02 18:06:56.556 GDICache        pen creation error [87]
2021.02.02 18:06:56.677 GDICache        pen creation error [87]
2021.02.02 18:06:56.969 GDICache        pen creation error [87]

He descubierto la razón. Apareció durante la depuración al especificar las propiedades de la línea. El estilo de la línea fue el valor de la izquierda. Es extraño que no haya encontrado ninguna mención a este error en ningún sitio.

 
Aleksandr Prishenko:

Antes funcionaba bien. Debería haberlo probado en el alojamiento gratuito. De todos modos dio el methaquotes 15 quid ))))

Gracias por la respuesta.

Migró (se arrepintió de los 15) pero las comprobaciones son bastante extrañas.

El migrador no entiende la ruta de instalación del indicador desde el EA, tiene que limpiar los gráficos:

2021.02.02 19:57:39.442 Hosting virtual 6215402: comprobación de la carga "C:\sers\Crucian\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Experts\BBS_9.ex5::Indicators\Band Width1.ex5"

2021.02.02 19:57:39.442 Virtual Hosting 6215402: fallo al cargar el programa


El Migrator incluso pide que se recompilen los indicadores técnicos )):

2021.02.02 19:44:12.708 Alojamiento virtual 6215402: la versión obsoleta del módulo importado "ZigZag.ex5" debe ser recompilada antes de la transferencia al servidor de alojamiento



 
Buenas tardes, he visto muchos artículos sobre cómo construir un EA a partir de un indicador o cómo obtener datos de un indicador en un EA. ¿Y cómo hacer lo contrario, cómo visualizar un EA, digamos que ha calculado una matriz de datos cómo transferirla a un indicador personalizado?
 
VANDER:
Buenas tardes, he visto muchos artículos sobre cómo construir un EA a partir de un indicador o cómo obtener datos de un indicador en un EA. ¿Y cómo hacer lo contrario, cómo visualizar un EA, digamos que ha calculado un array de datos cómo transferirlo a un indicador personalizado?

A través de un .mqh enchufable en el que se cuenta todo y el EA toma de allí, y el indicador...

 

Hola! ¿Cómo puedo hacer que la plataforma MT5 magnetice la línea en el indicador de Medias Móviles? Para que la línea de tendencia se levante con claridad y quede imantada a la línea del indicador. En los ajustes de la plataforma en los gráficos hay un elemento de "magnetización", allí la línea de tendencia se pone en el precio de apertura. ¿Existe esa forma para una media móvil y una línea de tendencia simple?


 
leonerd:

Inicie el depurador, ponga un punto de interrupción en la variable de tipo. Dibujo un triángulo (Insertar - Objetos - Formas - Triángulo) en el gráfico. Presione Borrar, el triángulo es eliminado. Atrapo un evento, el tipo en el código anterior es siempre 0. type_str, respectivamente, es OBJ_VLINE (primer valor en la enumeración).

El mismo código devuelve OBJ_TRIANGLE como el tipo de objeto correcto cuando se modifican o arrastran las propiedades de un objeto gráfico.

La salida. Al eliminar un objeto gráfico falla la obtención del tipo de objeto en OnChartEvent.

Todavía no está claro cómo obtener el tipo de un objeto eliminado. El nombre del objeto en OnChartEvent() viene correcto pero el tipo es siempre 0. ¿Es lo descrito anteriormente un error o debería hacerse de alguna otra manera?

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   if(id==CHARTEVENT_OBJECT_DELETE)
     {
      string object_name=sparam;
      ENUM_OBJECT object_type=(ENUM_OBJECT)ObjectGetInteger(ChartID(),object_name,OBJPROP_TYPE); // object_type всегда VLINE
     }
  }
 
leonerd:

Todavía no está claro cómo averiguar el tipo del objeto eliminado. El nombre del objeto en OnChartEvent() viene correcto, pero el tipo es siempre 0. ¿Es lo descrito anteriormente un error o debería hacerse de otra manera?

ObjectType(sparam)
 
Vitaly Muzichenko:

¿Qué es la función ObjectType()?

Parece ser una rama sobre MQL5.

Obviamente, fue diseñado así. Los demás parámetros del objeto eliminado no pueden recuperarse. Sólo recibe el nombre. Las coordenadas, etc. son todas cero. ¿Existe alguna forma de recuperarlos desde el evento de borrado de un objeto gráfico?

 
leonerd:

¿Qué es la función ObjectType()?

Parece ser una rama sobre MQL5.

Obviamente, fue diseñado así. Los demás parámetros del objeto eliminado no pueden recuperarse. Sólo recibe el nombre. Las coordenadas, etc. son todas cero. ¿Existe alguna forma de obtenerlos al borrar un objeto gráfico?

Sí, no lo esperaba en mql5, pero hay un análogo:

ObjectGetInteger(0,name,OBJPROP_TYPE)

Quieres obtener los parámetros del objeto por el evento de borrado, es decir, después de que ya haya desaparecido.

 
leonerd:

¿Qué es la función ObjectType()?

Parece ser una rama sobre MQL5.

Aparentemente, fue diseñado así. Los demás parámetros del objeto eliminado no pueden recuperarse. Sólo recibe el nombre. Las coordenadas, etc. son todas cero. ¿Hay alguna forma de obtenerlos del evento de eliminación de un objeto gráfico?

Probablemente, esa posibilidad no existe ni se espera. Después de todo el objeto ya existe...

Veo tal salida: En la creación del objeto, en una estructura de matriz para escribir el nombre y todos los parámetros requeridos, y en la eliminación, después de la lectura de los parámetros requeridos eliminar de la estructura de matriz registro sobre el mismo.

Razón de la queja: