指标: ZoomPrice tick 指标 - 页 4

 
ascerdfg:

我解压了 mql5.com/en/code/download/16753.zip,并以完整的文件夹结构进行了复制。

在 MetaEditor 5.0 build 2715 中编译 ZoomPrice.mq5 时,出现错误:

在更新源代码时,代码库中的 zip 文件已很长时间未更新。请单独下载每个文件。

 

1.在 Ticks.mqh 文件中有这样一段代码

AmountTicks = this.GetFreshTicks(NewTicks, COPY_TICKS_INFO, (uint)MathMax((this.To - this.LastTime) >> 5, 2000)); // ~2000 次/分钟

同时,在 GetFreshTicks 中有一个检查

if ((NewAmount > 0) && (this.Count < NewAmount))

换句话说,如果读取的是最后几个刻度,GetFreshTicks 不会改变 NewTicks 数组。但它并不会被清除,带有旧值的旧数组将被处理。也可以通过移动MqlTick NewTicks[] 声明来解决这个问题;

    TICK Tick;

    int AmountTicks = 1;

    while (AmountTicks > 0)
    {
      MqlTick NewTicks[];
      AmountTicks = this.GetFreshTicks(NewTicks, COPY_TICKS_INFO, (uint)MathMax((this.To - this.LastTime) >> 5, 2000)); // ~2000 次/分钟


2.一些错字

Количество тиков в последенем запросе


到目前为止,由于这个错误 https://www.mql5.com/ru/forum/363680/page9#comment_21182494,我还不能断定是一切正常还是有其他问题。

 

Пока из-за этого бага https://www.mql5.com/ru/forum/363680/page9#comment_21182494 не могу сказать, всё ли дальше нормально или ещё что не работает.

关于交易、自动交易系统和测试交易策略的论坛

自定义符号。错误、bug、问题和建议。

fxsaber, 2020.07.01 17:34

我确认了 2509 中的错误。

这个变体似乎没有失败。

int size = CopyTicksRange(_Symbol, array, COPY_TICKS_ALL, cursor);

也许改用 CopyTicksRange 更合理。

 
traveller00:

改用 CopyTicksRange 也许更有意义。

这个指标已经过时了。当时甚至没有这个功能。当然,要正常工作,您需要进行更改。

 
traveller00:

改用 CopyTicksRange 也许更有意义。

这似乎是一个可行的选择。


3. 有一个 void SetAutoScroll( void ) 函数。如果图表自动滚动到右边缘,ZoomTicks 的时间将通过 this.Ticks.GetNowTime() 根据实际当前时间计算。但自定义字符 不会产生新的时间点。因此,From 和 To 填入的将是当前时间的值,它不会为它们拾取刻度线(没有新的刻度线),刻度线图片最终将显示旧的刻度线,但在 this.SetTextCross 中,它将显示当前时间。


4.刻度线的请求来自时间间隔的左边缘。如果时间间隔为 01:00:00:00-01:01:00:00,而进入时间间隔的第一个刻度将在 01:00:30,则左半边将出现一个洞。

 
traveller00:

4.勾选请求来自时间间隔的左边缘。如果时间间隔为 01:00:00:00-01:01:00:00,而进入时间间隔的第一个刻度是在 01:00:30,则左半边会出现一个洞。

这原本就有。我并不是故意这样做的。

 
fxsaber:

它从一开始就存在。我不是故意规定的。

如果这不是秘密,那这个洞是用来干什么的?

 
traveller00:

如果这不是秘密,那这个洞是用来做什么的?

我一眼就看出左边没有刻度。

 
ascerdfg:

我也遇到了同样的错误。

我仍然有一个指标的工作版本,它对我来说仍然有效)。

 
放大价格