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

 
mila.com:

顾问是为了检查可能性本身,它正确地打开,但在指标中,它根本看不到 "Arrow v.3 "指标的近两个缓冲区的值。

所以你在循环中的数组 外有一个指标。看看什么是极限,以及嵌套循环中的il值是什么。当limit == rates_total-2时,index il指的是哪里?

 
mila.com:

你如何看待这个问题?

查看您的代码

 
Artyom Trishkin:

看看极限是什么,以及嵌套循环中的il值是什么。

打印第一个和第二个箭头的条形号码,交替进行。

  for(int i=limit; i>=0; i--) 
     {
     for(int il=i+1;il<=i+300;il++)
        {
         if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",0,il),Digits)!=EMPTY_VALUE
            )
           {
            num_buy=il;
            Print(il);
           // break;
           }
        }
//
      if(num_buy==60)
        {
         BufferUP[i+1]=low[i+1]-distance*MyPoint;
         
        }
    }
 
Artyom Trishkin:

检查你的代码

我已经看了三天了,我不知道哪里出了问题)。

帮帮我吧
 
mila.com:

打印第一个和第二个箭头的条形号码,交替进行。

这到底是一种什么样的怪异循环呢?

为什么你从故事的开头到结尾,在第一个循环的每一次迭代中,都要以嵌套循环的方式继续回到三百条?

你可能是被iCustom()所救,它不会给出历史数据以外的值。

那么,自己看看吧。假设你有一个只有1000条的历史:rate_total在这种情况下,你有1000条。限,1000-2=998。所以,第一个历史条被排除在循环之外。不用担心。

你首先把一个索引放在数字998的柱子上(rate_total-2 = 1000-2 = 998)。

然后你会怎么做?然后你从i值开始嵌入循环,等于998+1=999--这是历史上的第一条--左边没有什么了--是空的。然后你从999到999+300进行循环。那里没有数据--这是到了阵列之外。

因此,在这种情况下,限制应该是这样的,即在最开始的嵌入式循环将达到999条。这就是 rates_total-2-300。然后,由于你从i+1开始嵌套循环,这时就不会出现数组的超限:i=1000-2-300=698。在嵌套循环中,li=i+1=698+1=699,至于li=i+300=698+300=998。同样,第一根柱子被排除在计算之外。但并没有出现阵列超限的情况。

显然,你不太知道自己在做什么。

这表现在总体上是一个非常奇怪的循环。

你不需要在那里嵌套循环。如果你要在自定义指标的 缓冲区中寻找一定数量的值,那么就从零到某一数值进行循环。但不能超过 rates_total。

 
Artyom Trishkin:

这到底是一种什么样的怪异循环呢?

为什么你从故事的开头到结尾,在第一个循环的每一次迭代中都要不断地回到三百条的嵌套循环?

你可能是被iCustom()所救,它不会给出历史数据以外的值。

那么,自己看看吧。假设你有一个只有1000条的历史:rate_total在这种情况下,你有1000条。限,1000-2=998。那么,第一个历史条被排除在循环之外。随它去吧。

你首先把一个索引放在数字998的柱子上(rate_total-2 = 1000-2 = 998)。

然后你会怎么做?然后你从i值开始嵌入循环,等于998+1=999--这是历史上的第一条--左边没有什么了--是空的。然后你从999到999+300进行循环。那里没有数据--这是到了阵列之外。

因此,在这种情况下,限制应该是这样的,即在最开始的嵌入式循环将达到999条。这就是 rates_total-2-300。然后,由于你从i+1开始嵌套循环,这时你就不会超出数组的范围:i=1000-2-300=698。在嵌套循环中,li=i+1=698+1=699,至于li=i+300=698+300=998。同样,第一根柱子被排除在计算之外。但并没有出现阵列超限的情况。

显然,你不太知道自己在做什么。

这表现在总体上是一个非常奇怪的循环。


谢谢你,这很清楚。

 
Artyom Trishkin:

这表现在总体上是一个非常奇怪的循环。

你不需要在那里嵌套循环。如果你要寻找一定数量的自定义指标 缓冲值,那么就做一个从零到某个值的循环。但不能超过 rates_total。

为什么从零开始?

如果在第三条或 "N "条上有一个被称为指标的箭头,我需要把它作为一个点。关于整个历史

什么是正确的周期?

 
mila.com:

为什么要从零开始?

我需要在要调用的指标的第三个或 "N "条上点出是否有一个箭头。关于整个历史。

什么是正确的周期?

这应该在哪里进行?在一个指标中?在EA中?

 
Artyom Trishkin:

这应该在哪里进行?在一个指标中?在EA中?

在一个指标中

 
mila.com:

在该指标中

所以要通过第一个循环索引正确读取iCustom()。

另一个问题是,你需要从当前栏到左边的数据。这就是为什么我说--从零读到找到的那个,但不超过 rates_total-1。

而当限制>1时,只读。

否则,就没有新的数据,你需要的条形图的索引就不会改变。

原因: