指标: FullSSA

 

FullSSA:

这是一个重绘振荡指标, 它是基于SSA.mqh单向变换库中的库函数绘制的.

图1 FullSSA 指标

作者: Nikolay Kositsin

 
for(k=0;k<=n-2;k++)for(i=k+1;i<=n-1;i++)
     {
      if(!B[k][k])
        {
         for(i1=0;i<=n-1;i++)
           {
            w[i1]=B[i1][k];
            B[i1][k]=B[i1][k+1];
            B[i1][k+1]=w[i1];
           }
         cp++;
        }
      Print(__FUNCTION__+": i=",i);  
      c=1.0*B[i][k]/B[k][k];
      for(j=0;j<=n-1;j++) B[i][j]-=B[k][j]*c;
     }

2019.03.31 00:07:28.689 (GBPUSD,H1) 'SSA.mqh' 中的数组超出范围 (147,14)


 
        for(i1=0;i1<=n-1;i1++)
           {
            w[i1]=B[i1][k];
            B[i1][k]=B[i1][k+1];
            B[i1][k+1]=w[i1];
           }

for() 中的所有地方都必须是 i1 ?

 
leonerd:

在 for() 中一定到处都是 i1 吗?

你才是傻瓜。

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

你自己就是个傻瓜

俄罗斯卫生部热线:8 800 550 99 03

 

错误一个接一个。数组 超限和除以 0。

我不知道如何纠正,因为我根本不明白这个库是怎么回事....。

比如这个循环

for(k=0;k<=n-2;k++)for(i=k+1;i<=n-1;i++)
     {
      if(!B[k][k])
        {
         for(i1=0;i<=n-1;i++)
           {
            w[i1]=B[i1][k];
            B[i1][k]=B[i1][k+1];
            B[i1][k+1]=w[i1];
           }
         cp++;
        }
        
      c=1.0*B[i][k]/B[k][k];
      for(j=0;j<=n-1;j++) B[i][j]-=B[k][j]*c;
     }
如果它到达了内循环的 for(它确实到达了,因为 B[k][k] 等于零),那么 i 就已经超过了外循环的限制,即 i 变得大于 n-1。然后,在访问 B[i] 时,我们会得到一个超出数组限制的出口,因为一个惊人的巧合,数组的大小等于 n。