Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays MQL4:查找低值的问题_Arrays_Mql4_Metatrader4_Mt4 - Fatal编程技术网

Arrays MQL4:查找低值的问题

Arrays MQL4:查找低值的问题,arrays,mql4,metatrader4,mt4,Arrays,Mql4,Metatrader4,Mt4,我试图从最后的20巴得到最高和最低的值。我对获取最高值没有问题,但是我的代码似乎无法正常工作以获取最低值。只是想知道有没有什么建议 OnEveryNewBar1(); void OnEveryNewBar1() { PipValue = 1; if ( NDigits == 3 || NDigits == 5 ) PipValue = 10; if ( BarTime1 < Time[0] ) // we have a new bar opened {

我试图从最后的20巴得到最高和最低的值。我对获取最高值没有问题,但是我的代码似乎无法正常工作以获取最低值。只是想知道有没有什么建议

OnEveryNewBar1();

void OnEveryNewBar1()
{   PipValue = 1;
    if ( NDigits == 3 || NDigits == 5 ) PipValue = 10;
    if ( BarTime1 < Time[0] )  // we have a new bar opened
    {    BarTime1 = Time[0];   // keep the new bar open time
         TechnicalAnalysis_S();
         TechnicalAnalysis_L();
     }
}

void TechnicalAnalysis_S()
{
   int m =    2;
   int n =    3;
       l = 1000;
   while ( m <= 20 )
   {
      if ( 1 < 2 )
      {    if ( ( Close[2] > Open[2] ) || ( Close[1] > Open[1] ) ) int i = 2;
           while ( i > 0 )
           {
               if ( Low[i] < l ) l = Low[i];
               i = i - 1;
           }
           print ( "Lowest" + l );
           l = 1000;
      }
      m++;
      n++;
   }
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void TechnicalAnalysis_L()
{    
     int m = 2;
     int n = 3;
     while ( m <= 20 )
     {
         if ( 2 > 0 )
         {
              if ( ( Close[2] < Open[2] ) || ( Close[1] < Open[1] ) ) int i=2;
              while ( i > 0 )
              {
                  if ( High[i] > h ) h = High[i];
                  i = i - 1;
              }
              print ( "Highest" + h );
              h = 0;
         }
         m++;
         n++;
     }
}
OnEveryNewBar1();
void OnEveryNewBar1()
{PipValue=1;
如果(NDigits==3 | | NDigits==5)PipValue=10;
if(BarTime1Open[1])int i=2;
而(i>0)
{
如果(低[i]0)
{
如果(高[i]>h)h=高[i];
i=i-1;
}
打印(“最高”+h);
h=0;
}
m++;
n++;
}
}

虽然代码中有一些奇怪的部分,而一些变量缺少它们的声明,但该语言为此提供了内置函数

解决方案:
double   aLowestLOW_InTheLast20BARs,
       aHighestHIGH_InTheLast20BARs;
// -----------------------------------------------------------------------------    
   aLowestLOW_InTheLast20BARs =    Low[iLowest(  _Symbol,         // .self
                                                 PERIOD_CURRENT,  // .self
                                                 MODE_LOW,        // LOW
                                                 20,              // Last 20 BARs
                                                  0               // from [0]
                                                 )
                                       ];
// -----------------------------------------------------------------------------
   aHighestHIGH_InTheLast20BARs = High[iHighest( _Symbol,         // .self
                                                 PERIOD_CURRENT,  // .self
                                                 MODE_HIGH,       // HIGH
                                                 20,              // Last 20 BARs
                                                  0               // from [0]
                                                 )
                                       ];