为什么MT5终端中的指标(线、箭头、柱状图)会闪烁? - 页 7

 
我不知道这是否有帮助,但我是这样解决这个问题的:在像for(int i=rates_total-prev_calculate; i>=0;i--)这样的循环的代码中,将rates_total-prev_calculate替换为1500的数值,闪烁就停止了!
 
Dmitry Melnichenko: 我不知道是否有帮助,但我是这样解决这个问题的:我在循环的代码中用数值1500代替了rate_total-prev_calculate,for (int i=rates_total-prev_calculate; i>=0;i--),闪烁停止了

奇怪的是,你这样做只是把循环中要处理的条数限制在1500条,也就是说,你注意到如果你急剧限制要处理的条数(一个数量级,甚至两个数量级),那么闪烁就会消失。也许这里面有什么东西,我将不得不检查一下。

那么,本主题第一个例子中的OnCalculate()函数 将看起来像这样。

//+------------------------------------------------------------------+
//| Custom indicator iteration function
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,      // размер входных таймсерий 
                 const int prev_calculated,  // обработано баров на предыдущем вызове 
                 const datetime& time[],     // Time 
                 const double&   open[],     // Open 
                 const double&   high[],     // High 
                 const double&   low [],     // Low 
                 const double&   close[],    // Close 
                 const long& tick_volume[],  // Tick Volume 
                 const long& real_volume[],  // Real Volume 
                 const int&  spread[])       // Spread 
{
// int N=rates_total-prev_calculated; if (N>MAX_PERIOD) N-=MAX_PERIOD;

   for (int i=1500; i>0 && !IsStopped(); i--) {
      double ma_fast=getMA(ma_fast_handle, i);
      double ma_slow=getMA(ma_slow_handle, i);;
      aom=ma_fast-ma_slow;
      if (aom>last_aom) {aUP[i]=aom; aDN[i]=EMPTY_VALUE;}
      else              {aDN[i]=aom; aUP[i]=EMPTY_VALUE;}
      last_aom=aom;
   }
   aUP[0]=EMPTY_VALUE; aDN[0]=EMPTY_VALUE;
   return(rates_total);
}

但是,如果我们需要在整组条形图上显示指标的话,它并不能从整体上解决这个问题。

 

显然,终端并没有向经纪人发送确认报价历史已经改变的信息。(也许杀毒软件在抵制)。

但经纪人(经纪人的服务器)发送和发送,"我们需要改变报价历史"。

或者你的电脑太弱,MT5没有时间在经纪人发送新的报价前改变报价历史。

 
Sergey Chalyshev:

显然,该终端没有向经纪人发送确认,即报价历史已经改变。(也许杀毒软件在抵制)。

但经纪人(经纪人的服务器)发了又发,"你需要改变报价历史"。

或者你的电脑太弱,无法在经纪人发送新的报价历史之前改变报价历史。

ZZ在周末也会闪烁其词。
 
-Aleks-:

ZZ在周末也会闪烁其词。

这取决于经纪人和其服务器设置。例如,MQL演示服务器在3小时后重写了历史记录。

也许我错了,希望平台的开发者会来解释。


 
Sergey Chalyshev:

这取决于经纪人和其服务器设置。例如,MQL演示服务器在3小时后重写了历史记录。

也许我错了,希望平台的开发者会来解释。

我有一个叫 "Otkritie "的经纪人--不是一个模拟账户

开发商作为游击队员沉默不语。

 
-Aleks-:

我有一个叫Otkritie的经纪人--不是一个模拟账户

开发商作为一个党派的人,沉默不语。


图表重绘

导致指定的图表被强行重绘。

它在代码中吗?

 
Sergey Chalyshev:

图表重绘

导致指定的图表被强行重绘。

代码中是否有一个?

没有。
 
-Aleks-:

没有。

这个 特定的指标是否有故障?我将在闲暇时研究一下。

 
Sergey Chalyshev:

这个 特定的指标是否有故障?我将在闲暇时研究一下。

我说的是MT5的标准ZigZag指标。