繁体   English   中英

数组 function 在严格模式下使用

[英]Array function use on strict mode

我无法使用这些数组 function 在 MQL4 严格模式下使用它。 谁能提示我应该从哪里开始? 目的是让它可以在严格模式下工作。

int Trigger;

 void function6(int &arrays[50])
  {
   int vals = ArraySize(arrays);
   int trailingstop = TimeCurrent() - (arrays[function5(arrays) - 1]);
   while(trailingstop > Trigger)
     {
      arrays[function5(arrays) - 1] = 0;
      trailingstop = TimeCurrent() - (arrays[function5(arrays) - 1]);
      if(function5(arrays) < 2)
         break;
     }
  }
                                        
int function5(int &arrays[50])
  {
   int vals = ArraySize(arrays);
   for(int k = 0; k < vals; k++)
      if(!(arrays[k] > 0))
         return (k);

   return (vals - 1);
  }

void function4(double &val[50])
  {
   int vald = ArraySize(val);
   for(int l = vald; l > 0; l--)
      val[l] = val[l - 1];
   val[0] = 0;
  }

void function3(int &arrays[50])
  {
   int vald = ArraySize(arrays);
   for(int l = vald; l > 0; l--)
      arrays[l] = arrays[l - 1];
   arrays[0] = 0;
  }

Arrays 从 0 开始,而不是 1。当使用 ArraySize 定义 arrays 的计数时,应始终减去 1 以说明从 0 开始。

void function6(int &arrays[50])
{
   int vals = ArraySize(arrays)-1;
   int trailingstop = TimeCurrent() - (arrays[function5(arrays) - 1]);
   while(trailingstop > Trigger)
   {
      arrays[function5(arrays) - 1] = 0;
      trailingstop = TimeCurrent() - (arrays[function5(arrays) - 1]);
      if(function5(arrays) < 2) break;
   }
}

int function5(int &arrays[50])
{
   int vals = ArraySize(arrays)-1;
   for(int k = 0; k < vals; k++)
   if(!(arrays[k] > 0)) return (k);
   return (vals - 1);
}

void function4(double &val[50])
{
   int vald = ArraySize(val)-1;
   for(int l = vald; l > 0; l--)
   val[l] = val[l - 1];
   val[0] = 0;
}

void function3(int &arrays[50])
{
   int vald = ArraySize(arrays)-1;
   for(int l = vald; l > 0; l--) arrays[l] = arrays[l - 1];
   arrays[0] = 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM