为了判断趋势的稳定性,J. Welles Wilder开发了平均方向指数(ADX)。
ADX可以帮助我们分析市场趋势并做出交易决策,尤其是在外汇市场中。
不过,传统的ADX指标在视觉上并不够友好,使用起来有些不便。
为了解决这个问题,开发了ColorXADX.mq5指标代码,该指标通过DRAW_FILLING样式显示+DI和-DI线,颜色会根据当前趋势方向变化,云的宽度也与趋势强度成正比。ADX线则以点状形式展示,颜色取决于这些点相对于设定值的趋势强度。
这个指标采用了通用的平滑处理方法,支持多种平均线选择,具体包括:
- SMA - 简单移动平均线;
- EMA - 指数移动平均线;
- SMMA - 平滑移动平均线;
- LWMA - 线性加权移动平均线;
- JJMA - JMA自适应平均线;
- JurX - 超线性平滑;
- ParMA - 抛物线平滑;
- T3 - Tillson多重指数平滑;
- VIDYA - 使用Tushar Chande算法的平滑;
- AMA - 使用Perry Kaufman算法的平滑。
需要注意的是,Phase参数在不同的平滑算法中含义各异。
- 对于JMA,它是一个外部Phase变量,范围从-100到+100。
- 对于T3,它是一个平滑比例,为了更好可视化乘以100;
- 对于VIDYA,它是CMO周期,对于AMA则是慢EMA周期;
- 对于AMA,快速EMA周期是固定值,默认为2,提升的比例也是2。
该指标使用SmoothAlgorithms.mqh库类(需复制到terminal_data_folder\MQL5\Include)。使用这些类的详细说明可参阅文章“无需使用额外缓冲区对价格序列进行中间计算的平均化”。

ColorXADX指标输入参数:
//+----------------------------------------------+ //| 指标输入参数 | //+----------------------------------------------+ input Smooth_Method XMA_Method=MODE_T3; // Histogram平滑方法 input int ADX_Period =14; // XMA平滑周期 input int ADX_Phase=100; // XMA平滑周期 [-100...+100] input Applied_price_ IPC=PRICE_CLOSE_; // 应用价格 input int Shift=0; // 指标在柱子上的水平偏移 input int ExtraHighLevel=60; // 最大趋势水平 input int HighLevel=40; // 强趋势水平 input int LowLevel=20; // 弱趋势水平 input ENUM_LINE_STYLE LevelStyle=STYLE_DASHDOTDOT; // 水平线样式 input color LevelColor=Blue; // 水平线颜色 input ENUM_WIDTH LevelWidth=w_1; // 水平线宽度
评论 0