Hilbert 相量(HilbertPhasor)

增量式、因果技术分析文档

摘要

HilbertPhasor 是 RTTA 对 Hilbert 同相分量与正交分量的流式实现,移植自 TA-Lib HT_PHASOR。二者共同构成经过去趋势和平滑处理的价格复解析信号,供主导周期估计器内部使用。

更新 API

result = rtta.HilbertPhasor(fillna=True).update(value)
参数 默认值 含义
fillna True 若为 False,超过 32 个样本的回看期之前返回 NaN

update(...) 返回的结果包含:

advance(value) 更新状态;last() 返回缓存的结果。

工作原理

Hilbert 变换会为实信号生成一个相移 \(90^\circ\) 的伴随信号。Ehlers / TA-Lib 先对价格的 4 根 K 线 WMA 应用短 FIR 风格的 Hilbert 算子(即去趋势器),再取:

复数对 \((I,Q)\) 被送入估计主导周期的零差鉴频器。绘制 \(I\) 对 \(Q\) 的图形,可以得到局部周期的相量图。

递推公式

前端与其他 Hilbert 指标共用(参见 HilbertDominantCyclePeriod):

\[S_t = \frac{4 x_t + 3 x_{t-1} + 2 x_{t-2} + x_{t-3}}{10}\]
\[\lambda_t = 0.075\, P_{t-1} + 0.54\]

令 \(D_t\) 为 \(S_t\) 经自适应 Hilbert 去趋势器处理后的结果,\(Q1_t\) 为 \(D_t\) 的自适应 Hilbert 变换。K 线奇偶性决定交替使用的滤波器组:

\[I_t = D_{t-3}^{\text{(奇偶路径)}},\qquad Q_t = Q1_t\]

每次更新后,代码中的输出为:

\[\texttt{inphase} = I_t,\qquad \texttt{quadrature} = Q_t\]

fillna=False 时,在处理超过 32 个样本之前,两个字段均为 NaN。

实现说明

参考资料