所有行业的表。通过MQL5访问 - 页 2

 
prostotrader:
发现了一个错误并优化了操作。

一个很好的例子,尽管离最佳性能还有很长的路要走。到目前为止,主要的制动装置有三个。

1.CopyTiks 每个OnBookEvent都会复制自开始以来的所有ticks。

int copied= CopyTicks(Symbol(),ticks,COPY_TICKS_ALL,start_time,0);

这实际上可以通过做动态截止来进行优化。

2.在OnBookEvent中对所有接收到的tick进行全面枚举

for(int i=1; i<copied; i++)
{
   if(( ticks[i].flags  &TICK_FLAG_BUY)==TICK_FLAG_BUY)
   {
      buy_deals++;
   }
   else
   if(( ticks[i].flags  &TICK_FLAG_SELL)==TICK_FLAG_SELL)
   {
      sell_deals++;
   }
}

如果你愿意,这也是可以修复的。

3.在OnCalculation中完整地列举了所有条形。

for(int i=rates_total-1; i>0; i--)
{
   SellBuffer[i]= SellBuffer[i-1];
   BuyBuffer[i] = BuyBuffer[i-1];
}
 
应论坛成员的要求,我已经敲定了该指标
附加的文件:
DealsLent.mq5  9 kb
 
Vasiliy Sokolov:

一个很好的例子,尽管离最佳性能还有很长的路要走。到目前为止,主要的制动装置有两个。

1.CopyTiks 每个OnBookEvent都会复制自开始以来的所有ticks。

这实际上可以通过做动态截止来进行优化。

2.在OnBookEvent中对所有接收到的tick进行全面枚举

如果你愿意,这也是可以修复的。

3.在OnCalculation中完整地列举了所有条形。

谢谢,但你并不是处处都对。

1.不是所有的虱子(仔细看)。

2、你想怎么做?

3.容易做

现在,让我们来调整它......

 
在这里,经过调整。
附加的文件:
DealsLent.mq5  9 kb
 
prostotrader:

谢谢你,但你不是什么都对。

1.不是所有的虱子(仔细看)

2.容易做

3.容易做。

现在我们把它弄好了...

是的,确实不是所有的虱子。

关于第三点,我不确定这是否容易做到。该指标是滴答式的,因此需要认真地重新渲染。

但总体而言,它是可以的。谢谢你的例子。

 
prostotrader:
在这里,我对它进行了调整。
谢谢你。
 
Vasiliy Sokolov:

是的,确实不是所有的虱子。

关于第三点,我不确定这是否容易做到。因为该指标是一个刻度线指标,因此它确实需要一些严重的重新渲染。

但总体而言,它是可以的。谢谢你的例子。

事实上,该指标是基于tick的,所以只有当前的数据(最近的)才是重要的。

如果用户想从缓冲区获取更长的历史记录。

这是很容易做到的。

第二。

 

在这里,用户可以选择他们感兴趣的数据的大小。

如果ActSize = 0 - 所有可用的历史

附加的文件:
DealsLent.mq5  9 kb
 
最后的润色...
附加的文件:
DealsLent.mq5  10 kb
 

有谁知道这个错误是什么吗?

该指标工作正常,但显示的条数更多。

比它所设定的要好。

原因: