美元 Bar 与信息驱动采样:让每根 K 线携带等量信息
成交量时钟修好了『活动度量』,但在价格翻 3 倍的市场里,同样 100 手在 20 元和 60 元时的经济含义差 3 倍——股数是名义单位,成交额才是经济单位。美元 Bar(每累计 N 元成交额切一根)是信息驱动采样家族对『时钟单位』的最终回答:对拆单免疫(tick 计数会通胀)、对送股拆股天然中性(股数时钟一夜漂移,美元时钟无感)、对价格水平自适应。1000 日受控模拟(价格 3 倍 + 活动增长 + 中段高波动区制)实测:前 100 天校准的固定阈值到末期,tick/成交量 Bar 日均根数从 6 漂到 13.4,美元 Bar 因价格与活动双重增长漂得更凶(27.7)——美元 Bar 对价格敏感是特性也是负担,必须配 EWMA 动态阈值:日常稳定在 6 根、高波动区制自动加密,把趋势性漂移滤掉、只保留『信息爆发时多采样』。统计性质上四种 bar 同场竞技:时间 Bar 峰度 3.52/JB 496/波动聚集显著,三种信息驱动 bar 全部归零——家族内差异远小于『家族 vs 时间时钟』。终点站是 Easley-O'Hara-de Prado 的洞见:美元时钟正是 VPIN 的运行时钟,采样方式与知情交易度量共享同一个世界观。A 股落地注记:手数=100 股恒定使成交量/成交额时钟高度相关,但跨长周期与跨价格档比较时美元 Bar 仍占优(中高阶)。
一句话版本#
在价格翻了 3 倍的市场里,「每 100 万手切一根 K 线」的时钟本身在贬值——同样的股数代表的经济规模变了 3 倍。美元 Bar 把时钟单位从「股数」换成「成交额」,让每根 bar 对应大致等量的经济活动,这是信息驱动采样家族里对时间跨度最稳健的成员。
一、从成交量时钟说起:还差最后一步#
上一篇验证了成交量时钟的核心命题:按累计成交量切 bar,收益的肥尾和波动聚集大幅收敛,因为采样节奏跟上了信息到达的节奏。
但成交量时钟有个残留缺陷:股数是名义单位,不是经济单位。
考虑一只股票从 20 元涨到 60 元。100 手成交在 20 元时代表 20 万元的经济活动,在 60 元时代表 60 万元。如果「每根 bar 等量信息」的理想以经济规模衡量,固定股数阈值的 bar 在价格上涨后携带的信息量悄悄变成了原来的 3 倍——时钟本身在漂移。
除此之外,股数时钟还有两个离散性硬伤:
- 公司行为:10 送 10 之后流通股本翻倍,同样的经济活动对应两倍股数,股数阈值一夜之间语义减半。美元成交额对送转股完全无感;
- 跨标的不可比:贵州茅台一手 ≈ 17 万元,一只 3 元的小盘股一手 300 元。用统一的股数阈值跨标的建 bar 毫无意义,而「每 5000 万元成交额」在任何标的上语义一致。
于是信息驱动采样家族的完整谱系是:
| Bar 类型 | 时钟单位 | 主要弱点 |
|---|---|---|
| 时间 Bar | 日历秒 | 无视信息到达节奏(家族外的基准) |
| Tick Bar | 成交笔数 | 拆单 / 算法交易使计数通胀 |
| 成交量 Bar | 成交股数 | 价格漂移 + 送转股使经济语义漂移 |
| 美元 Bar | 成交金额 | 阈值需动态化(见第四节) |
López de Prado 在 AFML 里的排序很明确:美元 Bar 通常是「更有趣」的选择,理由正是上述稳健性阶梯。
二、实现:三行核心逻辑#
美元 Bar 的实现和成交量 Bar 只差一个乘法:
def dollar_bars(price, volume, bar_dollar):
"""每累计 bar_dollar 元成交额,切一根 bar"""
closes, cum = [], 0.0
for i in range(len(price)):
cum += volume[i] * price[i] # 唯一区别:股数 → 金额
if cum >= bar_dollar:
closes.append(price[i])
cum = 0.0
return np.array(closes)python生产级实现会同时记录 OHLC、VWAP、买卖失衡等 bar 内统计,并用向量化的 cumsum + searchsorted 代替循环,但逻辑内核就这三行。阈值的初始定标同样简单:目标每天 根,则 bar_dollar = 近期日均成交额 / k。
三、实验一:四种时钟同场竞技#
沿用上一篇的受控模拟(每笔收益 iid 正态、活动强度 AR(1) 持续 + 日内 U 型 + 随机爆发,120 日 21.6 万笔),这次把四种 bar 全部切出来、对齐数量(各约 950 根),比较三个统计量:

| 时间 Bar | Tick Bar | 成交量 Bar | 美元 Bar | |
|---|---|---|---|---|
| 超额峰度 | 3.52 | -0.06 | 0.04 | 0.02 |
| Jarque-Bera | 496 | 0 | 0 | 1 |
| 平方收益 ACF(1-10 阶均值) | 0.132 | -0.020 | -0.002 | -0.004 |
两个读法:
- 家族 vs 时间时钟的差异是悬崖式的。时间 Bar 独自扛着全部肥尾和波动聚集,三种信息驱动 bar 全部把收益还原成白噪声正态——采样时钟从「日历」换成「活动」这一步贡献了几乎全部收益;
- 家族内部在这个短窗口里几乎无差别。120 天内价格漂移有限、无拆单结构变化,三种活动时钟高度相关。美元 Bar 的优势不在这种短窗平稳环境里,而在长周期、大漂移、结构变化的环境里——这正是下一个实验。
四、实验二:长周期下的阈值漂移——美元 Bar 的特性与负担#
换一个 1000 交易日(约 4 年)的模拟:价格从 20 元涨到 50 元(约 3 倍,牛市成长股的常见轨迹),日均成交笔数线性增长 1.5 倍(市场扩容),中段插入一次 120 天的高波动区制。
用前 100 天的数据校准三种阈值,都定为「每天 6 根」,然后固定不动,看每日 bar 数如何漂移:

到模拟末期:
- Tick Bar / 成交量 Bar:日均 13.4 根——被活动增长推着漂了一倍多;
- 美元 Bar:日均 27.7 根——被「活动增长 × 价格上涨」双重推动,漂得最凶。
这个结果值得诚实地正视:美元 Bar 对价格水平的敏感是双刃剑。 它让 bar 的经济语义跨价格档一致(特性),也让固定阈值在趋势市里漂移得最快(负担)。「美元 Bar 更稳健」的教科书说法,指的是语义稳健(每根 bar 的经济含量),不是阈值免维护。
解法是动态阈值:用 EWMA 跟踪日均成交额,阈值 = EWMA / 目标根数,只用过去数据滚动更新:
# EWMA 动态阈值(span=50 日),严格只用截至昨日的数据
ewma[i] = alpha * daily_dollar[i-1] + (1 - alpha) * ewma[i-1]
threshold_today = ewma[i] / target_bars_per_daypython效果:

固定阈值的美元 Bar 随价格上涨持续加密(红线,纯漂移,不携带信息);EWMA 动态阈值的美元 Bar(蓝线)日常稳定在 6 根附近,只在高波动区制里短暂加密后被 EWMA 追上——把趋势性漂移滤掉,只保留「信息爆发时多采样」这个真正想要的性质。
一个必须显式说明的细节:EWMA 只能用过去的成交额。用全样本日均成交额定阈值,等于让 bar 的边界依赖未来信息——这是信息驱动采样实务里最隐蔽的前视偏差,它不会让单根 bar 的价格错位,但会让「bar 数密度」这个隐变量泄漏未来的活动水平。
五、终点站:美元时钟与 VPIN 的同构#
信息驱动采样不止是数据预处理技巧,它连着一条更深的研究线。
Easley、López de Prado 和 O’Hara 的 VPIN(成交量同步知情交易概率,详见这篇)的第一步就是把时间轴换成活动时钟:等量成交桶内计算买卖失衡。他们的论文标题直接叫 The Volume Clock——采样方式与知情交易度量共享同一个世界观:
市场的自然节拍是交易活动,不是格林尼治时间。 知情交易者带着体量进场时,活动时钟自动加速;度量、采样、风控都应该在这个时钟上运行。
这个视角下,美元 Bar 是「让数据结构与市场机制同构」的第一块砖:往上可以叠 imbalance bars(按买卖失衡的累计意外程度切分,采样节奏进一步逼近「信息」本身而不只是「活动」)、run bars 等更激进的家族成员。它们超出本文范围,但方向一致:采样规则越贴近信息到达机制,下游模型看到的世界越干净。
六、A 股落地注记#
三点本地化差异:
- 手数制度弱化了短期差异。A 股一手恒定 100 股,无碎股连续竞价,同一标的短窗口内成交量时钟与美元时钟高度相关。美元 Bar 的优势场景在 A 股具体化为:跨长周期回测(价格档变化大)、跨标的统一建 bar(高价股 vs 低价股)、送转股频繁的标的;
- 拆单通胀同样存在。A 股算法拆单近年快速普及,tick bar 的跨年语义漂移问题一样严重,不要因为「A 股散户多」就假设逐笔计数稳定;
- 午休与集合竞价的处理同成交量 Bar:跨午休累计在统计上是特性,开盘集合竞价的批量成交建议单独标记。
七、诚实的边界#
- 本文全部证据来自受控模拟。模拟的价值是把因果钉死(底层收益构造上 iid 正态,一切统计差异归因于时钟),代价是幅度不可外推——真实市场中成交额与信息到达之间有噪声缝隙(无信息的指数调仓贡献成交额但不贡献信息),正态化效果会打折扣。真实数据上的系统比较可参考 AFML 第 2 章与后续文献,方向一致、幅度更温和;
- 美元 Bar 不产生 alpha。它改善训练样本的分布性质、降低模型学伪结构的机会,是 ML 管线的地基工程。地基不直接赚钱,但烂地基上的一切都在赔钱;
- 低频策略可以无视这一切。月频调仓、财报驱动的策略在 bar 层面的微观结构差异会被持仓周期平均掉。信息驱动采样的受益者是日内到数日的中高频策略,以及一切以逐 bar 样本训练的机器学习管线。
本文实验为受控模拟,参数为教学目的设定,用于隔离验证时钟单位对采样稳定性与统计性质的影响。真实市场效果幅度会打折扣。本文不构成投资建议。