MT4读取问题,请高手赐教,先谢了。

 
  bool  Overup, K_Overup;   
        if( iClose(NULL,60,0)>iHigh(NULL,60,1))
          { 
           for( int ki=3;ki<=100;ki++ )            
             {
              if( iClose(NULL,60,0) > High[iHighest(NULL,60, MODE_HIGH, ki,1)]  
                  && High[iHighest(NULL,60, MODE_HIGH,(ki-1), 1)] < iHigh(NULL,60, ki) +0.618*( iHigh(NULL,60, ki)-iLow(NULL,60, ki) ) 
                  && Low[iLowest(NULL,  60, MODE_LOW, (ki-1), 1)] > iLow(NULL, 60, ki)    
                ) 
                {             
                 Overup = true;
                 break;
                }
             }
          } 

        if(ki-1>=15 && Overup  )    K_Overup  = true;

在H1图标正确,切换到其他周期图标 ,比如在M5,居然是按M5周期的K线根数来读取的。错哪儿了呢?请高手们不吝赐教

 

在H1图表正确,切换到其他周期图表 ,比如在M5,居然是按M5周期图表的K线根数来读取的。错哪儿了呢?请高手们不吝赐教

 
xiaoqiang Wang:

在H1图表正确,切换到其他周期图表 ,比如在M5,居然是按M5周期图表的K线根数来读取的。错哪儿了呢?请高手们不吝赐教


把用到High[]的地方,都替换为iHigh(...)

Low[]也要替换为iLow(...)

因为Open[],High[],Low[],Close[]等系列数组都是当前图表的数据。

   bool  Overup=false,K_Overup=false;
   if(iClose(NULL,60,0)>iHigh(NULL,60,1))
     {
      for(int ki=3;ki<=100;ki++)
        {
         if(iClose(NULL,60,0)>iHigh(NULL,60,iHighest(NULL,60,MODE_HIGH,ki,1))
            && iHigh(NULL,60,iHighest(NULL,60,MODE_HIGH,(ki-1),1))<iHigh(NULL,60,ki)+0.618*(iHigh(NULL,60,ki)-iLow(NULL,60,ki))
            && iLow(NULL,60,iLowest(NULL,60,MODE_LOW,(ki-1),1))>iLow(NULL,60,ki)
            )
           {
            Overup=true;
            break;
           }
        }
     }
 
Ziheng Zhuang:


把用到High[]的地方,都替换为iHigh(...)

Low[]也要替换为iLow(...)

因为Open[],High[],Low[],Close[]等系列数组都是当前图表的数据。


谢谢

原因: