首页 / 交易学院 / 小布知识库 / William Blau 指标系统:动量、TSI、Ergodic 与 MQL5 实现
William Blau 指标系统:动量、TSI、Ergodic 与 MQL5 实现
📈

William Blau 指标系统:动量、TSI、Ergodic 与 MQL5 实现

交易策略 难度 · 高阶 2013 15 分钟阅读
William BlauTSIErgodic

一、William Blau 指标系统的背景

William Blau 提出用“双重指数平滑(double smoothing)”处理价格的变化量,而非直接平滑价格本身,从而得到对动量更敏感、噪声更低的指标。其中最有名的是 TSI(True Strength Index,真实强弱指数),以及 Ergodic 系列(把双平滑思路套用到 Tick Volume、RSI、MACD 等)。核心思想一致:先取价格变化 d,再对 d 做两次 EMA 平滑,滤掉短期噪声、保留趋势方向。

二、TSI 的计算步骤与公式

标准 TSI 分四步,设第一次平滑周期为 r(典型 25),第二次为 s(典型 13):

三、MQL5 实现:双平滑函数

可用 iMA 句柄取 EMA,但更干净的是写一个 double-smoothing 函数,内部用 EMA 递推(只需前一值),避免多次 CopyBuffer:

// 双平滑:先对序列做 EMA(r),再对结果做 EMA(s)
double DoubleSmooth(double value, double &state1[], double &state2[], int r, int s, int bar)
  {
   // state1 存第一次平滑结果,state2 存第二次
   double a1 = 2.0/(r+1);
   state1[bar] = a1*value + (1-a1)*state1[bar-1];
   double a2 = 2.0/(s+1);
   state2[bar] = a2*state1[bar] + (1-a2)*state2[bar-1];
   return state2[bar];
  }

// OnCalculate 中
double d = close[bar] - close[bar-1];
double num = DoubleSmooth(d,   s1, s2, R, S, bar);
double den = DoubleSmooth(MathAbs(d), s1a, s2a, R, S, bar);
TSI[bar] = (den!=0) ? num/den*100 : 0;

四、Ergodic 系列与信号解读

Ergodic 指标(如 Ergodic Tick Volume Index、Ergodic RSI)只是把“双平滑”套到不同输入上:对 TVI 输入用 tick volume 的变化,对 Ergodic RSI 输入用 RSI 的变化,算法骨架完全一样。TSI 本身的信号:上穿 0 线看多、下穿 0 线看空;与一条信号线(TSI 再做一次短 EMA,如 7 或 25)交叉产生买卖点;TSI 与价格出现背离预示趋势衰竭。

五、参数与优缺点

✦ 怎么用最稳
典型参数 r=25、s=13、信号线 7~25。优点:双平滑把随机噪声压得很低,TSI 在 0 附近震荡、穿越干净,比单平滑 RSI 更平滑、更少假信号;能同时反映动量与方向。缺点:本质是滞后指标,双平滑让它比价格慢两拍,拐点处会慢半拍;参数(尤其两次平滑周期)需针对品种/周期优化,过长则过于迟钝。

六、TSI 公式:双指数平滑的动量

William Blau 的 TSI(真实强度指数)核心是对「价格动量」做两次指数平滑:先算每根的价格差(动量),再对动量做 EMA、对结果再做一次 EMA,最后除以对应的双平滑绝对动量做归一,得到 -100 到 100 的区间指标。

双平滑把噪音压得很干净,TSI 比裸动量线平滑得多,信号更可信;代价是滞后比单平滑更大,适合趋势确认而非抢拐点。

七、用 TSI 判背离与趋势

TSI 经典用法:上穿零轴看多、下穿看空;更稳的是看背离——价格新高但 TSI 不新高,提示动能衰竭。因为 TSI 已归一,背离的「高度差」可直接比较,不用像 RSI 那样猜超买超卖。

double mtm = close[0]-close[1];
double ema1 = EMA(mtm, r);
double ema2 = EMA(ema1, s);
double tsi = 100 * ema2 / EMA(EMA(Abs(mtm),r),s);
✦ 双平滑换干净
TSI 两次 EMA 把噪音压净,信号可信但滞后。用背离比裸穿越更稳,因为它已归一、高度差可比。

八、参数调校

TSI 默认 r=25、s=13(长周期),短线可缩短。调参看「信号噪声比」:太灵敏满屏假穿越,太迟钝漏掉真反转。配合价格结构(如通道突破)过滤,比单看 TSI 穿越可靠。

回测时 TSI 参数要和持仓周期匹配:日内用短参数、波段用长参数,别一套参数打天下。

九、小结

✦ 小结
TSI 对价格动量做两次 EMA 平滑再归一,得到 -100 到 100 的干净动能指标:上穿零轴看多、背离提示衰竭。双平滑换来了低噪音但更大滞后,适合趋势确认。参数 r/s 要匹配持仓周期,配合价格结构过滤更稳。

常见问题

RSI 直接对价格变化做平滑后算相对强弱;TSI 先取价格变化 d,再对 d 做两次 EMA 平滑再相除。双平滑让 TSI 噪声更低、在 0 轴附近震荡更对称,穿越信号比 RSI 更干净,但代价是更滞后。
因为 TSI 衡量的是“动量相对于动量自身波动的强度”。分母用 |d| 的双平滑,相当于把动量标准化:当市场波动大时分母也大,TSI 不会被大波动撑爆;波动小时分母小,小动量也能灵敏反映。这样 TSI 在不同波动环境下都落在可比的 −100~+100 区间。
短信号线(如 7)对转折更敏感但假信号多,长信号线(如 25)更稳但更慢。常见做法是用 7 做短线、25 做波段确认。实战建议先用 25/13/7 这组经典参数回测,再按你的交易周期微调第二次平滑 s 与信号线。