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!
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)!
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!
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( |
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.
O resultado foi o seguinte:#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);
}
Portanto, isto de fato parece um bug que precisa ser reportado ao Service Desk.2016.12.11 11:12:29.999 TestObjectDelete (EURUSD.m,H4) Result of Deleteing non-existing Chart Object: true
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:
A saída foi a seguinte:#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);
}
Portanto, isto de fato parece um bug que precisa ser reportado ao Service Desk.2016.12.11 11:12:29.999 TestObjectDelete (EURUSD.m,H4) Result of Deleteing non-existing Chart Object: true
obrigado por seu tempo :)
Você vai relatar isso na Central de Serviços?
sim, vou escrevê-lo. Eu estava esperando sua confirmação. obrigado.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
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?