踩坑复盘
碎股与粉尘
固定资金分 10 份去买高价股的分配难题,以及权重不足 0.1% 的「粉尘持仓」如何悄悄推高交易成本。#28 事故档案。
层级 ADS · 交易执行 严重度 中 关联 #28 · commit 81f833b · alpaca_trader.py recorder.py
现象
两个相关问题:其一,$25,000 等分为 10 份买入 AVGO 等高价标的时,单份资金仅能购入少量整股,实际权重严重偏离目标权重;其二,调仓后账户中积累了一批权重不足 0.1% 的「粉尘持仓」,保留则持续产生交易成本,清理则增加额外换手。
定位
问题出在「目标权重 → 实际股数」的取整环节。高价股按整股买入时,离散化误差被放大;而每次调仓的残差累积成微小持仓,长期不清理就变成粉尘,每一笔的佣金 / 价差占比却高得离谱。
根因
真实交易是离散的(只能买整股),而组合权重是连续的。两者之间的取整与残差,如果没有专门的规则去吸收,就会在高价股和低权重处暴露出来。
修复
优化清仓 / 清理逻辑:低于阈值的粉尘持仓直接清掉,不让它持续吃成本;改进资金分配,缓解高价股的整股离散化误差。
教训:回测中的组合权重为连续值,实盘持仓为整股离散值。这一「连续 → 离散」的差异是回测与实盘之间最易被忽视、但长期累积影响显著的一类误差来源。
关联
- 手册:5. 交易执行层 ADS
- 相关:周频换手把摩擦放大数倍——同样是交易成本被低估的故事。