MT5 OnDeinit函数为什么无法删除对象?

 
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[])
  {
//---
   ArraySetAsSeries(time,true);
   ArraySetAsSeries(high,true);
   ObjectCreate(0,"test",OBJ_ARROW,0,time[0],high[0]);
   ObjectSetInteger(0,"test",OBJPROP_ARROWCODE,233);
   
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason) 
{
   ObjectDelete(0,"test");
}
之后卸载这个指标,然后对象还留在图表上
 

今天是周末,没有tick数据更新,所以图表不能自动更新。

右键手动刷新一下。

 
Li Bo #:

今天是周末,没有tick数据更新,所以图表不能自动更新。

右键手动刷新一下。

刷新没用,明天开市看看
 
ObjectsDeleteAll(0);// 试一试
 
DiegoShan #:
刷新没用,明天开市看看

你的MT5环境可能和我不太一样。我昨天做上面回复前,用你的代码在我本机上试了一下。手动刷新可以去掉箭头的。

 
Li Bo #:

你的MT5环境可能和我不太一样。我昨天做上面回复前,用你的代码在我本机上试了一下。手动刷新可以去掉箭头的。

开市之后我就可以了,但是隔了好几秒之后才删掉,而不是即时的,不知道啥情况,可能这个是根本原因 。

 
Tiecheng Fu #:
ObjectsDeleteAll(0);// 试一试

开市之后我就可以删掉了,但是隔了好几秒之后才删掉,而不是即时的,不知道啥情况,可能这个是根本原因 。

里面就这一个对象。