错误、漏洞、问题 - 页 595

 
-Alexey-:
试着转到C区--错误会自己发现。一般来说--对于这样的项目,如果你不希望将来出现问题,这是唯一的写作方法。不幸的是,我自己理解得太晚了,现在重写 :)。
我可能会在不久的将来学习C++。在过去的六个月里,我的脑袋已经装满了:MQL4、MQL5、HTML、CSS、XML。而现在我也在学习JavaScript。我还没有足够的空间和时间来做C++,虽然我很想做))。
 

我们有一个在TF M15上运行的指标,在代码中,指标从TF M1中请求时间序列MqlRates

由于M1数据没有准备好,在第一次运行时不可能加载数据,所以指标没有立即启动。

结果是我们有一个假的通过,指标不再访问数据,认为它已经被计算出来了,没有必要再重新计算。

现在我以两种方式运行该指标。

  1. 我在M15上启动指标,删除指标并再次启动它(它工作)。
  2. 在M15上运行该指标之前,我在M1上打开一个图表,在M15上运行该指标(第一次一切正常)。

因此,问题是:如何自动正确检查和加载另一个TF的所需数据?

 
Urain:

因此,问题是:如何自动检查和加载来自其他TF的所需数据?

在类似情况下,我在OnCalculate 中控制初始化过程。如果在初始化过程中出现错误,那么我就返回prev_calculated=0,以此类推,直到一切都计算正确。
 
Lizar:
在类似情况下,我在OnCalculate中控制初始化过程。如果在初始化过程中出现了错误,那么我就返回prev_calculated=0,然后继续做,直到所有的计算都正确。

这个想法很好,虽然没有什么可以分配给prev_calculated,这个变量被声明为const,但我知道你可以有另一个类似的变量。

仍然有一个问题--如果没有数据,我应该怎么做?

我明白,对数据的请求本身并不导致从本地数据库下载或上传,而这正是问题所在。

 
Urain:

这个想法很好,虽然你不能给prev_calculated分配任何东西,这个变量被声明为const,但我理解你,你可以有另一个类似的变量。

这不是关于赋值,而是关于OnCalculated返回的数字。如果你的数据没有准备好,你将从OnCalculated返回0
看看BarsCalculated 的例子。这就是你应该检查的方式。

还有一个问题--如果没有数据,你应该怎么做?

如果没有数据,也不会出现,那么就没有什么可做的。
如果你愿意,你可以等待并通过定时器计算缓冲区。
 
sergeev:

如果你的数据还没有准备好,你将从OnCalculated返回0
看一下BarsCalculated的例子。

如果你没有它们,它们也不会出现,那么就没有什么可做的。
如果你愿意,你可以通过定时器调用等待和计算缓冲区。

它没有帮助,只是卸载指标 并重新启动,在这种情况下,由于某种原因,数据已经存在。

或者,用所需的M1 TF打开图表,那么相邻的M1请求的M15图表上的数据就可以立即准备好。

 
Urain:

这没有帮助,只有卸载指标 并重新启动,在这种情况下,由于某种原因,数据已经存在了。

或者,用所需的TF打开一个图表,那么相邻图表上的数据马上就能准备好。

今天我花了半天时间与指数打交道。有多国货币/多国海事。

不显示的问题是,有人试图从一个根本不存在于这个TF中的条形图中取值。

因此,你必须在取条前检查 - SeriesInfoInteger。
不需要卸货。反正你不会卸下计算部分(我今天才提出这个话题)。
 
sergeev:

我今天已经和指数打了半天交道。有多国货币/多国海事。

不显示的问题是,它试图从一个在这个TF中不存在的条形图中取值。

因此,你必须在取条前检查 - SeriesInfoInteger。

不需要卸货。反正你不能卸载计算部分(我今天刚提了一个关于这个的话题)。

Mimeo,我有一个检查器,我找到了TF M1上的第一个日期,M15条的计算从这个日期开始。TF被设置为PERIOD_M1

   timestart=(datetime)SeriesInfoInteger(_Symbol,TF,SERIES_FIRSTDATE);
   for(int i=prev>0?prev-1:0;i<rates_total-1;i++)
     {
      if(time[i]>timestart)
        {
         ... расчёт
        }
     }
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков - Документация по MQL5
 
Urain:

1.想法是好的,虽然没有什么可以分配给prev_calculated,该变量被声明为const,但我知道你可以有另一个类似的变量。

2、还有一个问题,如果没有数据,我们应该怎么做?

3.我理解数据请求本身不会导致数据从本地数据库下载或上传,而这正是问题所在。

  1. 我是说从OnCalculate 返回0,然后prev_calculated=0。
  2. 我设置了重新初始化的计数器。溢出时,我卸下指标。
  3. 我与SoruXXX没有任何问题。如果有地方历史,一切都从第二次或第三次算起,如果不是从第一次算起。在锦标赛中,专家顾问使用的 "间谍 "只计算一分钟的历史,它在H1上工作。以此类推,共9对。如果根本没有本地历史,第2点就可以了。但是,在我的记忆中,历史记录是从服务器上下载的。
 
Urain:

我明白,数据请求本身并不导致从本地数据库下载或上传数据,而这正是问题所在。

来自CopyXXXX的帮助。

当向专家顾问或脚本请求数据时,如果终端在本地没有这些数据,它将开始从服务器下载,或者如果数据可以从本地历史建立,但它们还没有准备好,它将开始建立所需的时间序列。该函数将返回超时时准备好的数据量,但历史将继续被下载,下一个类似的请求将返回更多的数据。

我们只谈论专家顾问和脚本。这不适用于指标吗?