动量震荡指标(Awesome Oscillator, AO)是一种用于衡量市场动量的技术分析指标。它是由美国著名交易员和分析师Bill Williams创建的。AO指标主要目的是确定市场动量的变化以及当前市场是处于看涨还是看跌趋势。Awesome Oscillator是基于两个简单移动平均线之间的差异计算的。
AO指标是MT4自带的技术指标之一,在mt4上方菜单栏依次点击-插入-技术指标-比尔·威廉姆-Awesome Oscillator,点“确定”即可将AO插入到当前图表中。如下图所示:
在MT4平台上,要获取Awesome Oscillator指标数据,可以使用iAO()函数。
iAO()函数的结构如下:
double iAO(
string symbol, // 交易品种名称
int timeframe // 图表时间周期
int shift // 指标索引/序号
);
其中参数说明:
- symbol,交易品种名称,当前窗口货币对为Symbol(),要自行定义参数,可以参考input string symname = “XAUUSD”;
- timeframe,图表周期,指一分钟M1到月线MN1共9个图表周期。要自行定义参数,可以参考用int或者ENUM_TIMEFRAMES,如:input ENUM_TIMEFRAMES Period_x = PERIOD_CURRENT; 0和PERIOD_CURRENT都代表当前图表周期。
- shift,获取对应指标线的索引/序号,0指当前最新K线所对应的值,然后从右往左分别是1、2、3、4…,这种规则排序。
获取当前图表中从右侧开始第二个K线,也就是1号K线对应的AO曲线值,参考代码:
double AO_1 = iAO(Symbol(), 0, 1);//Awesome Oscillator
跨图表获取黄金XAUUSD一小时H1图表中最新0号K线对应的AO曲线值,参考代码:
double XAUUSDAO_0 = iAO("XAUUSD", PERIOD_H1, 0);//Awesome Oscillator
如果要获取多个单位的AO指标的值,可以定义数组并结合for()循环来编写。总的来说,Awesome Oscillator指标的编程不是很复杂,实际外汇EA编程开发中根据需要演变iAO()函数的参数即可。