服务台。投诉,建议。 - 页 7

 
Ilya Malev:
我刚刚在MT5的一个指标中发现了你的问题,在没有退出一个OnTimer循环的情况下, 在另一个符号/周期(不是当前的)上检查时间序列--函数告诉我它已经建立,并给出了正确的条数。紧接着我调用另一个函数来建立指标--在这个函数中,从OnTimer的同一调用中调用,时间序列设法被卸载,SeriesInfoInteger返回0。我不得不嵌入一个额外的循环检查,以便所有的东西都能在没有传入ticks的情况下自行构建。

MT5终端的构建是什么?米哈伊尔写道,MT5 build 1200应该没问题。

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

服务台。投诉,建议。

米哈伊尔, 2015.10.29 17:46

我很早以前就提出了指标中的数据问题!

https://www.mql5.com/ru/forum/42180

我得到保证,问题已经得到解决。

他们甚至在1200年版本的摘要中写到了这一点

17: 终端: 修正了一个错误,尽管从MQL5程序中定期访问数据,但却导致历史数据被卸载为未使用

如果是新建立的,但错误仍然存在 - 带着证据去找servicedesk!

 
Alexey Kozitsyn:

MT5终端的构建是什么?米哈伊尔写道,MT5 build 1200应该没问题。

如果是新的构建,而错误仍然存在,请到服务台提供证据! 如果是新的构建,而错误仍然存在,请到服务台。

其结构与1200/64相同。为了重现这个错误,我需要模拟我在一个相当复杂的产品中出现的情况,我不能把它送到桌子上。一旦我暂时没有工作,我就会去做。
 

在第一个回复中,有人就他的问题给了建议,而他这个话题发起人却没有理会。

Stanislav Starikov| 10.29 12:41

为了从别人的符号周期中获得实际数据,你需要比每10秒一次更频繁地访问这些数据。或者从专家顾问中访问这些数据,例如使用iTime(那么至少每3分钟可以访问一次数据)。


这个话题的发起人显然看到了这个建议,因为在他的指标中,有一些评论代码,他在这里提出了这个建议

         //if( bars_count == 0 || firstDate == 0 || serv_firstDate == 0 )
         //     {
         //      Print( "Подкачка iTime()" );
         //      datetime tm = iTime( _Symbol, period, 0 );
         //     }

如果你在OnInit和OnCalculate的开头插入无条件调用iTime(_Symbol,period,0),你就不会有上述问题了

SeriesInfoInteger只是收集了已经存在的信息,而没有调用数据交换,这是符合逻辑的。

 
Slawa:

在第一个答复中,有人就他的问题给了建议,而他这个话题发起人却没有理会。

Stanislav Starikov| 10.29 12:41

为了从别人的符号周期中获得实际数据,你需要比每10秒一次更频繁地访问这些数据。或者从专家顾问中访问这些数据,例如使用iTime(那么至少每3分钟可以访问一次数据)。


这个话题的发起人显然看到了这个建议,因为在他的指标中,有一些评论代码,他在这里提出了这个建议

如果你在OnInit和OnCalculate的开头插入无条件调用iTime(_Symbol,period,0),你就不会有上述问题了

SeriesInfoInteger只是收集了已经存在的信息,而没有调用数据交换,这是符合逻辑的。

维亚切斯拉夫,你现在在跟谁说话?我?还是对伊利亚?

如果你是针对Ilya的,他已经在谈论mql5了。 请在回答之前仔细阅读。我已经不止一次地告诉你,你急于回应而不谈细节。

我已经看到了你的建议,注释的代码证实了这一点,谢谢,这很有帮助。既然Renat说积极卸载数据的问题将被解决,那么就没有必要继续讨论mql4了。

但如果同样的情况在mql5中继续存在,尽管它应该从build1200开始被修复,那么该怎么办?

再一次,如果你们(开发者)不打算在mql4中改变什么,请在文档中添加SeriesInfoInteger() 只收集现有的信息,仅此而已!所有的问题都会消失,或者你可以直接在文档中戳穿!

 
Alexey Kozitsyn:

维亚切斯拉夫,你现在在和谁说话?我?还是对伊利亚?

既然提到了iTime,显然是关于MT4的。 我还没有举出具体的代码例子来回答我。
 
Ilya Malev:
既然提到了iTime,显然是指MT4。 我还没有给出具体的代码例子来回答我。
我理解这一点,但更有可能是你被解决了。但是你写了关于mql5的错误。
 
Alexey Kozitsyn:
我明白,但这可能也是针对你的。但是你写了关于mql5的错误。
我不是话题发起人 :)
 
Ilya Malev:
我不是话题发起人 :)
是的,但这个帖子就像是在向你解释我,在维亚切斯拉夫看来,没有掌握的东西。
 
Alexey Kozitsyn:
是的,但这个帖子就像是在向你解释我,根据维亚切斯拉夫的说法,没有抓住什么。

我想这是和你说话的方式 :)

我再来谈谈我的问题,并提供一个验证码。除非有什么东西在Build 1210中被修复了。到目前为止,我已经做了一次循环检查,然后继续前进,没有时间停下来。

 
Ilya Malev:
然后写下你在MT4中的历史实验结果)

开始尝试从头开始加载历史。也就是说,我按符号删除所有的历史记录,然后启动终端。终端设置窗口中的最大条数=5000。

如果在MT5中使用类似于数据访问组织的脚本,你可以看到历史记录被加载到最大条数 或服务器上的最后日期。

在MT4中使用类似的方案,数据没有被加载。也就是说,最初大约有2050个,为了获得更多的历史,你需要滚动图表到历史的深度。

我还注意到一个奇特的现象。当滚动时,如果有新的条形图被加载,prev_calculated被重置为0(作用类似于 "刷新 "按钮)。

亲爱的开发者。请评论是否有办法在不使用图表滚动的情况下调换历史记录(MT4!)。