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

平均趋向指数(ADX)编程数据的获取

平均趋向指数(ADX)是一种用于衡量市场趋势强度的技术分析指标。它是由美国技术分析师J. Welles Wilder于1978年创立的。ADX的主要目的是确定市场趋势是否在加强或减弱,以及当前市场是否处于趋势或范围内交易。ADX指标包括三条曲线:ADX、+DI(正向指示器)和-DI(负向指示器)。

ADX指标是MT4自带的技术指标之一,在mt4上方菜单栏依次点击-插入-技术指标-趋势指标-Average Directional Movement Index,在出来指标属性框中设置好相关参数后,点“确定”即可将AD插入到当前图表中。如下图所示:

ADX指标

在MT4平台上,要获取ADX指标数据,可以使用iADX()函数。

iADX()函数的结构如下:

double iADX(
string symbol, // 交易品种名称 
int timeframe, // 图表时间周期 
int period, // 指标计算的平均周期值 
int applied_price, // 价格应用 
int mode, // 模式(MODE_MAIN, MODE_PLUSDI, MODE_MINUSDI),也就是获取哪根线 
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 都代表当前图表周期。
  • period,指标计算的平均周期值参数,默认 14,要自行定义参数,用 int 就可以,如 input int adx_period = 14;。
  • applied_price,价格类型,指收盘价、最高价、最低价等。默认用的是 PRICE_TYPICAL,如果需要自行定义,可以用 int 或 ENUM_APPLIED_PRICE 来定义参数,如:input ENUM_APPLIED_PRICE APP_PRICE = PRICE_TYPICAL;之类。
  • mode,获取指标线的类型,有 MODE_MAIN(ADX曲线)、MODE_PLUSDI(+DI曲线)、MODE_MINUSDI(-DI曲线)。
  • shift,获取对应指标线的索引/序号,0指当前最新 K 线所对应的值,然后从右往左分别是 1、2、3、4…,这种规则排序。

获取当前图表中从右侧开始第二个 K 线,也就是 1 号 K 线对应的 ADX 、+DI 、-DI 曲线值,参考代码:

double ADX_1 = iADX(Symbol(), 0, 14, PRICE_TYPICAL, MODE_MAIN, 1);//ADX 
double PlusDI_1 = iADX(Symbol(), 0, 14, PRICE_TYPICAL, MODE_PLUSDI, 1);//+DI
double MinusDI_1 = iADX(Symbol(), 0, 14, PRICE_TYPICAL, MODE_MINUSDI, 1);//-DI

跨图表获取黄金 XAUUSD 一小时 H1 图表中最新 0 号 K 线对应的 ADX 、+DI 、-DI 曲线值,参考代码:

double XAUUSDADX_0 = iADX("XAUUSD", PERIOD_H1, 14, PRICE_TYPICAL, MODE_MAIN, 0);//ADX
double XAUUSDPlusDI_0 = iADX("XAUUSD", PERIOD_H1, 14, PRICE_TYPICAL, MODE_PLUSDI, 0);//+DI
double XAUUSDMinusDI_0 = iADX("XAUUSD", PERIOD_H1, 14, PRICE_TYPICAL, MODE_MINUSDI, 0);//-DI

如果要获取多个单位的 ADX、+DI 和 -DI 指标的值,可以定义数组并结合 for() 循环来编写。总的来说,ADX 指标的编程不是很复杂,实际外汇ea编程开发中根据需要演变 iADX() 函数的参数即可。

未经允许不得转载:ea编程网 » 平均趋向指数(ADX)编程数据的获取