¿hay un error en mt5 ObjectDelete?

 

Hola, estoy escribiendo un indicador en MQL5, pero todo lo que escribo como nombre de cadena ObejectDelete devuelve true ! incluso en un gráfico vacío sin objetos!

int ObjCount = ObjectsTotal(ChartID(),/*0=subventana principal*/0,/*todos los tipos de objetos*/-1);

bool deleteResult=ObjectDelete(ChartID(), "objeto no existente");

Print(__LINE__,"-",deleteResult," | ObjCount=",ObjCount);

aquí está el resultado :

2016.12.11 13:46:38.385 Far-Test (EURUSD,H1) 37-true | ObjCount=0

¿no debería devolver false?


 
Farzin Sadeghi:

Hola, estoy escribiendo un indicador en MQL5, pero todo lo que escribo como nombre de cadena ObejectDelete devuelve true ! incluso en un gráfico vacío sin objetos!

int ObjCount = ObjectsTotal(ChartID(),/*0=subventana principal*/0,/*todos los tipos de objetos*/-1);

bool deleteResult=ObjectDelete(ChartID(), "objeto no existente");

Print(__LINE__,"-",deleteResult," | ObjCount=",ObjCount);

aquí está el resultado :

2016.12.11 13:46:38.385 Far-Test (EURUSD,H1) 37-true | ObjCount=0

¿no debería devolver false?


aquí está el resultado del mismo código en mt4 :

2016.12.11 14:00:10.141 Far-TestObjDelete EURUSD_e,H1: 38-false | ObjCount=0

¡así que mt5 está trabajando mal !

 
Farzin Sadeghi:

aquí está el resultado del mismo código en mt4 :

2016.12.11 14:00:10.141 Far-TestObjDelete EURUSD_e,H1: 38-false | ObjCount=0

¡así que mt5 está trabajando mal !

¿Qué versión de MT5 está utilizando? ¡La actual build disponible es 1495 (09 Dic 2016)!
 
Fernando Carreiro:
¿Qué versión de MT5 está utilizando? ¡La actual build disponible es 1495 (09 Dic 2016)!
sí , el mt5 es construir 1495 , 2016.dec.09 , y metaeditor es 1495 también.
 
Farzin Sadeghi:
si , el mt5 es build 1495 , 2016.dec.09 , y el metaeditor es 1495 también.

Por favor, proporcione un pequeño script de prueba/código indicador completo para que podamos compilarlo y probarlo en nuestro extremo para ver si también produce el mismo efecto.

¡Si hace lo mismo en nuestro extremo, entonces usted puede informar al Servicio de Atención al Cliente como un posible error!

¡Adjúntalo como un archivo completo, en tu próximo post!

 
Fernando Carreiro:

Por favor, proporcione un pequeño script de prueba/código indicador completo para que podamos compilarlo y probarlo en nuestro extremo para ver si también produce el mismo efecto.

Si hace lo mismo en nuestro lado, entonces usted puede reportarlo al Servicio de Atención al Cliente como un posible error.

¡Adjúntalo como un archivo completo, en tu próximo post!

aquí está el mismo código tanto en mt5 como en mt4 . los resultados son diferentes pero el archivo de ayuda dice lo mismo.

ObjectDelete

La función elimina el objeto con el nombre especificado del gráfico especificado.

boolObjectDelete(
longchart_id,// identificador del gráfico
string name// nombre del objeto
);

Parámetros

chart_id

[in] Identificador del gráfico. 0 significa el gráfico actual.

nombre

[in] Nombre del objeto a eliminar.

Valor de retorno

Devuelve true si la eliminación fue exitosa, en caso contrario devuelve false.

Archivos adjuntos:
 
Farzin Sadeghi: aquí está el mismo código tanto en mt5 como en mt4 . los resultados son diferentes pero el archivo de ayuda dice lo mismo.
A continuación, para asegurarme de que no se trata de un error en el código fuente del OP, he recreado mi propio código y he obtenido el mismo efecto con el siguiente código de Indicador, y efectivamente yo también obtuve el mismo resultado que el OP:
#property strict
#property indicator_chart_window

int OnInit()
{
   return(INIT_SUCCEEDED);
}

int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[],
   const double &open[], const double &high[], const double &low[], const double &close[],
   const long &tick_volume[], const long &volume[], const int &spread[])
{
   static bool boolFirstTime = true;
  
   if( boolFirstTime )
   {
      boolFirstTime = false;
      bool boolDeleteResult = ObjectDelete( 0, "Non-existing Object" );
      Print("Result of Deleteing non-existing Chart Object: ", boolDeleteResult );
   }
  
   return(rates_total);
}
El resultado fue el siguiente:
2016.12.11 11:12:29.999 TestObjectDelete (EURUSD.m,H4)  Result of Deleteing non-existing Chart Object: true
Por lo tanto, esto parece ser un error que debe ser reportado al Servicio de Atención al Cliente.
 
Fernando Carreiro:
A continuación, para asegurarme de que no se trata de un error en el código fuente de la OP, recreé mi propio código y obtuve el mismo efecto con el siguiente código de indicador, y efectivamente también obtuve el mismo resultado que la OP:
#property strict
#property indicator_chart_window

int OnInit()
{
   return(INIT_SUCCEEDED);
}

int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[],
   const double &open[], const double &high[], const double &low[], const double &close[],
   const long &tick_volume[], const long &volume[], const int &spread[])
{
   static bool boolFirstTime = true;
  
   if( boolFirstTime )
   {
      boolFirstTime = false;
      bool boolDeleteResult = ObjectDelete( 0, "Non-existing Object" );
      Print("Result of Deleteing non-existing Chart Object: ", boolDeleteResult );
   }
  
   return(rates_total);
}
El resultado fue el siguiente:
2016.12.11 11:12:29.999 TestObjectDelete (EURUSD.m,H4)  Result of Deleteing non-existing Chart Object: true
Por lo tanto, esto parece ser un error que debe ser reportado a la Mesa de Servicio.
Gracias por su tiempo :)
 
Farzin Sadeghi:
Gracias por su tiempo :)
¿Vas a informar de ello en el Service Desk?
 
Fernando Carreiro:
¿Vas a informar de ello en el Service Desk?
Sí, voy a escribirlo. Estaba esperando su confirmación. Gracias.
 
Farzin Sadeghi:
Sí, voy a escribirlo. Estaba esperando tu confirmación. Gracias.
Yo también lo haré para ayudar a reforzar el tema.