下载MetaTrader 5

获取均线的值

要添加评论,请登录注册
chunhua Zhao
654
chunhua Zhao  

   在编写自定义指标时,如果不想利用CopyBuffer()函数操作iMA()的句柄,而是想只获取某K线上的均线值,该如何操作?

   例如:当前货币对 当前时间表  平均周期MA_Priod=N   求某柱上加权移动平均线的值 bar[i]=?   (ema)

   如果利用  MQL5的一个库文件<MovingAverages.mqh>    调用EMA函数  :double ExponentialMA(const int position,const int period,const double prev_value,const double &price[]) 是否可行? 该如何调用?请热心朋友帮忙解说,尤其是其中的

参数 const double prev_value  即上期均线的值  该如何传递?

     我试着如此写代码: myEMA[i]=ExponentialMA(i,N,NULL,close)  但不成功,其中close是指标中的收盘数组,已设置时间序列,我把Prev_value 这个参数 用NULL代替了,不成功。

    难道要自己编写一个循环?或 EMA()函数?   如果是,该怎么编写?  望同好帮忙,不胜感谢!

 

  之所以不拷贝数组,是因为平均周期N 的数值不固定。 

Documentation on MQL5: Math Functions / MathExp
Documentation on MQL5: Math Functions / MathExp
  • www.mql5.com
Math Functions / MathExp - Documentation on MQL5
enbo lu
版主
1950
enbo lu  

那你可以将平均周期N设置成输入参数啊。

double ExponentialMA(const int position,const int period,const double prev_value,const double &price[])
  {
//---
   double result=0.0;
//--- calculate value
   if(period>0)
     {
      double pr=2.0/(period+1.0);
      result=price[position]*pr+prev_value*(1-pr);
     }
//---
   return(result);
  }

 调用这个函数一样要定义平均周期啊

chunhua Zhao
654
chunhua Zhao  
已解。在调用ExponentialMA()函数时, 可加一个N周期的循环进行  嵌套赋值  
Documentation on MQL5: Math Functions / MathExp
Documentation on MQL5: Math Functions / MathExp
  • www.mql5.com
Math Functions / MathExp - Documentation on MQL5
要添加评论,请登录注册