错误、漏洞、问题 - 页 2179 1...217221732174217521762177217821792180218121822183218421852186...3184 新评论 Artyom Trishkin 2018.03.30 21:17 #21781 Nikolai Semko:不,这与加载无关。 如果你不采取零起点的酒吧,而是说50个酒吧,那么一切都可以了。瞬间的。 如果我把它提高到包括30巴,它就会冻结。在那之后,就没有了。 这绝对是一个错误!试试这个。 //+------------------------------------------------------------------+ //| Возвращает смещение бара по времени | //| https://www.mql5.com/ru/code/1864 | //+------------------------------------------------------------------+ int iBarShift(const string symbol_name,const ENUM_TIMEFRAMES timeframe,const datetime time,bool exact=false) { datetime last_bar; if(!SeriesInfoInteger(symbol_name,timeframe,SERIES_LASTBAR_DATE,last_bar)) { datetime array[1]; if(CopyTime(symbol_name,timeframe,0,1,array)==1) last_bar=array[0]; else return WRONG_VALUE; } if(time>last_bar) return(0); int shift=Bars(symbol_name,timeframe,time,last_bar); datetime array[1]; if(CopyTime(symbol_name,timeframe,time,1,array)==1) return(array[0]==time ? shift-1 : exact && time>array[0]+PeriodSeconds(timeframe) ? WRONG_VALUE : shift); return WRONG_VALUE; } //+------------------------------------------------------------------+ Nikolai Semko 2018.03.30 22:32 #21782 Artyom Trishkin:试试这个。 iBarShift和什么有关系? 这是关于标准Bars函数 中的一个错误 Artyom Trishkin 2018.03.30 22:34 #21783 Nikolai Semko:iBarShift和什么有关系? 这是关于标准Bars函数 中的一个错误该函数也使用了Bars()。你从iBarShift()的模拟开始 Nikolai Semko 2018.03.30 23:07 #21784 Artyom Trishkin:该函数也使用了Bars()。在你的案例中,这一切都始于iBarShift()的模拟量是的,当然,使用iBarShift的对应工具,发现了这个问题。 如果你使用你给的iBarShift函数,你就不会发现这个错误,因为那里只用了一个TF。 当你在CopyTime 和Bars函数 中使用不同的TF时,这个错误就会发生。 但Bars在任何时候都应该正常工作。但我的例子表明,有一种特殊情况,iBar会挂起几十秒。而且这与装载历史没有关系。 Vitaly Muzichenko 2018.03.30 23:11 #21785 Nikolai Semko:是的,当然,使用iBarShift的对应工具,发现了这个问题。 如果你使用你给的iBarShift函数,你就不会发现这个错误,因为那里只用了一个TF。 当你在CopyTime 和Bars函数 中使用不同的TF时,这个错误就会发生。 但Bars在任何时候都应该正常工作。但我的例子表明,有一种特殊情况,iBar会挂起几十秒。而且这与装载历史没有关系。这很可能是由于历史原因造成的加载 Kirill Belousov 2018.03.30 23:32 #21786 Nikolai Semko:是的,当然,使用iBarShift的对应工具,发现了这个问题。 如果你使用你给的iBarShift函数,你就不会发现这个错误,因为那里只用了一个TF。 当你在CopyTime 和Bars函数 中使用不同的TF时,这个错误就会发生。 但Bars在任何时候都应该正常工作。但我的例子表明,有一种特殊情况,iBar会挂起几十秒。而且这与装载历史没有关系。我认为在要求的范围内没有条形图的情况下,存在循环同步的尝试--Bars正在努力 "正常工作",然后通过超时或同步尝试的次数放弃。 你应该自己检查这些值,以避免在这种情况下调用Bars。 Nikolai Semko 2018.03.31 00:53 #21787 Vitaly Muzichenko:这很可能是由于历史上传造成的我不同意。它在22秒内不会被再次下载。此外,我还通过一个特殊的指标加载了所有TFs的所有历史。 如果是加载,那么我们如何解释前31条需要加载,而后面的则不需要。 A100 2018.03.31 01:09 #21788 Nikolai Semko:如果是分载,那么你怎么解释前31条需要分载,而后面的不需要。从文件中可以看出:当要求在一个给定的日期范围内的条数 时,只有那些开盘时间在这个范围内的条数才被考虑在内。 因此,Bars()原型返回0,这被解释为没有历史记录,而::Bars()在脚本的情况下,正如在以前的帖子中正确指出的那样,以超时或失败的尝试次数来终止。 Nikolai Semko 2018.03.31 01:10 #21789 Kirill Belousov:我认为在所要求的范围内没有柱状物时,存在循环同步的尝试--Bars正在努力 "正常工作",然后通过超时或同步尝试的次数而放弃。 这种情况的原因是,你不应该为了自己检查数值而调用Bars。这是很有可能的。 但也有很多选择。 酒吧是一个非常重要的功能,没有它就很难做到。确切地说,你可以不这样做,但这将花费你大量的资源。 你必须确保其功能完美。 Nikolai Semko 2018.03.31 01:14 #21790 A100:从文件中可以看出:当要求在一个给定的日期范围内的酒吧数量 时,只有那些营业时间在这个范围内的酒吧才会被考虑进去。 因此,Bars()的原型返回0,这被解释为缺乏历史记录,并且脚本,正如之前的信息中正确指出的那样,通过超时或失败的尝试次数来终止。很明显,它是零。 还有呢--在给定的时间范围内,用22秒的时间来决定零条,这可以吗? 在Bars的内部实现中存在一个明显的算法错误。 我们应该就这个问题向服务台发出请求--周末就要到了,这个问题可能会在周一丢失。 1...217221732174217521762177217821792180218121822183218421852186...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不,这与加载无关。
如果你不采取零起点的酒吧,而是说50个酒吧,那么一切都可以了。瞬间的。
如果我把它提高到包括30巴,它就会冻结。在那之后,就没有了。
这绝对是一个错误!
试试这个。
试试这个。
iBarShift和什么有关系?
这是关于标准Bars函数 中的一个错误
iBarShift和什么有关系?
这是关于标准Bars函数 中的一个错误
该函数也使用了Bars()。你从iBarShift()的模拟开始
该函数也使用了Bars()。在你的案例中,这一切都始于iBarShift()的模拟量
是的,当然,使用iBarShift的对应工具,发现了这个问题。
如果你使用你给的iBarShift函数,你就不会发现这个错误,因为那里只用了一个TF。
当你在CopyTime 和Bars函数 中使用不同的TF时,这个错误就会发生。
但Bars在任何时候都应该正常工作。但我的例子表明,有一种特殊情况,iBar会挂起几十秒。而且这与装载历史没有关系。
是的,当然,使用iBarShift的对应工具,发现了这个问题。
如果你使用你给的iBarShift函数,你就不会发现这个错误,因为那里只用了一个TF。
当你在CopyTime 和Bars函数 中使用不同的TF时,这个错误就会发生。
但Bars在任何时候都应该正常工作。但我的例子表明,有一种特殊情况,iBar会挂起几十秒。而且这与装载历史没有关系。
这很可能是由于历史原因造成的加载
是的,当然,使用iBarShift的对应工具,发现了这个问题。
如果你使用你给的iBarShift函数,你就不会发现这个错误,因为那里只用了一个TF。
当你在CopyTime 和Bars函数 中使用不同的TF时,这个错误就会发生。
但Bars在任何时候都应该正常工作。但我的例子表明,有一种特殊情况,iBar会挂起几十秒。而且这与装载历史没有关系。
我认为在要求的范围内没有条形图的情况下,存在循环同步的尝试--Bars正在努力 "正常工作",然后通过超时或同步尝试的次数放弃。
你应该自己检查这些值,以避免在这种情况下调用Bars。
这很可能是由于历史上传造成的
我不同意。它在22秒内不会被再次下载。此外,我还通过一个特殊的指标加载了所有TFs的所有历史。
如果是加载,那么我们如何解释前31条需要加载,而后面的则不需要。
如果是分载,那么你怎么解释前31条需要分载,而后面的不需要。
从文件中可以看出:当要求在一个给定的日期范围内的条数 时,只有那些开盘时间在这个范围内的条数才被考虑在内。
因此,Bars()原型返回0,这被解释为没有历史记录,而::Bars()在脚本的情况下,正如在以前的帖子中正确指出的那样,以超时或失败的尝试次数来终止。
我认为在所要求的范围内没有柱状物时,存在循环同步的尝试--Bars正在努力 "正常工作",然后通过超时或同步尝试的次数而放弃。
这种情况的原因是,你不应该为了自己检查数值而调用Bars。
这是很有可能的。
但也有很多选择。
酒吧是一个非常重要的功能,没有它就很难做到。确切地说,你可以不这样做,但这将花费你大量的资源。
你必须确保其功能完美。
从文件中可以看出:当要求在一个给定的日期范围内的酒吧数量 时,只有那些营业时间在这个范围内的酒吧才会被考虑进去。
因此,Bars()的原型返回0,这被解释为缺乏历史记录,并且脚本,正如之前的信息中正确指出的那样,通过超时或失败的尝试次数来终止。
很明显,它是零。
还有呢--在给定的时间范围内,用22秒的时间来决定零条,这可以吗?
在Bars的内部实现中存在一个明显的算法错误。
我们应该就这个问题向服务台发出请求--周末就要到了,这个问题可能会在周一丢失。