请问下如何使用iMA()计算某根线的10日移动平均

 

我先画了根线,这根线是5日最高价

然后我需要再画一根,这个5日最高价的10日指数移动平均线,请问怎么画。

我发现iMA的最后一个参数,填写上我计算的5日最高价,是不能用的

 

移动平均线是根据一定根数蜡烛的OHLC价格计算得出的。

 

iMA最後一個參數是用來設定K線的位置

建議你看一下幫助文件 確定一下你要的計算式該如何使用

 
Hung Wen Lin:

iMA最後一個參數是用來設定K線的位置

建議你看一下幫助文件 確定一下你要的計算式該如何使用

我意思是说,iMA只能计算K线的数据吗?  比如说,我有个数组,这个数组里有100个数据。我想用iMA求出这个数组的移动平均,有没有办法?
 

iMA只能算K线的数据。

如果计算你准备在数组中的数据,你可以参考MovingAverages.mqh中提供的算法,该文件位于Include文件夹。


//+------------------------------------------------------------------+
//|                                               MovingAverages.mqh |
//|                   Copyright 2009-2013, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
//+------------------------------------------------------------------+
//| Simple Moving Average                                            |
//+------------------------------------------------------------------+
double SimpleMA(const int position,const int period,const double &price[])
  {
//---
   double result=0.0;
//--- check position
   if(position>=period-1 && period>0)
     {
      //--- calculate value
      for(int i=0;i<period;i++) result+=price[position-i];
      result/=period;
     }
//---
   return(result);
  }
//+------------------------------------------------------------------+
//| Exponential Moving Average                                       |
//+------------------------------------------------------------------+
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);
  }
 
Ziheng Zhuang:

iMA只能算K线的数据。

如果计算你准备在数组中的数据,你可以参考MovingAverages.mqh中提供的算法,该文件位于Include文件夹。


明白了,谢谢啊。
原因: