前面几章,我们已经讲了足球量化中的核心基础:
概率;
大数定律;
样本;
赔率;
隐含概率;
期望值;
EV;
方差;
回归均值。
这些概念解决了很多问题。
概率告诉我们,足球比赛不是确定事件。
大数定律告诉我们,单场结果不能证明方法好坏。
样本告诉我们,判断必须有数据基础。
赔率和隐含概率告诉我们,市场价格背后有概率含义。
期望值和 EV 告诉我们,看对方向不等于长期有价值。
方差告诉我们,短期结果会波动。
回归均值告诉我们,短期异常表现不一定能持续。
但现在还有一个最关键的问题:
我们怎么知道一种判断方法到底有没有长期效果?
比如有人说:
强队低赔率容易被高估。
世界杯小组赛首轮容易谨慎。
最近连续大胜的球队容易回落。
低比分环境里平局风险更高。
进球效率异常高的球队后面可能降温。
市场热度过高时,热门方向要更谨慎。
这些说法听起来都有道理。
但问题是:
它们到底有没有被验证过?
如果只是凭感觉说,哪怕听起来很专业,也仍然只是观点。
足球量化不能只停留在观点层面。
它必须进入验证层面。
这就是本章要讲的核心概念:
回测。
一、回测到底是什么?
回测,简单说就是:
用过去已经发生的比赛,去检验一种判断规则是否有效。
注意,这里有三个关键词:
过去。
规则。
检验。
不是随便翻几场比赛。
不是赛后找几个成功案例。
不是挑几场符合自己观点的比赛。
不是看到某个例子就说“你看,我说得对”。
真正的回测,必须先有一个明确规则。
然后把历史里符合这个规则的比赛全部筛出来。
最后看这些比赛的长期结果如何。
举个简单例子。
你提出一个规则:
当一支球队最近 5 场进球效率明显高于长期均值,但射门和射正没有同步提升时,下一阶段进球数可能回落。
这只是一个假设。
它听起来合理,但不能直接当成结论。
你需要回测:
过去有多少球队符合这个条件?
符合条件后,接下来几场进球是否真的下降?
下降幅度是否明显?
不同联赛是否一致?
是否只是少数极端案例造成的?
这个规则在最近几年是否仍然有效?
这个验证过程,就是回测。
所以,回测不是为了证明自己对。
回测是为了检查:
一个想法是否经得起历史样本检验。
二、为什么没有回测的判断不能轻易相信?
足球分析里,有很多听起来很有道理的话。
比如:
强队连续赢球后容易松懈。
弱队保级压力大,战意更强。
杯赛容易出冷门。
大胜之后容易回落。
小组赛首轮容易谨慎。
热门球队被关注多,风险更大。
这些话有些可能是真的,有些可能只是经验印象。
不回测,你很难区分。
人的大脑很容易记住印象深刻的比赛。
比如某支强队爆冷输球,你会记很久。
某场比赛补时绝平,你会记很久。
某队大胜后下一场低迷,你也会记很久。
但你可能忘记了更多没有发生类似情况的比赛。
这就是记忆偏差。
回测的价值,就是把“我印象中好像是这样”,变成“历史样本里到底是不是这样”。
举例。
你觉得:
大胜之后容易回落。
这句话不能只靠几场案例证明。
要系统筛选:
过去所有大胜比赛;
定义什么叫大胜,比如净胜 3 球以上;
看这些球队下一场进球、胜率、总进球是否下降;
和非大胜球队进行比较;
看下降是否显著;
看不同联赛是否一致。
只有这样,才能知道这个说法有没有真实支持。
没有回测,很多判断只是讲故事。
有了回测,才开始接近量化。
三、回测不是赛后找理由
很多人以为自己在复盘,其实只是在赛后找理由。
比如某场比赛强队没赢。
赛后他说:
我早就觉得这场强队有风险,因为它赛程密集,而且弱队防守不错。
听起来有道理。
但如果赛前没有明确记录,这就可能只是赛后解释。
真正的回测要求:
规则必须在赛前定义,不能赛后临时拼接。
比如你要研究“赛程密集的强队是否容易受阻”。
那就要提前定义清楚:
什么叫强队?
什么叫赛程密集?
什么叫受阻?
看胜平负,还是看让球结果?
统计多少场?
是否区分主客场?
是否排除杯赛轮换?
时间范围是什么?
如果这些都不定义,只是在赛后看到结果再解释,那就不是回测。
那只是故事。
足球量化最怕的就是:
先看到结果,再倒推理由。
因为只要赛后找理由,几乎每场比赛都能解释得通。
强队赢了,可以说实力兑现。
强队平了,可以说对手死守。
强队输了,可以说战意不足。
大比分,可以说防线松散。
小比分,可以说双方谨慎。
赛后解释永远容易。
真正难的是赛前定义规则,然后用历史样本检验。
四、一个最简单的回测例子
我们用一个非常简单的例子理解回测。
假设你提出一个规则:
主胜赔率在 1.30 到 1.50 之间的强队,虽然看起来优势大,但长期未必有足够价值。
这个规则怎么回测?
第一步,确定样本范围。
比如:
过去 3 年的某些主流联赛;
只看联赛,不看杯赛;
只看主胜赔率 1.30 到 1.50 的比赛。
第二步,筛选比赛。
假设筛选出 1000 场。
第三步,统计结果。
比如:
主胜打出:710 场
平局:190 场
客胜:100 场
主胜实际发生率是:
710 ÷ 1000 = 71%
第四步,比较隐含概率。
赔率 1.30 到 1.50,大致对应隐含概率:
1 ÷ 1.50 ≈ 66.7%
1 ÷ 1.30 ≈ 76.9%
也就是说,这个区间大致要求主胜长期达到 66.7% 到 76.9% 左右。
如果实际发生率 71%,它大致处在这个区间中间。
第五步,看收益或 ROI。
如果这个区间平均赔率是 1.40,那么主胜 710 场的净收益大致是:
赢:710 × 0.40 = 284
输:290 × 1 = 290
总结果:284 - 290 = -6
ROI 大约接近负值。
这说明:
这个赔率区间的主胜虽然经常发生,但长期未必有明显价值。
这就是一个简单回测。
它不是看某一场低赔率强队是否赢,而是看大量类似比赛的长期结果。
五、回测必须先定义规则
回测最重要的一点是:
规则要明确。
如果规则不明确,回测就没有意义。
比如你说:
“强队状态好时比较稳。”
这句话不能直接回测。
因为太模糊。
什么叫强队?
什么叫状态好?
什么叫稳?
要把它变成可以回测的规则。
比如改成:
过去 10 场积分排名高于对手;
最近 5 场至少赢 4 场;
主场作战;
主胜赔率低于 1.60;
最终主胜视为命中。
这样才可以筛选样本。
再比如你说:
“进球效率过高的球队后面容易回落。”
也要定义清楚:
什么叫进球效率过高?
用进球 / 射正,还是进球 / 射门?
和最近 20 场均值比较,还是赛季均值比较?
回落看下一场,还是接下来 3 场?
回落多少算回落?
没有明确规则,就无法回测。
所以,回测的第一步不是找数据。
而是把想法变成规则。
六、一个好规则应该满足什么条件?
一个适合回测的规则,至少要满足五个条件。
1. 清楚
别人看了能明白。
比如:
“主胜赔率 1.30 到 1.50。”
这很清楚。
“看起来很稳的强队。”
这就不清楚。
2. 可筛选
规则必须能从历史数据里筛出来。
比如:
赔率区间;
主客场;
总进球;
胜平负结果;
最近几场进球;
联赛类型;
比赛日期。
这些都容易筛选。
但“球队心态放松”就很难直接筛选。
3. 可重复
同一个规则,换一个人执行,应该能筛出相近样本。
如果不同人理解完全不同,规则就不适合回测。
4. 不依赖赛后信息
规则只能使用赛前能知道的信息。
如果你用赛后数据来判断赛前规则,那就是作弊。
这叫“未来信息”。
比如你不能用最终比分来决定赛前是否属于某类比赛。
5. 样本不能太少
如果规则太苛刻,只筛出 8 场比赛,结论就很不稳定。
样本太少,容易被个别比赛影响。
所以规则既要清楚,也要有足够样本。
七、回测最怕“未来函数”
在量化里,有一个非常危险的问题:
使用未来信息。
也就是你在回测时,使用了当时赛前并不知道的信息。
这会让结果看起来非常好,但实际上没有意义。
举个例子。
你想回测“临场首发变化对结果的影响”。
如果你使用的是比赛开始后才确认的信息,而且历史里这个信息不一定赛前可获得,那就可能有问题。
再比如你想回测“球队状态是否提升”。
如果你用赛季结束后的最终排名,去判断赛季中某一场比赛前的球队实力,这也可能引入未来信息。
因为那场比赛发生时,最终排名还不知道。
正确做法应该是:
只使用那场比赛开始前已经可获得的信息。
足球量化必须非常注意这一点。
否则回测结果会虚高。
看起来很漂亮,但实际应用时会失效。
八、回测不能只看命中率
很多人做回测,只看一个指标:
命中率。
比如:
这个规则过去 100 场命中 62 场,命中率 62%。
这当然有参考价值。
但不够。
因为命中率必须结合赔率和收益看。
假设一个规则命中率 70%。
听起来很好。
但如果平均赔率只有 1.30,那么它可能仍然没有长期价值。
前面讲 EV 时已经算过:
赔率 1.30,命中率 70%。
EV = 70% × 0.30 - 30% × 1 = -0.09
所以命中率高不一定好。
回测至少要看:
命中率;
平均赔率;
ROI;
最大回撤;
样本量;
连续不理想区间;
不同时间段表现;
不同联赛表现;
结果是否被少数极端场次拉动。
只看命中率,很容易误判。
九、ROI 是回测里必须看的指标
ROI 是回报率。
简单公式是:
ROI = 净结果 ÷ 总投入
比如一个规则回测 100 场,每场按 1 个单位计算。
总投入是:
100
最终净结果是:
+8
那么 ROI 是:
8 ÷ 100 = 8%
ROI 的价值在于:
它把命中率和赔率结合起来了。
比如两个规则:
规则 A:命中率 70%,平均赔率 1.30。
规则 B:命中率 45%,平均赔率 2.50。
只看命中率,A 更好。
但看 ROI,可能 B 更好。
所以,回测不能只看对了多少场。
还要看:
长期平均结果如何。
这就是 ROI 的意义。
十、最大回撤也必须看
很多回测结果看起来不错,但过程可能很痛苦。
比如一个规则最终 ROI 是正的。
但中间经历过很深的下滑。
这时候只看最终结果是不够的。
你还要看:
最大回撤。
最大回撤后面会单独讲。
这里先简单理解:
最大回撤就是从阶段高点到阶段低点的最大下滑幅度。
比如一个规则开始表现很好,从 0 增长到 +20。
后来连续不理想,降到 +5。
这段最大回撤就是:
20 - 5 = 15
为什么最大回撤重要?
因为它告诉你:
这个规则在最难受的时候会有多难受。
有些规则长期结果不错,但回撤很大。
如果你不能承受这种波动,就很难坚持到长期优势显现。
所以,回测不能只看最终 ROI。
还要看过程风险。
十一、回测要分时间段看
一个规则在全部样本上表现不错,不代表它每个阶段都稳定。
比如你回测 5 年数据。
总结果很好。
但拆开看:
第一年很好;
第二年很好;
第三年一般;
第四年很差;
第五年很差。
这说明什么?
可能说明规则已经失效。
也可能说明市场变化了。
也可能说明早期样本拉高了整体结果。
所以,回测一定要分时间段看。
比如:
按年份看;
按赛季看;
按世界杯前后看;
按联赛阶段看;
按新旧规则看;
按近期和早期分开看。
如果一个规则只在很久以前有效,最近已经不行,那就不能直接用于现在。
足球环境会变化。
联赛节奏会变。
赔率市场会变。
球队战术会变。
数据质量会变。
赛制也可能变。
所以,回测必须关注时间稳定性。
十二、回测要分联赛看
不同联赛风格不同。
一个规则在某些联赛有效,不代表在所有联赛都有效。
比如:
某类低比分规则在节奏慢、防守强的联赛可能表现好。
但在节奏快、攻防转换多的联赛可能表现差。
某类强队优势规则在强弱分化明显的联赛可能有效。
但在整体实力接近的联赛可能效果一般。
所以,回测要分联赛观察。
不能只看总结果。
总结果可能掩盖差异。
比如一个规则整体 ROI 是 +5%。
拆开看:
A 联赛 +15%;
B 联赛 +8%;
C 联赛 -10%;
D 联赛 -6%。
如果你不分联赛,就会误以为规则整体可用。
但实际上,它可能只适合部分联赛。
这就是分组回测的重要性。
十三、回测要看样本量,不能被小样本骗了
样本量太少,回测结果很容易失真。
比如一个规则筛出 12 场比赛。
其中命中 9 场。
命中率 75%。
看起来很强。
但 12 场太少。
可能只是短期波动。
再比如另一个规则筛出 800 场比赛。
命中率 56%。
看起来没那么惊艳。
但它可能更可靠。
样本量越小,结果越容易被偶然事件影响。
回测时一定要问:
样本有多少?
是否足够支持结论?
是否被一两场极端结果拉动?
是否有足够时间跨度?
是否有足够不同场景?
没有样本量,任何回测数字都不完整。
十四、回测不能只看成功案例
这是最常见的错误之一。
比如你想证明:
“低赔率热门有风险。”
于是你找了 10 场低赔率热门没打出的比赛。
然后说:
你看,低赔率不可靠。
这不是回测。
这只是挑案例。
真正的回测必须包括:
符合条件后成功的比赛;
符合条件后失败的比赛。
比如你要研究主胜赔率 1.30 到 1.50。
那就要把这个区间所有比赛都筛出来。
不能只看没打出的。
如果 1000 场里有 710 场主胜,290 场没主胜,那才是完整样本。
完整样本才能计算真实比例。
只挑失败案例,结论必然偏。
只挑成功案例,也一样偏。
十五、回测不能过度优化规则
有些人回测时会不断调整规则,直到历史结果很好看。
比如一开始规则表现一般。
于是他不断加条件:
只看主场;
只看某几个联赛;
只看某个赔率区间;
排除某些月份;
排除某些球队;
只看某类排名差;
只看某类进球结构。
最后历史结果变得非常漂亮。
但问题是:
这个规则可能只是“贴合历史噪音”。
它不一定能适用于未来。
这叫过度拟合。
虽然我们这套教程不专门讲模型,但回测里的过度优化也要警惕。
一个规则如果条件太多、样本太少、历史结果过于完美,反而要小心。
真实有效的规则,通常应该具备一定简单性和可解释性。
不是越复杂越好。
十六、一个完整回测流程
现在我们把回测流程完整整理一下。
假设你想验证一个规则:
当一支球队最近 5 场进球明显高于长期均值,但射门和射正没有同步提升时,后续进球可能回落。
第一步:定义规则
比如:
最近 5 场场均进球,比最近 30 场场均进球高出 50% 以上;
最近 5 场射门数没有比最近 30 场提升超过 10%;
最近 5 场射正数没有比最近 30 场提升超过 10%。
这就把“进球效率异常高”变成了可筛选规则。
第二步:定义验证目标
要验证什么?
比如:
接下来 3 场场均进球是否下降;
下降幅度是多少;
是否低于最近 5 场;
是否接近最近 30 场均值。
第三步:筛选历史样本
从历史比赛中筛出所有符合条件的球队和时间点。
注意只能用当时之前的数据。
不能用未来比赛来定义过去状态。
第四步:统计结果
统计这些样本后续 3 场表现。
比如:
样本数:300 个;
其中 210 个后续进球下降;
平均下降幅度 35%;
不同联赛表现不同。
第五步:分组分析
按联赛分;
按主客场分;
按强队弱队分;
按赔率区间分;
按时间段分。
看规则是否稳定。
第六步:评估是否有用
如果结果稳定,说明这个规则可能有参考价值。
如果结果不稳定,说明这个想法可能只是局部有效。
如果样本太少,暂时不能下结论。
如果近期失效,要重新审视原因。
这就是一个完整回测思路。
十七、回测和复盘有什么区别?
这两个词很接近,但不完全一样。
复盘
复盘通常是针对已经发生的比赛或一段时间的判断。
它问的是:
这场为什么这样?
哪里判断对了?
哪里判断错了?
哪些因素漏掉了?
下次如何改进?
复盘偏单场或阶段总结。
回测
回测更系统。
它问的是:
一个规则在历史大量样本中表现如何?
命中率是多少?
ROI 如何?
回撤多大?
不同联赛是否稳定?
不同时间段是否有效?
回测偏规则验证。
简单说:
复盘帮助你理解具体错误。
回测帮助你验证一套规则。
两者都重要。
只有复盘,没有回测,容易停留在故事层面。
只有回测,没有复盘,容易忽略比赛具体结构。
十八、回测结果好,是否代表未来一定好?
不代表。
这是必须强调的。
回测只是说明:
这个规则在过去样本里表现如何。
但未来环境可能变化。
球队打法会变。
市场定价会变。
联赛节奏会变。
数据质量会变。
用户行为会变。
赛制和规则也可能变。
所以,回测结果好,不等于未来一定好。
但没有回测更不可靠。
更准确地说:
回测不是保证未来,而是过滤掉大量未经验证的想法。
一个规则如果历史回测都不行,就很难让人相信未来会突然有效。
一个规则如果历史回测不错,也仍然需要持续监控。
这就是量化思维的严谨性。
十九、普通读者如何理解回测?
普通读者不一定要自己写程序。
但必须具备回测意识。
看到一个判断时,可以问几个问题:
这个判断有多少历史样本支持?
规则是否提前定义?
有没有只挑成功案例?
命中率是多少?
平均赔率是多少?
ROI 如何?
最大回撤多大?
不同时间段是否稳定?
不同联赛是否差异很大?
最近是否仍然有效?
如果这些问题都回答不了,就要谨慎。
不是说这个判断一定错。
而是说:
它还没有被充分验证。
在足球量化里,未经验证的判断,只能叫观点。
经过样本检验的判断,才开始接近方法。
二十、这一章的核心公式
回测里常用的公式不复杂。
1. 命中率
命中率 = 命中场次 ÷ 总场次
例如:
100 场命中 58 场
命中率 = 58 ÷ 100 = 58%
2. ROI
ROI = 净结果 ÷ 总投入
例如:
总投入 100
净结果 +8
ROI = 8 ÷ 100 = 8%
3. 平均赔率
平均赔率 = 所有赔率之和 ÷ 样本数量
平均赔率能帮助理解命中率背后的回报结构。
4. 样本量
这个不是公式,但必须记录:
样本量 = 符合规则的历史比赛数量
没有样本量,命中率和 ROI 都容易误导。
二十一、这一章你需要掌握什么?
读完这一章,你应该掌握以下几点:
第一,回测是用历史样本验证判断规则。
第二,没有回测的判断,很多只是经验或感觉。
第三,回测必须先定义规则,不能赛后找理由。
第四,规则必须清楚、可筛选、可重复。
第五,回测不能使用未来信息。
第六,回测不能只看命中率,还要看平均赔率、ROI、最大回撤和样本量。
第七,回测要分时间段、分联赛、分类型观察。
第八,小样本回测很容易骗人。
第九,回测结果好不代表未来一定好,但没有回测更不可靠。
第十,足球量化的核心,不是讲故事,而是验证规则。
结语:回测让足球分析从观点变成方法
足球分析里,观点很多。
有人说强队稳。
有人说热门危险。
有人说世界杯小组赛谨慎。
有人说连续大胜后容易回落。
有人说低比分环境更容易出平局。
有人说市场热度过高时要谨慎。
这些观点听起来都可能有道理。
但足球量化不能只听起来有道理。
它必须问:
历史样本支持吗?
规则定义清楚吗?
样本够不够大?
结果是否稳定?
是否只在某些联赛有效?
近期是否还有效?
ROI 和回撤如何?
有没有使用未来信息?
有没有只挑成功案例?
这就是回测的价值。
回测不是为了制造确定感。
它是为了让我们少一点主观臆断,多一点证据;少一点赛后解释,多一点规则验证。
真正的足球量化,不是把比赛讲得很玄,而是把判断变得可检查、可复盘、可改进。
如果一个判断没有回测,它最多只是观点。
如果一个判断经过长期样本验证,它才可能成为方法。
本文仅供足球数据研究和理性观赛参考,不构成任何投注建议。
你可以继续查看稳狗足球足球量化平台,了解概率、EV、回测、最大回撤等量化指标在实际数据分析中的应用。
