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 !
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)!
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!
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( |
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.
El resultado fue el siguiente:#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);
}
Por lo tanto, esto parece ser un error que debe ser reportado al Servicio de Atención al Cliente.2016.12.11 11:12:29.999 TestObjectDelete (EURUSD.m,H4) Result of Deleteing non-existing Chart Object: true
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:
El resultado fue el siguiente:#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);
}
Por lo tanto, esto parece ser un error que debe ser reportado a la Mesa de Servicio.2016.12.11 11:12:29.999 TestObjectDelete (EURUSD.m,H4) Result of Deleteing non-existing Chart Object: true
Gracias por su tiempo :)
¿Vas a informar de ello en el Service Desk?
- 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
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?