【问题标题】:Array function use on strict mode数组函数在严格模式下的使用
【发布时间】:2021-04-11 00:10:28
【问题描述】:

我无法在 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 mql4 mql5


    【解决方案1】:

    数组从 0 开始,而不是 1。当使用 ArraySize 定义数组的计数时,您应该始终减去 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;
    }
    

    【讨论】:

    • 感谢您的反馈。我想这可以解决问题。
    • 如果能解决您的问题,请标记为已接受,谢谢
    猜你喜欢
    • 2014-07-24
    • 2013-10-08
    • 2016-11-20
    • 2012-05-27
    • 1970-01-01
    • 2016-12-31
    • 2018-08-17
    相关资源
    最近更新 更多