MetaTrader 5 / 指标

UltraMFI - MetaTrader 5脚本

1275
(10)

真实作者: Dmitriy

该指标基于 MFI(资金流量指数) 及其多信号线分析。 信号线计算算法如下。 我们的指标输入参数作为源数据:

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

使用算术级数计算来自多个信号线的任何周期值:

SignalPeriod(Number) = StartLength + Number * Step,

其中 Number 变量值范围从零至 StepsTotal。 获得的期间值将添加到变量数组中,并在每个指标的逐笔报价时使用,以获得平滑的拉里·威廉姆斯百分比范围指标值数组。 计算每个平滑的当前趋势方向,并且还判断整个 MFI 平滑值数组的正/负趋势的数量。

正/负趋势的最终数量依次平滑,并在 DRAW_FILLING 样式类的帮助下形成颜色云状指示线。

该指标中的趋势方向由云的颜色确定,而其推动力由云的宽度确定。 您可以使用超买(UpLevel)和超卖(DnLevel)级别,其值设置为指标最大范围百分比值。

可以从十种可能的版本中选择平滑算法:

  1. SMA - 简单移动平均线;
  2. EMA - 指数移动平均线;
  3. SMMA - 平滑移动平均线;
  4. LWMA - 线性加权移动平均线;
  5. JJMA - JMA 适应性平均;
  6. JJurX - 超线性平均线;
  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。 对于 AMA,增长与推动力的比率也等于 2。

该指标使用 SmoothAlgorithms.mqh 库类(将其复制到 <终端_数据_文件夹>\MQL5\Include)。 在文章“无需附加缓冲区计算中间平均价格序列”中详细描述了类的使用。

//+----------------------------------------------+ //| 指标输入参数                             | //+----------------------------------------------+ input int MFI_Period=13;                            // MFI 指标周期 input ENUM_APPLIED_VOLUME VolumeType=VOLUME_TICK;   // MFI 指标交易量 //---- input Smooth_Method W_Method=MODE_JJMA; // 平滑方法 input int StartLength=3;                // 初始均化周期 input int WPhase=100;                   // 平滑参数 // 对于 JJMA 它在 -100 ... +100 间变化,且影响过渡计算品质; // 对于 VIDIA, 它是 CMO 周期, 对于 AMA, 它是慢速均线周期 //----   input uint Step=5;        // 周期的变化步幅 input uint StepsTotal=10; // 周期变化数量 //---- input Smooth_Method SmoothMethod=MODE_JJMA; // 平滑方法 input int SmoothLength=3;                   // 平滑深度 input int SmoothPhase=100;                  // 平滑参数 // 对于 JJMA 它在 -100 ... +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; // 级别宽度 //+----------------------------------------------+ 

图例 1. UltraMFI 指标

图例 1. UltraMFI 指标

由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/21750