MT5指标里面K线数组好像有BUG

 

double         Label1Buffer[];             //ARROW  1                  

double         Label2Buffer[];             //ARROW  2

int OnCalculate(const int rates_total,

                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])

  {

for(int i=0;i<rates_total;i++)

{

if(open[i]<=close[i]&&open[i-1]>close[i-1] &&close[i-1]<open[i])

{

LabelaBuffer[i-1]=high[i-1]+20*_Point;

}

if(open[i]>=close[i]&&open[i-1]<close[i-1] &&close[i-1]>open[i])

{

Label2Buffer[]

}

}

}  

应该是当前k线为阴线,前一根k线为阳线,并且当前k线收盘价小于前一根k线的开盘价,会在k线上方20点出现一个ARROW箭头

和上面描述相反会在K线的下方20点出现箭头

结果出现的位置并不是这种想要的那种情况

检查过open[]、close[]、high[]、low[]数组,输出的值也是正确的

判断阴线吞噬阳线、阳线吞噬阴线的逻辑也是正确的,但是表现出来的结果完全不一样

原因: