首页 技术指标 帖子

UltraRSI - MetaTrader 5 的强大指标

附件
725.zip (20.73 KB, 下载 0次)

真实作者:

dm34@mail.ru

UltraRSI 指标是基于 相对强弱指数 (RSI) 的多重信号线分析。其信号线计算算法如下,我们有以下指标输入参数作为来源数据:

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

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

SignalPeriod(Number)  =  StartLength + Number * Step,

其中 Number 变量的取值范围从零到 StepsTotal。获得的周期值被添加到变量数组中,并在每次指标更新时用于获取平滑的 RSI 指标值数组。针对每个平滑值的当前趋势方向被计算,同时还会确定整个 RSI 平滑值数组中正向和负向趋势的数量。最终的正向和负向趋势数值也会进行平滑处理,并作为指标线形成一个颜色云,通过 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 算法的平滑。

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

该指标使用 SmoothAlgorithms.mqh 库类(必须复制到 terminal_data_folder\MQL5\Include)。库的使用在文章 "不使用额外缓冲区的情况下对价格序列进行平均计算" 中有详细讲解。

指标输入参数:

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

UltraRSI


相关帖子

评论 (0)