均线是指移动平均线,MA 是 Moving average 的缩写,是采用统计学中“移动平均”的原理,将市场一段时期内的价格平均值连成的一条曲线。
均线是MT4自带的技术指标之一,在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()循环语句来执行。有了均线的数值后,就可以根据比较数值的大小来定义均线上升、下降及多根均线的金叉死叉了。