新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1940

 
大家好。能否请你告诉我mql4中的指标调用 是如何工作的?我在循环中改变了CCI的周期,但如果迭代次数超过205次,CCI就开始画零,而且是在另一个缓冲区。如果num=204,那么周期可能是偶数500,但是如果num=205,那么最大的周期可能是207,然后它将包含0。图表上有几千个柱子。如果我们不改变循环中的周期,当然一切都没问题。原因可能是什么?我不断面临着多个指标调用的问题。请告知如何处理,也许可以读一些文章?
   if(rates_total>prev_calculated)
   {
      int num=205;
      period =2;   

         for(int i=0; i<=num; i++)
         {
            cci[i] = iCCI(NULL,0,period,PRICE_CLOSE,i);   
            period++;
         }
      ////////////
      period=208;

      for(int i=0; i<100; i++)
      {
         CCI[i] = iCCI(NULL,0,period,PRICE_CLOSE,i);
      }
    
   }
如果num=300,最大周期为66
附加的文件:
iCCI.mq4  10 kb
 
我不时地尝试运行指标,它可以工作,但终端挂起。
 
至少告诉我,像他们说的那样,该往哪边挖?
 
Aleksandr Kononov #:
至少告诉我该往哪边挖,就像他们说的那样?

以及你做这种研究的目的是什么?这是否有实际意义?还是只是为了兴趣?

 
Aleksandr Kononov #:
至少告诉我,像他们说的那样,该往哪边挖?

.

 
这不是一项研究,这是一个实际问题。只是在这个例子中,整个要点都被拿走了,只剩下最重要的东西。我经常遇到这个问题,并且厌倦了靠直觉解决问题。我想解释一下为什么我们的内存会用完,然后我有这个问题,当指标调用函数 被使用超过一次时。如果你打电话给他们而不改变周期,一切都会好起来。但如果我改变时期,我就开始有问题了。
 
Aleksandr Kononov 指标调用函数 被使用超过一次时,为什么内存会耗尽或出现问题。如果你打电话给他们而不改变周期,一切都会好起来。但如果我改变时期,我就开始有问题了。

计算一个指标的200条是一回事。为200个指标计算一个条形是另一回事...不清楚你在哪里可以遇到需要加载200个指标的情况......有可能是这种 "实验 "有一个限制,所以它最终在内存中......

 
至于 "在哪里申请",这是一个想象力的问题。很多地方
 
那么,有什么办法可以检查内存吗?它是如何被消费的或其他什么?
 
Aleksandr Kononov #:
至于在哪里应用是一个想象力的问题。很多地方。

被挂起的代码不能在任何地方应用......你必须设定可以完成的任务...而且更容易搞砸代码...指标必须快速工作,没有时间进行超长的计算。

原因: