一个指标出现了除以零的错误 - 页 8

 
Aleksey Vyazmikin:

假设我们有

我们知道start_time应该是2018.04.28 23:00

因此,事实证明,这里的时间是错误的 ?

阿列克谢,看一下我的例子吧。我在那里逐行展示了你通过的每小时的时间是如何转换为与当前条形图最近的时间的。

 
我没能找到变量极限类型的声明。我的视力很弱。
 
Алексей Тарабанов:
找不到变量类型限制的声明。我的视力很弱。

帖子50,程序OnCalculate

 
Sergey Savinkin:

帖子50,OnCalculate程序

谢谢,但哪一个是50?你能帮我提供一个链接吗?

 
Алексей Тарабанов:

谢谢,但哪一个是50号?你能帮我提供一个链接吗?

https://www.mql5.com/ru/forum/262864/page5

该链接只是指向该页面。帖子的标题中写着50号。你的第74号))。

В одном индикаторе появилась ошибка деления на ноль
В одном индикаторе появилась ошибка деления на ноль
  • 2018.07.04
  • www.mql5.com
Общее обсуждение: В одном индикаторе появилась ошибка деления на ноль
 
谢谢你
 
Sergey Savinkin:
你先写了limit=start_index-stop_index+1,即limit==1,然后在除以2-limit=(int)(stop_time-start_time)/PeriodSeconds(_Period)一个是不加。零除以周期。

没错,limit=start_index-stop_index+1是指i>0,即用于历史计算, limit=(int)(stop_time-start_time)/PeriodSeconds(_Period)是用于计算当前条形。

而这个事情,其实就是我们的时间为什么这么歪--如果我们有一个小时的时间框架,那么日期必须是圆的,无论是开始还是结束--这才是真正的问题,开始日期上的条形时间不知为何是错的!!。

也许这里有一个问题。

start_index=ArrayBsearch(Time,start_time);

由于start_time在这一点上是正确的

datetime start_time=rates[i].time;
 
阿列克谢,没有 "在最后"。这只是量化而已。在18:00整,酒吧打开,显示了一个最小值和一个最大值,并在同一秒内安全关闭。
 
Алексей Тарабанов:
阿列克谢,没有 "在最后"。这只是一个量化的过程。恰好在18:00,酒吧打开,显示出最低和最高值,并在同一秒内安全关闭。

例如,酒吧在18:00打开,所以初始时间(start_time)将是18:00,最后时间(stop_time)应该是每小时时间框架的19:00。因此,在M1时间框架上,它们之间的指数会有所不同。而在代码中,开始和结束的索引是一样的,这是不正确的。

 
Aleksey Vyazmikin:

没错,limit=start_index-stop_index+1是指i>0,即用于历史计算, limit=(int)(stop_time-start_time)/PeriodSeconds(_Period)是用于计算当前条形。

而这个事情,其实就是我们的时间为什么这么歪--如果我们有一个小时的时间框架,那么日期必须是圆的,无论是开始还是结束--这才是真正的问题,开始日期上的条形时间不知为何是错的!!。

也许这里有一个问题。

由于start_time在这一点上是正确的

如果你首先从每小时的时间框架制作CopyRates(它变成了圆形的数字),然后从当前的时间框架(时间,变成了Time)和每小时的时间框架的Rates 传递给过程CreateFigure,然后在当前时间框架的数组中寻找索引, 为什么它们是圆形的start_index=ArrayBsearchTime,start_time)