首页 技术指标 帖子

UltraWPR指标:MetaTrader 5交易者的必备工具

附件
722.zip (20.68 KB, 下载 0次)

真实作者:

dm34@mail.ru

UltraWPR指标是基于WPR(拉里·威廉姆斯百分比区间,%)的多重信号线分析。信号线的计算算法如下,我们有指标输入参数作为源数据:

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

信号线的任何周期值都是通过算术级数计算得出的:

SignalPeriod(Number)  =  StartLength +  Number * Step,

其中,Number变量的值范围从零到StepsTotal。获得的周期值会被添加到变量数组中,并在每次指标反应时使用,以获取平滑后的拉里·威廉姆斯百分比区间指标值。每个平滑值的当前趋势方向都会被计算,整个WPR平滑值数组的正负趋势数量也会被确定。最终的正负趋势数量会进行平滑处理,并用作形成通过DRAW_FILLING样式类展示的颜色云的指标线。

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

可选择的平滑算法有十种版本:

  1. SMA - 简单移动平均;
  2. EMA - 指数移动平均;
  3. SMMA - 平滑移动平均;
  4. LWMA - 线性加权移动平均;
  5. JJMA - JMA自适应平均;
  6. JurX - 超线性平滑;
  7. ParMA - 抛物线平滑;
  8. T3 - 提尔森的多重指数平滑;
  9. VIDYA - 使用Tushar Chande算法的平滑;
  10. AMA - 使用Perry Kaufman算法的平滑。

需要注意的是,Phase1和Phase2参数在不同的平滑算法中有着完全不同的含义。对于JMA而言,它是一个外部Phase变量,变化范围为-100到+100。对于T3,它是一个平滑比例,乘以100以便于可视化;对于VIDYA,它是一个CMO振荡器周期,而对于AMA,它是一个慢EMA周期。在其他算法中,这些参数不会影响平滑。对于AMA,快速EMA周期是固定值,默认为2。提升的指数也同样等于2。

该指标使用SmoothAlgorithms.mqh库类(必须复制到terminal_data_folder\MQL5\Include)。关于类的使用,已在文章“在不使用额外缓冲区的情况下对价格系列进行平均计算”中进行了详细描述。

将UltraWPR指标的编译文件放置到terminal_data_folder\MQL5\Indicators\中。

指标输入参数:

//+----------------------------------------------+
//| 指标输入参数                   |
//+----------------------------------------------+
input int WPR_Period=13;                    // WPR指标周期
//----
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 uint UpLevel=80;                      // 超买水平, %
input uint DnLevel=20;                      // 超卖水平, %
input color UpLevelsColor=Blue;             // 超买水平颜色
input color DnLevelsColor=Blue;             // 超卖水平颜色
input STYLE Levelstyle=DASH_;              // 水平样式
input WIDTH  LevelsWidth=Width_1;          // 水平宽度

UltraWPR

相关帖子

评论 (0)