诚信为本
量力而为
当前位置:ea编程网 EA知识 正文

均线MA编程数据的获取

均线是指移动平均线,MA 是 Moving average 的缩写,是采用统计学中“移动平均”的原理,将市场一段时期内的价格平均值连成的一条曲线。

均线是MT4自带的技术指标之一,在MT4上方菜单栏依次点击-插入-技术指标-趋势指标-Moving average,并在出来的指标属性框中设置好时间周期、移动平均、应用于及线的颜色、粗线等参数后,点“确定”即可将均线插入到当前图表中,需要多根均线的话,重复插入不同参数的均线就可以。如下图所示:

MT4插入移动平均线Moving average 说明

移动平均线在很多智能交易EA策略中都有运用,要在EA中调用均线,首先是要获取它相关的数值,均线数值用iMA()函数获取,iMA()函数结构:

double  iMA( 
   string       symbol,           // 品种/货币对名称
   int          timeframe,        // 图表周期 
   int          ma_period,        // 均线时间周期 
   int          ma_shift,         // 平移 
   int          ma_method,        // 平均类型 
   int          applied_price,    // 价格应用 
   int          shift             // 值的序号/索引 
   );

iMA()函数各参数说明:

  • symbol,字符串类型,交易品种名称,当前窗口货币对用 Symbol(),如果要定义参数,可以用 input string symname = “XAUUSD “; 之类。
  • timeframe,图表周期,在MT4上面指一分钟M1到月线MN1共9个图表周期。如果要单独定义参数,可以用 int 或者 ENUM_TIMEFRAMES,如:input ENUM_TIMEFRAMES Period_x = PERIOD_CURRENT; 0 和 PERIOD_CURRENT 都代表当前图表时间。
  • ma_period,均线时间周期参数,也就是计算移动平均数的平均周期。int 类型,定义参数可以用 input int ma_Period = 10;之类。
  • ma_shift,平移参数,不常用到,是指与价格图表有关的指标变化。
  • applied_price,是指均线的平滑类型,如 SMA、EAM等,可以用 int 或 ENUM_MA_METHOD定义参数,如:input ENUM_MA_METHOD ma_Method = MODE_SMA;之类。
  • applied_price,价格类型,指收盘价、最高价、最低价等。可以用 int 或ENUM_APPLIED_PRICE 来定义参数,如:input ENUM_APPLIED_PRICE ma_Applied_Price = PRICE_CLOSE;之类。
  • shift,获取均线值的索引/序号,0指当前最新K线所对应的均线值,然后从右往左分别是1、2、3、4…..,这种规则排序。

获取当前图表中 10 SMA 的 0 和 1 两个单位的值参考代码:

  double ma10_0 = iMA(Symbol(),0, 10, 0, MODE_SMA, PRICE_CLOSE, 0);
  double ma10_1 = iMA(Symbol(),0, 10, 0, MODE_SMA, PRICE_CLOSE, 1);

跨图表获取欧元兑美元EURUSD一小时图表中 100 EMA 的 0 和 1 两个单位的值参考代码:

double EURma100_0 = iMA("EURUSD",PERIOD_H1, 100, 0, MODE_EMA, PRICE_CLOSE, 0);
double EURma100_1 = iMA("EURUSD",PERIOD_H1, 100, 0, MODE_EMA, PRICE_CLOSE, 1);

当然,如果要在EA中获取更多单位的均线MA指标的数值,可以定义数组并结合for()循环语句来执行。有了均线的数值后,就可以根据比较数值的大小来定义均线上升、下降及多根均线的金叉死叉了。

未经允许不得转载:ea编程网 » 均线MA编程数据的获取