添加的AMA值与图表值不一致

 

问题:我在EA里添加AMA指标时,相同参数的情况下,EA里的AMA值与图表里添加的AMA指标值不一致


EA源码:

input int ama_period=9;

input int fast_ma_period=2;

input int slow_ma_period=26;

input ENUM_APPLIED_PRICE appliedPrice=PRICE_CLOSE;


int amaHandle=0;

int OnInit()

  {

   amaHandle=iAMA("XAUUSD",PERIOD_M5,ama_period,fast_ma_period,slow_ma_period,0,appliedPrice);

   return(INIT_SUCCEEDED);

  }

void OnDeinit(const int reason)

  {

   IndicatorRelease(amaHandle);

  }

void OnTick()

  {

   int indC=26;

   double amaBuf[];

   ArraySetAsSeries(amaBuf,true);

   ArrayResize(amaBuf,indC);

   CopyBuffer(amaHandle,0,0,indC,amaBuf);

   Print("bar1: ",amaBuf[1]," bar2: ",amaBuf[2]);

  }

//打印当前K线前两根K线对应的AMA值,分别为 amaBuf[1]、 amaBuf[2]


测试结果:

2021.03.26 19:58:20   bar1: 1732.523473086575 bar2: 1732.689702720487

图表中实际值:“Time: 2021.03.26 19:55:00  values:1732.472”,前一根K线的AMA[1]的值:1372.549,再前一根K线 AMA[2] 的值:1732.724


注意:经过观察,图表中的AMA指标值在K线收盘后不再发生变化


图表参数如附图



附加的文件:
 
jianqing30:

问题:我在EA里添加AMA指标时,相同参数的情况下,EA里的AMA值与图表里添加的AMA指标值不一致


EA源码:

input int ama_period=9;

input int fast_ma_period=2;

input int slow_ma_period=26;

input ENUM_APPLIED_PRICE appliedPrice=PRICE_CLOSE;


int amaHandle=0;

int OnInit()

  {

   amaHandle=iAMA("XAUUSD",PERIOD_M5,ama_period,fast_ma_period,slow_ma_period,0,appliedPrice);

   return(INIT_SUCCEEDED);

  }

void OnDeinit(const int reason)

  {

   IndicatorRelease(amaHandle);

  }

void OnTick()

  {

   int indC=26;

   double amaBuf[];

   ArraySetAsSeries(amaBuf,true);

   ArrayResize(amaBuf,indC);

   CopyBuffer(amaHandle,0,0,indC,amaBuf);

   Print("bar1: ",amaBuf[1]," bar2: ",amaBuf[2]);

  }

//打印当前K线前两根K线对应的AMA值,分别为 amaBuf[1]、 amaBuf[2]


测试结果:

2021.03.26 19:58:20   bar1: 1732.523473086575 bar2: 1732.689702720487

图表中实际值:“Time: 2021.03.26 19:55:00  values:1732.472”,前一根K线的AMA[1]的值:1372.549,再前一根K线 AMA[2] 的值:1732.724


注意:经过观察,图表中的AMA指标值在K线收盘后不再发生变化


图表参数如附图



有人吗?

 
jianqing30:

有人吗?

怎么又有人提出关于AMA指标的问题了?我一探究竟,用你的代码现编一个EA测试了一下。并没有什么毛病,数值很正常啊。