成交额游程 K 线生成器(DollarRunBarGenerator)

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

摘要

DollarRunBarGenerator 实现固定阈值的成交额游程 K 线。它在当前 K 线内 分别累计买方与卖方名义成交额,占优一侧达到 threshold 时结束 K 线。

更新 API

ind = rtta.DollarRunBarGenerator(threshold=1.0e6)
result = ind.update(close, volume)
# result.bar_open, bar_close, bar_high, bar_low, bar_volume,
# result.direction, result.complete, result.bars

为保持与 InformationBarResult 的接口兼容,字段名仍为 bar_volume;在本 生成器中,它实际表示占优一侧的成交额。

工作原理

成交额游程 K 线把订单流方向与名义金额采样结合起来。它衡量持续积累的单边 资金流,而不是连续不间断的同号序列:相反方向的一笔成交只会增加另一侧的 累计值,不会丢弃任何一侧的历史,也不会重置 OHLC。RTTA 对经典占优侧统计量 使用固定阈值。

递推公式

用逐笔规则判定价格方向,平盘逐笔沿用最近的非零方向,并定义:

\[d_t=|c_t|\max(v_t,0).\]

对当前 K 线维护:

\[D_t^+=\sum d_i1_{\{b_i=+1\}},\qquad D_t^-=\sum d_i1_{\{b_i=-1\}},\qquad \theta_t=\max(D_t^+,D_t^-).\]

当 \(\theta_t\ge\texttt{threshold}\) 时结束 K 线;bar_volume 等于 \(\theta_t\),direction 表示占优一侧。未完成时仍报告当前的 \(\theta_t\),但方向为 0。OHLC 覆盖分配给该 K 线的每一笔价格。

完成后,双方成交额累计值与 OHLC 重置;上一价格和逐笔方向跨越边界保留。 第一个观测只用于初始化价格,不产生带方向的成交额贡献。

实现说明

递推过程在 src/rtta/indicator.cppclass DollarRunBarGenerator 中实现。 默认阈值为 \(10^6\)。

参考资料