首页 技术指标 帖子

UltraXMA:MetaTrader 5中的强大趋势指标

附件
730.zip (20.86 KB, 下载 0次)

UltraXMA指标基于类似移动平均线的趋势综合值,通过算术级数平滑周期来计算。这是一个非常适合交易者的实用工具。

该指标的移动平均计算算法如下。我们有几个输入参数作为源数据:

  • StartLength - 第一个信号线的最小初始值;
  • Step - 周期变化步长;
  • StepsTotal - 周期变化的总数。

从线性扇形中计算的任何周期值使用算术级数:

XMAPeriod(Number) = StartLength + Number*Step

其中Number变量的值范围从零到StepsTotal。获得的周期值被添加到变量数组中,并在每次指标更新时用于获取XMA移动平均线扇形值。每个平滑的趋势方向都被计算出来,同时也计算出整个移动平均线扇形值的正负趋势数量。最后的正负趋势数量经过平滑后,形成了指标线,显示为通过 DRAW_FILLING 样式类绘制的颜色云。

在这个指标中,趋势方向由云的颜色决定,而其强度由云的宽度决定。你可以使用超买(UpLevel)和超卖(DnLevel)水平,这些水平是从指标最大幅度的百分比值设置的。

可以选择十种不同的平滑算法:

  1. SMA - 简单移动平均;
  2. EMA - 指数移动平均;
  3. SMMA - 平滑移动平均;
  4. LWMA - 线性加权移动平均;
  5. JJMA - JMA自适应平均;
  6. JurX - 超线性平滑;
  7. ParMA - 抛物线平滑;
  8. T3 - Tillson的多重指数平滑;
  9. VIDYA - 使用Tushar Chande算法的平滑;
  10. 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)。该类的使用在文章中有详细说明:“在不使用额外缓冲区的情况下对价格系列进行平均计算”

指标输入参数:

//+----------------------------------------------+
//| 指标输入参数                  |
//+----------------------------------------------+
input ENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // 应用价格
//----
input Smooth_Method W_Method=MODE_JJMA;     // 平滑方法
input int StartLength=3;                    // 初始平滑周期                    
input int WPhase=100;                       // 平滑参数
//----  
input uint Step=5;                          // 周期变化步长
input uint StepsTotal=10;                   // 周期变化的总数
//----
input Smooth_Method SmoothMethod=MODE_JJMA; // 平滑方法
input int SmoothLength=3;                   // 平滑深度                    
input int SmoothPhase=100;                  // 平滑参数
input Applied_price_ IPC=PRICE_CLOSE;       // 应用价格
//----                          
input uint UpLevel=80;                      // 超买水平
input uint DnLevel=20;                      // 超卖水平
input color UpLevelsColor=Red;              // 超买水平颜色
input color DnLevelsColor=Red;              // 超卖水平颜色
input STYLE Levelstyle=DASH_;               // 水平样式
input WIDTH  LevelsWidth=Width_1;           // 水平宽度        

UltraXMA

相关帖子

评论 (0)