资料库: iBarShift - 页 3 1234 新评论 Andrey Khatimlianskii 2013.10.28 02:13 #21 angevoyageur:谢谢,当 exact 为 true 时,我也必须修正我的代码,因为我误解了这个参数。iBarShift 的英文文档是错误的。我想这也是我的错误,iBarShift 应该返回包含指定时间的条形图(而不是精确的打开时间)。我能在我的函数库中使用您的函数吗(当然,您拥有版权)?如果它更快更正确,我为什么要重新发明轮子呢?) Alain Verleyen 2013.10.28 09:16 #22 komposter:我想这也是我的错误,iBarShift 应该返回包含指定时间的条形图(而不是精确的打开时间)。我能否在我的函数库中使用您的函数(当然,您拥有版权)?如果它更快更正确,我为什么要重新发明轮子呢?) 当然可以。 Alain Verleyen 2013.10.28 23:43 #23 考虑到 "精确 "参数的修正代码已经发布。 Alain Verleyen 2013.12.07 13:31 #24 angevoyageur:谢谢,当 exact 为 true 时,我也必须修正我的代码,因为我误解了这个参数。iBarShift 的英文文档有误。mql5 的错误发生在Bars() 函数 上,我已向服务台报告。 似乎 Bars() bug 已在第 880 版中修正。 Alain Verleyen 2013.12.07 13:51 #25 第 880 版修复了 Bars() 的错误,现在一切正常。 Pasi Hakamaki 2013.12.07 14:04 #26 angevoyageur: 第 880 版修复了 Bars() 的错误,现在一切正常。 Vasiliy Smirnov 2014.03.17 23:59 #27 在 m2 和 m1 上,由于某种原因,trudy 的值不是-1,而且在零小节时会返回到第一小节。 Ilya Malev 2015.10.15 01:35 #28 该函数至少有两处错误:1) if(time>LastBar)返回(0);如果 exact=true,在时间不明确属于最后一棒的情况下,即 time>LastBar+PeriodSeconds(timeframe) 时,逻辑应该返回-1。2) if(CopyTime(symbol,timeframe,time,1,checkcandle)==1)...返回(-1);同样,如果 exact=false,则应返回最近的条形图,本例中为 Bars(symbol,timeframe)-1。 Carl Schreiber 2017.09.13 11:57 #29 我认为您的代码中存在一个小错误://--- 如果时间 > LastBar,我们总是返回 0 if(time>LastBar) return(0);如果最后一个刻度线 "打开 "了一个新的条形图,那么 if(time>LastBar) 将变为 false - 因为现在 time == LastBar然后我们在这里着陆: if(checkcandle[0]==time) return(shift-1);现在 shift == 0,返回 -1,而不是 0!所以我认为//--- 如果时间 > LastBar,我们总是返回 0 if(time>LastBar) return(0);应该改为 //--- 如果时间 > LastBar,我们总是返回 0 if(time>=LastBar) return(0);调用 Alain Verleyen 2017.09.13 17:57 #30 Carl Schreiber:我认为您的代码中存在一个小错误:如果最后一个刻度线 "打开 "了一个新的条形图,那么 if(time>LastBar) 将变为 false - 因为现在 time == LastBar 不确定您的意思?我认为 "最后一个刻度线 "无关紧要。使用该函数 时,time=LastBar 与否都无关。然后我们就到了这里:现在 shift == 0 ,返回 -1,而不是 0! 如果 time==Lastbar 则 shift=1 而不是 0。因此不存在错误(shift 来自 Bars(),它是条数,这就是为什么我们返回'shift-1')。所以我认为应改为 卡利你的更正也行得通,但 "time===LastBar "的情况是作为 "正常 "情况处理的。语句 if(time>LastBar)是作为错误修复添加的,如果时间大于当前条形图的 0 时间。 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢,当 exact 为 true 时,我也必须修正我的代码,因为我误解了这个参数。iBarShift 的英文文档是错误的。
我想这也是我的错误,iBarShift 应该返回包含指定时间的条形图(而不是精确的打开时间)。
我能在我的函数库中使用您的函数吗(当然,您拥有版权)?如果它更快更正确,我为什么要重新发明轮子呢?)
我想这也是我的错误,iBarShift 应该返回包含指定时间的条形图(而不是精确的打开时间)。
我能否在我的函数库中使用您的函数(当然,您拥有版权)?如果它更快更正确,我为什么要重新发明轮子呢?)
谢谢,当 exact 为 true 时,我也必须修正我的代码,因为我误解了这个参数。iBarShift 的英文文档有误。
mql5 的错误发生在Bars() 函数 上,我已向服务台报告。
第 880 版修复了 Bars() 的错误,现在一切正常。
在 m2 和 m1 上,由于某种原因,trudy 的值不是-1,而且在零小节时会返回到第一小节。
该函数至少有两处错误:
1) if(time>LastBar)
返回(0);
如果 exact=true,在时间不明确属于最后一棒的情况下,即 time>LastBar+PeriodSeconds(timeframe) 时,逻辑应该返回-1。
2) if(CopyTime(symbol,timeframe,time,1,checkcandle)==1)
...
返回(-1);
同样,如果 exact=false,则应返回最近的条形图,本例中为 Bars(symbol,timeframe)-1。
我认为您的代码中存在一个小错误:
如果最后一个刻度线 "打开 "了一个新的条形图,那么 if(time>LastBar) 将变为 false - 因为现在 time == LastBar
然后我们在这里着陆:
现在 shift == 0,返回 -1,而不是 0!
所以我认为
应该改为
调用
我认为您的代码中存在一个小错误:
如果最后一个刻度线 "打开 "了一个新的条形图,那么 if(time>LastBar) 将变为 false - 因为现在 time == LastBar
然后我们就到了这里:
现在 shift == 0 ,返回 -1,而不是 0!
所以我认为
应改为
卡利
你的更正也行得通,但 "time===LastBar "的情况是作为 "正常 "情况处理的。
语句
if(time>LastBar)是作为错误修复添加的,如果时间大于当前条形图的 0 时间。