ArrayIsSeries 和ArrayGetAsSeries

 

一个自定义指标,代码如下:

#property  indicator_separate_window

#property  indicator_buffers 1

#property  indicator_color1  Silver

#property  indicator_width1  2

double     MacdBuffer[];

int init()

  {

   SetIndexStyle(0,DRAW_HISTOGRAM);

   SetIndexBuffer(0,MacdBuffer);

   return(0);

  }

int start()

  {

   int counted_bars=IndicatorCounted();

   if(counted_bars>0) counted_bars--;

   limit=Bars-counted_bars;

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

      MacdBuffer[i]=Open[i];

    if(ArrayGetAsSeries(MacdBuffer)==true)

        Print("macdbufertrue");

       if(ArrayIsSeries(MacdBuffer)==false)

        Print("macdbuferfalse"); 

   return(0);

  } 

输出结果:

 macdbufertrue

 macdbuferfalse

为什么自定义指标的数组很特殊, 2个结果居然不一样,不是序列居然可以象序列一样取数。 

 ArrayIsSeries 和ArrayGetAsSeries的区别是什么

 

看这里:https://www.mql5.com/en/forum/143844

不管怎样,在指标中都建议先用  ArraySetSeries 设置为逆序时间序列。

ArrayGetAsSeries - MQL4 Documentation
  • docs.mql4.com
ArrayGetAsSeries - MQL4 Documentation