战绩口径:为什么「看起来」和「真做」差这么多
同一批选股,用「买了就持有到期」的对照口径统计,和按实际卖出规则(卖点触发即了结、扣成本)统计,累计收益能差好几个百分点。这篇讲清两种口径、累计/超额/回撤怎么算、以及为什么不年化。
两种口径的定义
| 口径 | 怎么算 | 用途 |
|---|---|---|
| 实际执行口径 (主口径) |
买点出现后次一交易日开盘执行 → 持有期内出现卖点即了结 → 未出现则到期了结 → 扣 0.08% 成本 | 贴近真实操作,战绩页主曲线用它 |
| 对照口径 (买了不动) |
买点买入 → 一直持有到期卖出,不设卖点、不扣成本 | 衡量「这批选股本身」的涨跌,不掺执行规则 |
两者不是谁对谁错,而是回答不同问题:裸口径看选股质量,实际口径看这套规则真做出来的结果。 战绩页同时展示两条曲线,主数字是实际口径。
差距有多大:一个真实例子
2026 年的一段统计里,同一批 81 只票:对照口径累计 +5.28%、胜率 56.8%; 实际执行口径累计 +12.40%、胜率 67.9%。差 7.12 个百分点,几乎全部来自「卖点出场」——很多票在 持有期结束前就出现了卖点,对照口径却要按到期价记,把已经到手的收益又交回去了。
也有反过来的时段:如果买进去之后一路下行,两种口径都难看,没有哪套规则能救。所以看战绩一定要看 时段,不能只看一个累计数。
累计、超额、回撤怎么算
- 累计收益:每个交易日把当日清单(通常 3 只)的笔均收益等权合成日收益,再连乘复利。
- 超额:同区间基准(例如创业板指)的累计收益之差,单位是百分点。
- 最大回撤:曲线从历史峰值回落到最低点的幅度,衡量「最难受的一段有多难受」。
- 日胜率:当日合成的日收益为正的天数占比。
我们刻意不把日收益简单相加(那会算出荒谬的数字,比如几千个百分点),也刻意不做年化外推—— 两个多月的样本外推到年化,误差会被放大到没有意义。
为什么会有「脏数据」式的历史差异
如果统计口径没收敛,很容易出现各种假象:例如把「例外票」也计入每日前三、 把节假日的信号重复归到同一个交易日(同一批亏损被复利算两遍)、同一只票重复落库导致名次错乱、 排序不稳定导致同分票每次出现不同的几只。这些都会让展示数字偏离真实执行结果。
我们的处理是把口径收敛成一份代码:战绩页、曲线接口、复盘页、模拟盘都调用同一个结算函数, 并对非交易日信号归一到下一交易日、同日同票去重。这样「展示的数字」和「真做的数字」是同一套算法算出来的。