há algum bug no mt5 ObjectDelete?

 

oi , estou escrevendo um indicador em MQL5, mas o que quer que eu escreva como nome de string ObejectDelete retorna verdadeiro ! mesmo em um gráfico vazio, sem objetos!

int ObjCount = ObjectsTotal(ChartID(),/*0=subjanela principal*/0,/*todos os objetosTypes*/-1);

bool deleteResult=ObjectDelete(ChartID(), "objeto não existente");

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

aqui está o resultado :

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

não deveria retornar falso?


 
Farzin Sadeghi:

oi , estou escrevendo um indicador em MQL5, mas o que quer que eu escreva como nome de string ObejectDelete retorna verdadeiro ! mesmo em um gráfico vazio, sem objetos!

int ObjCount = ObjectsTotal(ChartID(),/*0=subjanela principal*/0,/*todos os objetosTypes*/-1);

bool deleteResult=ObjectDelete(ChartID(), "objeto não existente");

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

aqui está o resultado :

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

não deveria retornar falso?


aqui é o resultado do mesmo código em mt4 :

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

então o mt5 está funcionando mal!

 
Farzin Sadeghi:

aqui é o resultado do mesmo código em mt4 :

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

então o mt5 está funcionando mal!

Que construção de MT5 você está usando? A construção atual disponível é 1495 (09 Dez 2016)!
 
Fernando Carreiro:
Que construção de MT5 você está usando? A construção atual disponível é 1495 (09 Dez 2016)!
sim , o mt5 é construído 1495 , 2016.dez.09 , e o metaeditor é 1495 também.
 
Farzin Sadeghi:
sim , o mt5 é construído 1495 , 2016.dez.09 , e o metaeditor é 1495 também.

Por favor, forneça um pequeno código de teste/indicador completo que possamos compilar e testar em nossa extremidade para ver se ele também produz o mesmo efeito?

Se ele fizer o mesmo em nosso lado, então você pode relatá-lo ao Service Desk como um possível bug!

Anexe-o como um arquivo completo, em seu próximo post!

 
Fernando Carreiro:

Por favor, forneça um pequeno código de teste/indicador completo que possamos compilar e testar em nossa extremidade para ver se ele também produz o mesmo efeito?

Se ele fizer o mesmo em nosso lado, então você pode relatá-lo ao Service Desk como um possível bug!

Anexe como um arquivo completo, em seu próximo post!

aqui está o mesmo código tanto no mt5 como no mt4 . os resultados são diferentes, mas o arquivo de ajuda diz o mesmo.

ObjectDelete

A função remove o objeto com o nome especificado da tabela especificada.

boolObjectDelete(
longchart_id,// identificador do gráfico
nome da cadeia// nome do objeto
);

Parâmetros

gráfico_id

[em] Identificador do gráfico. 0 significa o gráfico atual.

nome

[em] Nome do objeto a ser excluído.

Valor de retorno

Retorna verdadeiro se a remoção foi bem sucedida, caso contrário, retorna falso.

Arquivos anexados:
 
Farzin Sadeghi: aqui está o mesmo código tanto no mt5 como no mt4 . os resultados são diferentes, mas o arquivo de ajuda diz o mesmo.
Em um acompanhamento, para ter certeza de que não era um bug no código fonte do OP, eu recriei meu próprio código e obtive o mesmo efeito com o seguinte código indicador, e eu também obtive de fato o mesmo resultado que o 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);
}
O resultado foi o seguinte:
2016.12.11 11:12:29.999 TestObjectDelete (EURUSD.m,H4)  Result of Deleteing non-existing Chart Object: true
Portanto, isto de fato parece um bug que precisa ser reportado ao Service Desk.
 
Fernando Carreiro:
Em um seguimento, para ter certeza de que não era um bug na fonte do OP, eu recriei meu próprio código e obtive o mesmo efeito com o seguinte código indicador, e eu também obtive de fato o mesmo resultado que o 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);
}
A saída foi a seguinte:
2016.12.11 11:12:29.999 TestObjectDelete (EURUSD.m,H4)  Result of Deleteing non-existing Chart Object: true
Portanto, isto de fato parece um bug que precisa ser reportado ao Service Desk.
obrigado pelo seu tempo :)
 
Farzin Sadeghi:
obrigado por seu tempo :)
Você vai relatar isso no balcão de serviço?
 
Fernando Carreiro:
Você vai relatar isso na Central de Serviços?
sim, vou escrevê-lo. Eu estava esperando sua confirmação. obrigado.
 
Farzin Sadeghi:
sim, vou escrevê-lo. Eu estava esperando sua confirmação. obrigado.
Fá-lo-ei também para ajudar a reforçar a questão!
Razão: