选股胜率怎么算才算数:同一批信号能算出两个答案

胜率不是一个客观数字,它取决于你怎么定义买入价和卖出价。同一批信号,按次日开盘算和按信号日收盘算,能差出 0.84 个百分点、正负都能翻。本文用一次真实的口径统一说明差在哪。

更新于 2026-08-01

看到「胜率 60%」这种数字,第一个该问的不是高不高,是这 60% 怎么算出来的。胜率没有行业统一定义,买入价取哪个价、卖出价取哪个价、亏多少算输,每一项都能改结果。改动幅度往往比模型本身的差异还大。

一个真实的例子:同一批信号,两个答案

2026 年 7 月 31 日,我们发现自己站内两个页面对同一批信号给出了不同的数字。首页的信号曲线用的是「信号日收盘价买入,次日按最高价与收盘价的均值卖出」;复盘页用的却是「次日开盘买入,次日收盘卖出」。后者完全不包含隔夜跳空那一段。

7 月 30 日那批信号,次日三只票全部低开。两种算法的结果是这样的:

口径海尔智家广深铁路格力电器平均
次日开盘 → 次日收盘+1.27%−0.32%+0.74%+0.56%
信号日收盘 → 次日高收均价−0.13%−0.32%−0.40%−0.28%
同一批信号、同一天、同一份行情数据,差别只在买卖价怎么取。

先说清楚第一行那个口径的性质,这点很重要:「次日开盘买入、次日收盘卖出」是同一个交易日内的完整回转,而 A 股是 T+1,现金账户当天买进当天卖不掉。所以它不是一个你能拿到的收益,只能当诊断指标用——它衡量的是「把隔夜跳空剔掉之后,信号还剩多少」。真正可执行的最短持有是次日买入、第三个交易日才能卖。保留 +0.56% 这个数是因为对照本身有意义,但它不该被当成实际收益引用。

差 0.84 个百分点,而且正负翻了面。原因不复杂:用户实际是按信号日收盘价买进去的,次日低开那一段亏损是真金白银,但「次日开盘起算」这个口径把它整段丢掉了。低开越多,丢得越多。这不是随机误差,是系统性高估——只要次日普遍低开,它就一定偏高。

三个最容易注水的地方

  1. 1买入价从哪里起算。用次日开盘价起算,等于假设你能在开盘瞬间成交,并且不承担隔夜跳空。真实的信号是收盘后才出来的,能操作的最早时点就是次日开盘,但你的持仓成本是前一天收盘——这两件事经常被混在一起。
  2. 2卖出价怎么取。取次日最高价是最离谱的,那要求你精准卖在当天最高点。取收盘价保守但偏低。取(最高价+收盘价)/2 是个折中,但它仍然是估算,不是你实际成交的价格,标注时必须说清楚。
  3. 3复权方式。用不复权的价格算,除权除息那天会凭空出现一个大跌,被当成真实亏损计入。一只年中分红的票,能靠这一条把胜率拉低好几个点;反过来如果只对赢家用前复权,就是反向注水。

标称胜率和全市场复现,常常不是一回事

还有一类更隐蔽的差距:参数是在哪段数据上选出来的。如果一组参数是在某段历史里挑出表现最好的那一组,再拿同一段历史报胜率,这个数字基本没有信息量——它衡量的是拟合程度,不是预测能力。

我们对自己线上模型做过一次批判性复核:标称命中率 61.6% 是冠军参数在特定样本上的成绩,换成全市场前复权数据、拉长到 2.5 年重跑,命中率只有 56.6%。再把交易费用和实际的止盈止损档位代进去,期望值是负的。更麻烦的是,剩下那部分正收益在换用中证 500 / 中证 1000 做基准后转为负超额,说明它主要来自中小盘的市值 beta,不是选股本身。

这 5 个百分点的归因要谨慎。复现时同时动了四件事:换冠军参数、换全市场样本、换前复权数据、把窗口拉到 2.5 年。把差额单独算到「参数过拟合」头上是不成立的——真要拆开,得固定样本只换参数跑一次、固定参数只换样本再跑一次,这个实验我们没做。所以 5 个百分点只能当作搜索效应的上界,不是它的测量值。

还有一条边界得交代:那次复现本身跑在前复权数据上,而前复权的历史会随每次分红送转重算(下一篇专门讲这个)。按我们自己的标准,这组数字也是不可严格复现的。保留它是因为结论在量级上不依赖复权方式——差约 5 个百分点、扣费后转负、换市值匹配的基准后超额转负——但精确到小数点的数值不该被再引用。

一个模型如果只在自己挑参数的那段数据上好看,它衡量的是拟合,不是预测。

看到胜率数字时该问的五个问题

  • 买入价和卖出价分别取的哪个价?能不能给我两个价,让我自己按计算器核?
  • 用的前复权还是不复权?除权除息日怎么处理?
  • 参数是在哪段数据上选的?报的成绩是不是同一段?
  • 持有多久算一笔?停牌、一字板买不进的怎么算?
  • 扣手续费和印花税了吗?按什么费率?

这五个问题里但凡有一个答不上来,那个胜率数字就只能当参考,不能当依据。我们把站内所有涉及后续收益的地方统一到了同一个口径,并且在表格里直接列出买入价和卖出价,就是为了让第一个问题有答案。

顺带说一句边界:统一口径解决的是「同一件事不能有两个答案」,它不会让一个没有预测能力的模型变得有预测能力。口径干净只是能开始讨论的前提。

相关笔记