🖋️ 特约专栏

回测幻觉三部曲

从偷信息、偷印象到偷信任,拆解量化策略造假的完整链条

揭示回测造假从数据、执行到激励的完整链条与深层动因,给出默认为假、独立验证的证伪体系

特约作者闻说汇道的回测审查整合版:上篇解剖数据时点与统计过拟合(未来函数四变体、前视偏差、条件空间膨胀)——偷信息;中篇拆解执行失真、逻辑伪饰与叙事五法(口径分离、选择性展示、二手背书)——偷印象;下篇揭示激励生态层的清醒转卖者、击鼓传花与策略庞氏——偷信任;收篇给出五层证伪、三道关口与叙事六问的完整防范体系。方法论复盘,不荐股、不承诺收益。

✍️ 闻说汇道👥 做过回测、看过漂亮净值曲线、想搞清"回测收益到底能不能兑现"的量化研究者和个人投资者📑 4 章📄 4 节

📝 前言

在量化交易里,最危险的谎言往往披着科学的外衣。一个前提贯穿全文:任何一个漂亮的回测曲线,在被独立证据证明为真之前,都应默认它是假的。

我们把回测幻觉的造假链条从浅到深拆成三层递进:偷信息(数据与技术层)、偷印象(执行与叙事层)、偷信任(激励与生态层)。前两层还能用技术工具排查,第三层却解释了一句最刺眼的现实——很多高赞策略,发布者自己都不信,克隆它不是为了实盘,而是为了传给下一个人。

全文四篇:上篇·偷信息,中篇·偷印象,下篇·偷信任,收篇·怎么办。

第 1 章

上篇 · 偷"信息"——数据与技术层作弊

从最底层的数据时序与统计自欺出发,逐层解剖未来函数的四种变体、前视偏差的三种形态,以及过拟合从参数挑峰到条件空间膨胀的连续谱系。

1.1 上篇 · 偷"信息"——数据与技术层作弊

本篇聚焦"偷信息"——数据与技术层作弊。一个前提贯穿全文:任何一个漂亮的回测曲线,在被独立证据证明为真之前,都应默认它是假的。 所有数字均为特定历史区间的客观回测记录,仅供研究参考,不构成任何投资建议。

上篇 · 偷"信息"——数据与技术层作弊

作弊的最底层来源,潜伏在数据的时序里,也潜伏在统计自欺的选择偏差里。它的本质只有一句话:决策时使用了当时尚不存在的信息。

一、未来函数:从"偷价格"到"偷一切"

未来函数是量化作弊中最广为人知、却也最被低估其变体的一类。它的本质只有一个:决策时使用了当时尚不存在的信息。但这个"信息"远不止收盘价。

  • (一)同 bar 信号与成交(SAME_BAR):一个日频策略在 09:30 用"当天收盘价"算涨幅、按"当天开盘价"成交。代码没显式请求未来日期,却同时用到了同一根 K 线两端、在决策时点都不可得的信息。平台的 avoid_future_data 能拦跨日期调用,却拦不住同 bar——因为它不涉及未来日期,只涉及同一 bar 内不可得的数据。
  • (二)直接读取未来日期(FUTURE_RET):比同 bar 更粗暴的是 get_price(..., end_date=今天+N天)。任何"用未来区间收益反推当前选择"的构造都是它的变体,把"读未来价格"换成"用未来收益造标签再训练模型",隐蔽性高一个量级。
  • (三)财务数据的"报告期—披露期"错位(FUTURE_FUNDAMENTAL):用 statDate='2023Q1' 取数,等于让策略在 1 月 1 日就知道 3 月 31 日才结束、可能 4 月底才披露的数据。用"公告日"而非"报告期"作为截面时钟,是财务因子回测不可妥协的底线。
  • (四)股票名称里的"未来 ST":平台的名称字段返回的是当前名称而非历史当日名称。2023 年才被 ST 的股票,在 2019 年的截面里已显示为 ST,策略"恰好"提前把它过滤掉了。正确做法是用 get_extras('is_st', end_date=T-1) 取按日历史。它危险在于:代码看着像风控,实为偷看未来才发生的风险事件。

二、前视偏差:那些"回测当时不存在"的东西

前视偏差与未来函数共享同一个逻辑内核——使用了决策时点不可得的信息——但它的来源不在数据调用,而在回测环境本身的设定。

  • (一)幸存者偏差:股票池是写死的静态列表、或用 get_all_securities() 不传历史日期时,回测宇宙系统性缺失了那些曾存在、却因退市或长期停牌而消失的标的。价值筛选策略(低 PB、低负债、高股息)恰恰最容易选中退市股——剔除它们,等于删除了"最可能造成永久资本损失"的样本。
  • (二)指数成分股的时点错配:2026 年回测却选用 2020—2025 涨幅最大的黄金 ETF、纳指 ETF 作轮动池,本质是用未来才知道的赢家构造过去的投资宇宙。十年前并不存在"它们将继续领涨"的先验知识。
  • (三)回测起点的刻意选择:起点恰在牛市底部、又在顶部结束,"年化 40%、回撤 8%"可能只是区间选择的产物。它不涉及任何一行错误代码,却与未来函数同等致命。

三、过拟合:从"参数挑峰"到"条件空间膨胀"

  • (一)参数挑峰:核心参数在回测里被系统性扫描,最终值恰好落在一条凸型敏感性曲线的峰顶。25 日动量在 20—30 天里"恰好"最优、两侧迅速衰减——任何被固定的数字,都很难排除"它在历史上跑得最好"这一选择机制。
  • (二)条件空间膨胀:从"低 PE + 深度偏离"两个条件,膨胀到六种形态、每种 5—10 个硬条件、外加板型与加速过滤,构成数百个可调旋钮。在这个空间里,找到一个"恰好有效"的组合几乎是统计必然。一个被硬编码为永远为真的伪条件(如 volume_pulse=False),不筛选任何东西,只让列表显得更丰富——这是"为了复杂而复杂"的明确信号。
  • (三)PBO 的缺席:回测过拟合概率(PBO)直接度量"样本内最优配置在样本外跌破中位数的概率"。一个从未算过 PBO 的策略,无法回答"我的优势里有多少是选择偏差"。
  • (四)辛普森悖论:单变量分析里"有效"的买入优化方向,在多因子联合环境里可能完全逆转。局部有效的条件在全局可能负向交互,回测里的"联合有效"或许只是特定参数下的偶然。
未来函数同bar作弊前视偏差幸存者偏差PBO过拟合
📖 关联术语:策略回测、过拟合

第 2 章

中篇 · 偷"印象"——执行与叙事层失真

转向执行摩擦、逻辑伪饰与叙事包装:零滑点下的流动性幻觉、涨停过滤的时序错位、伪配对与伪风控;再到口径分离、选择性展示、二手背书这五种"代码干净、故事失真"的叙事手法。

2.1 中篇 · 偷"印象"——执行与叙事层失真

中篇聚焦"偷印象"——执行与叙事层失真。即使信号在统计上"干净"、参数没有严重过拟合,回测优势仍可能在执行层的物理约束下被系统性放大;更隐蔽的一类,代码毫无破绽,但"它怎么被讲出来"本身就是失真的。所有数字均为特定历史区间回测口径,仅供研究参考,不构成任何投资建议。

中篇 · 偷"印象"——执行与叙事层失真

即使信号在统计上"干净"、参数没有严重过拟合,回测优势仍可能在执行层的物理约束下被系统性放大;更隐蔽的一类,代码毫无破绽,但"它怎么被讲出来"本身就是失真的。

四、执行层失真:回测优势在物理约束下的蒸发

  • (一)零滑点与流动性幻觉:set_slippage(FixedSlippage(0)) 对小微盘尤其致命。市值 5—30 亿、日成交额只有几百万的股票,单笔 30 万委托就能主导盘口。更要命的是固定金额滑点与比例滑点的混用:对 2 元低价股,0.02 元的固定滑点其实是 1%,而代码以为只设了 0.2%。
  • (二)涨跌停过滤器的时序错位:09:30 用当天第一根分钟线(09:31)的收盘价与 high_limit 比较再立即下单——实盘 09:30 时 09:31 的价格还不存在。这不是平台的未来函数,却是实盘不可复现的信号优势;回测也没建模"委托后瞬间封板导致废单、资金闲置"的摩擦。
  • (三)冲击成本与容量缺席:选中小微盘、10% 单票、每日调仓,却从未做容量测试。一个 100 万资金下年化 40% 的策略,在 5000 万规模下可能因冲击成本变成年化 5%。

五、逻辑伪饰:当"不是作弊"比作弊更危险

  • (一)"配对交易"的只做多版本:真配对要同时做多低估腿、做空高估腿对冲 beta,只赚价差回归。可有的策略 zscore≤−2 只买、zscore≥+1 只卖、从不做空——收益主要来自单边 beta,而非价差回归。标题写着"配对交易",实为一个单边择时策略。
  • (二)没有回归平仓的 zscore 策略:−2 买入、+1 卖出,却从不"回归到 0 附近"平仓。它从未真正兑现均值回归的利润,100% 胜率可能只是"小赚多、大亏少"偏态分布的副产品,是逻辑缺陷,不是预测能力。
  • (三)伪风控模块:新增了"单票 20%、行业 30%"的整套风控,但 get_industry 永远返回 default,行业约束从未生效;min_weight 存在却从不执行;risk_check 只在收盘写日志、不行动。比没有风控更危险的,是让人误以为有风控。
  • (四)Alpha 来源的结构性消亡:A 股小市值因子 2017—2023 贡献显著超额,但 2024 年初微盘流动性踩踏、众多量化产品回撤超 20%。这不是普通回撤,而是交易结构的根本改变。回测区间没覆盖生态变化,本身就是一种"时间维度的幸存者偏差"。

六、叙事五法:代码干净,故事失真

以下五种,代码可能完全合规,平台的未来函数检测也查不出问题——问题出在"怎么讲",不在"怎么写"。

  • (一)宣传口径与交付物分离:首页的漂亮曲线来自一套深度优化的版本,能克隆到的却是删减后的简化版。作者未必刻意隐瞒,常在文末轻描淡写一句"分享的是简化版",但绝大多数人只被曲线吸引。你看到的收益,和你能拿到手的策略,从一开始就不是同一个东西。
  • (二)未经验证的二手转发:一句"我帮你们筛选好了、直接能用",转发者可能连一次完整回测都没跑过,把别人的东西连遗留 bug 一起搬过来。原创者至少懂结构,二手转发者的担保往往是完全未经验证的。
  • (三)选择性展示:不造假,只裁剪——只贴牛市区间、只放最优参数、只展示净值却不标最大回撤发生的时间与周期。每一格数据都真,组合起来的印象却严重偏正面。
  • (四)批量海选后的幸存者:不是精心打磨出一个好策略,而是批量生成上百个,挑回测最好看的几个发布——这不是单个策略过拟合,而是"策略级的多重检验"。
  • (五)用热度代替有效性:高赞、大 V 转发、专栏光环,本质是传播力证明,不是可复现性证明。一条策略被一万人看过,和它被一个人跑通,是两件完全无关的事。
零滑点容量约束配对交易伪风控叙事五法选择性展示
📖 关联术语:滑点、最大回撤

第 3 章

下篇 · 偷"信任"——激励与生态层

作弊从个人失误升级为生态级的理性选择:清醒的转卖者、击鼓传花的激励错位、策略庞氏,以及普通人防不住的"验证的代价"与 AI 合流后的工业化注水。

3.1 下篇 · 偷"信任"——激励与生态层

下篇聚焦"偷信任"——激励与生态层。前面所有手法,都还停留在"一个人在制造幻觉";但真实的生态里最常见的场景,根本不需要任何人"信":作者不必信,读者也不必信。所有结论仅供研究参考,不构成任何投资建议。

下篇 · 偷"信任"——激励与生态层

前面所有手法,都还停留在"一个人在制造幻觉"。但真实的生态里最常见的场景,根本不需要任何人"信":作者不必信,读者也不必信。 这才是回测幻觉真正的主角。

七、第三种人:清醒的转卖者

作弊可以拆成三层:数据技术作弊(偷信息)、叙事包装作弊(偷印象),以及最深的一层——激励机制作弊。当"分享注水策略"比"输出真实研究"收益更高,作弊就不再是个别人的道德问题,而是整个生态的理性选择。

一句最刺眼的现实:很多人明知策略是假的,克隆它从来不是为了实盘,而是为了骗下一批人、赚平台积分、换更多曝光。 这便是"清醒的转卖者"——他不天真,也不无辜,只是比普通人更早看懂了规则:在这个市场上,能变现的从来不是策略本身,而是"下一个人的相信"。

八、击鼓传花的生态与策略庞氏

打开任何一个大众量化社区的高赞策略帖,评论区最高频的词往往不是"我跑通了",而是"分享只为积分""克隆学习""求回粉"。于是形成荒诞的激励错位:

  • 分享注水策略是理性选择:一条重度拟合、带前视数据的夸张曲线,制作成本近乎为零,却能轻松换来积分、曝光与关注;
  • 输出真实回测是亏本行为:剔除偏差后的真实曲线往往平庸甚至难看,发出来无人点赞,连基础流量都换不到。

市场被结构性扭曲:劣币驱逐良币,且不可逆。 当"假而吸睛"系统性跑赢"真而平庸",连原本认真的创作者也会被裹挟着往曲线里注水,否则就被算法淹没。我们把这套结构称为**"策略庞氏"**:既然是击鼓传花,"下一批接盘者"就是商业模式本身——A 明知注水,加一句"经我实测可用"转给 B;B 再包装成"圈内专属"卖给 C。没有人打算真的用它交易,所有人都在转卖"下一个人的相信"。

两个我们实测复现过的典型标本(均为公开帖,此处不点名):某社区高赞连板龙头帖,宣传图显示年化 304.67%、夏普 6.076、Beta 仅 0.115,曲线近乎匀速攀升,作者却在文末亲笔注明"分享的是未经因子拟合的 Lite 版本";某"帮你们筛选好了"的高赞转发帖,打包票称"无未来函数、直接能用",逐行复现后却发现前视偏差、缺函数根本跑不起来、所谓"亮点板块"恰是收益注水的核心来源。

九、验证的代价:为什么普通人防不住

讲透了骗子的低成本,更要看清证伪的高门槛。要拆穿上面任意一个谎言,你需要干净的 Point-in-Time 底层数据、严防未来函数的撮合引擎、以及足够强的代码能力去重构它的多组对照实验。一个普通投资者看到那条 304% 的曲线,根本没有能力、也没有工具和时间去验证——他唯一的选择,是"信"或者"被坑"。

造假成本被压到接近零,证伪成本高到个人无力承担——当这两条曲线交叉,散户就成了必然的输家。 这正是"你自己再跑一遍"听起来正确、却几乎无法执行的原因。

十、AI 合流:造假第一次实现工业化

大模型能批量吐出"看起来很专业"的代码、研报腔的文案、像模像样的净值图,再从中海选出最亮眼的幸存者——它天然自带"叙事合法性"。AI 幻觉喂给回测幻觉,再包装成叙事幻觉,注水内容的产量会指数级上升。 这才是这个时代真正的新变量。

激励错位清醒的转卖者击鼓传花策略庞氏验证的代价AI 合流
📖 关联术语:过拟合

第 4 章

收篇 · 怎么办——默认为假,系统证伪

给出五层证伪审查流程、数据/统计/执行三道不可妥协的关口、叙事证伪六问与壹信量化四条验证铁律——在独立证据出现前,回测曲线上的每一个百分点都是待证伪的假设。

4.1 收篇 · 怎么办——默认为假,系统证伪

收篇给出系统性防范:一个严肃的回测审查,不应从"这个策略有没有 bug"开始,而应从"它的优势在独立证据出现之前,默认是假的"开始。所有结论仅供研究参考,不构成任何投资建议。

收篇 · 怎么办——默认为假,系统证伪

一个严肃的回测审查,不应从"这个策略有没有 bug"开始,而应从**"它的优势在独立证据出现之前,默认是假的"**开始。

十一、五层证伪审查(技术层)

  • 第一层 代码静态审计:查 avoid_future_data 是否开启、财务是否用公告日、ST 是否用 get_extras、成分股是否传历史日期;但静态审计抓不住同 bar,需动态探针(如把当日收盘价置 NaN,看信号是否仍产生)。
  • 第二层 前视偏差审计:用"含退市股的全历史宇宙"重跑,与"当前存活股宇宙"对比;追问轮动池标的在回测起点是否已存在。
  • 第三层 过拟合检验:PBO 度量"挑峰挑出了多少",Walk-Forward 看"参数在滚动样本外是否稳定",去通胀夏普(DSR)看"试了 N 次后夏普是否仍显著"。
  • 第四层 执行层压力测试:把零滑点改成比例滑点看衰减曲线;在 100 万至 5000 万多档资金重跑画"规模—收益"曲线;显式建模封板废单路径。
  • 第五层 逻辑完整性审查:追问"它真的是它声称的那个策略吗"——声称市场中性的确认它两端都有暴露,声称均值回归的确认平仓对应回归到均值。

十二、三道不可妥协的关口

  • 数据关口:一切数据以"回测时点是否已公开可得"为唯一准入;财务用公告日、ST 用 get_extras、成分股用历史参数;平台给不出历史时点语义的概念归属,就放弃概念筛选。
  • 统计关口:PBO + WFA + 去通胀夏普,三者缺一不可。
  • 执行关口:容量测试、滑点压力测试、A 股制度约束(融券券源有限、T+1、涨跌停)。统计干净但执行不可行的,在当前制度下就不是可实盘策略。

十三、叙事证伪六问(前置闸门)

面对叙事与激励层,追问本身常常无效——他不为说服你,而为表演给下一个接盘者看。所以先问六句,把力气精准留给真正值得跑的策略:

  1. 它展示的曲线,和我能拿到的代码,是同一份吗?
  2. 有没有人真的完整跑通过?跑通的日志、成交明细在哪里?
  3. 给我看的是全部周期,还是只挑了最好的一段?熊市那半年呢?
  4. 它是逻辑驱动设计出来的,还是批量海选出来的幸存者?
  5. 分享它的人,和我的利益一致吗?有没有变现诉求?
  6. 如果大家都知道它有水分,那真正拿它做实盘的还剩多少人?

十四、壹信量化的四条验证铁律

这不是口号,是我们每一天的工作准则与交付底线:

  1. 只信独立复现的结果,不信任何二手结论。 任何策略、社区帖、"大神推荐",进入流程第一步永远是原样复现;带完整日志、可回溯的跑通记录才算证据。
  2. 同窗对照、逐臂归因,给每一个缺陷标价。 不输出"好像有问题"的模糊判断,只给可量化结论:在指定区间、指定规模下,某缺陷贡献了多少百分点的虚假收益。
  3. 宁可交付一条难看的真曲线,绝不输出一条漂亮的假曲线。 用户来这里是想知道真实的风险与收益边界,而不是看一条赏心悦目的假图。
  4. 所有交付均可复核、可回溯、可复现。 每份报告附完整参数、数据口径与运行日志,用户可用自己的环境原样重跑。

十五、我们是谁:选股之后的那道验证器

你的工具链里,有选股的、有看盘的、有交易的,唯独缺一个环节,帮你检验"选出来的逻辑本身有没有陷阱"。壹信量化(IntoQuant)补的正是这一环——不是替代你现有的工具,而是在"选"和"买"之间加一道质检。 四不原则:不荐股、不给买卖点、不托管账户、不代客理财。 别人在卖"让你相信的筹码",我们只提供"让你证伪的工具"。

结语:诚实,是这条赛道最贵的护城河

回测幻觉让你以为策略很强;叙事幻觉让你根本不去怀疑它强不强;而激励幻觉最狠——它让整个市场心照不宣地一起装睡。在击鼓传花的市场里,最稀缺的不是"年化翻倍的策略",而是一个还敢说"我没跑通"的人。

回测不是证据,是待证伪的假设;叙事不是证据,是待证伪的广告。在击鼓传花的游戏里,唯一的证据,是你自己亲手跑出来的那一份。

附:作弊点 · 基本特征 · 防范要点总表

前面逐层拆过的作弊点,收拢成一张可对照、可执行的检查表。作弊沿三层递进加深:偷信息(数据与技术层)→ 偷印象(执行与叙事层)→ 偷信任(激励与生态层)。技术工具能查前两层,第三层只能靠"默认存疑 + 独立复现"来防。

阅读提示:下列表格较宽,在手机等窄屏上可在表格区域内 ← 左右滑动 → 查看完整列。

偷信息 · 数据与技术层

# 作弊点 基本特征(表现 / 识别信号) 防范要点
1 同 bar 信号与成交 SAME_BAR 09:30 用"当天收盘价"算信号、按"当天开盘价"成交;同时用到一根 K 线两端决策时点不可得的信息;avoid_future_data 拦不住 动态探针:把当日收盘价置 NaN,看信号是否仍产生
2 直接读取未来日期 FUTURE_RET get_price(..., end_date=今天+N);用未来区间收益反推当前选择(含"未来收益造标签训练模型") 静态审计未来调用;标签只用 T-1 前可得数据
3 财务"报告期—披露期"错位 statDate='2023Q1'=1 月 1 日就知 3 月底才结束、4 月才披露的数据 一律用公告日而非报告期作截面时钟
4 股票名称里的"未来 ST" 名称字段返回当前名称,2023 才 ST 的票在 2019 截面已显示 ST,"提前"过滤掉 用 get_extras('is_st', end_date=T-1) 取按日历史
5 幸存者偏差 写死静态股票池 / get_all_securities() 不传历史日期;价值筛选最易选中退市股 用"含退市股的全历史宇宙"重跑,与存活宇宙对比
6 指数成分股时点错配 事后选涨幅最大的标的作轮动池=用未来赢家构造过去宇宙 追问池内标的回测起点是否已存在
7 回测起点刻意选择 起点牛市底、终点牛市顶,"年化 40%、回撤 8%"只是区间产物 跨多段牛熊窗口重跑,检查起点敏感性
8 参数挑峰 核心参数落在凸型敏感性曲线峰顶、两侧迅速衰减 算 PBO;看参数是否孤立尖峰
9 条件空间膨胀 从 2 条件膨胀到数百旋钮,"恰好有效"成统计必然;伪条件(volume_pulse=False 恒真) 精简旋钮、警惕"为复杂而复杂";记录尝试次数
10 PBO 缺席 从没算过"样本内最优在样本外跌破中位数的概率" 必算 PBO(CSCV 框架把尝试次数纳入)
11 辛普森悖论 单变量"有效"的买入方向,多因子联合环境里完全逆转 联合环境验证,不迷信单变量结论

偷印象 · 执行与叙事层

# 作弊点 基本特征(表现 / 识别信号) 防范要点
12 零滑点与流动性幻觉 set_slippage(FixedSlippage(0));固定/比例滑点混用(2 元股 0.02 元固定滑点=1%) 改比例滑点(如 0.003)看收益衰减曲线
13 涨跌停过滤器时序错位 09:30 用 09:31 分钟线收盘价与 high_limit 比较再下单;未建模封板废单 显式建模委托—封板—废单路径
14 冲击成本与容量缺席 小微盘、10% 单票、每日调仓却没做容量测试;100 万 40%→5000 万只剩 5% 100 万—5000 万多档重跑,画"规模—收益"曲线
15 "配对交易"只做多版本 只买不空,赚的是单边市场 beta 而非价差回归;标题却叫"配对交易" 确认多空两端都有暴露,核对名实一致
16 无回归平仓的 zscore −2 买、+1 卖、从不回归到 0 平仓;100% 胜率是"小赚多、大亏少"偏态副产品 检查平仓是否对应"回归到均值"
17 伪风控模块 get_industry 恒返回 default、min_weight 不执行、risk_check 只写日志;比没风控更危险 逻辑完整性审查:风控是否真生效
18 Alpha 来源结构性消亡 小市值因子 2017—2023 有效,2024 微盘踩踏后交易结构根本改变 回测区间须覆盖该 Alpha 完整生命周期
19 宣传口径与交付物分离 首页曲线是精修版,能克隆的是删减 Lite 版;文末一句"分享的是简化版" 核对"展示的曲线"与"给你的代码"是否同一份
20 未经验证的二手转发 "我帮你们筛选好了、直接能用",转发者一次完整回测都没跑过 只信带日志、可回溯的跑通记录
21 选择性展示 只贴牛市区间、只放最优参数、只展示净值不标最大回撤 要求全周期、全参数、含回撤口径
22 批量海选后的幸存者 批量生成上百个、挑最好看的发布=策略级多重检验 追问是逻辑驱动设计还是海选产物
23 用热度代替有效性 高赞/大 V/专栏光环=传播力,不是可复现性 忽略热度,独立复现是唯一标准

偷信任 · 激励与生态层

# 作弊点 基本特征(表现 / 识别信号) 防范要点
24 清醒的转卖者 作者明知假,克隆不为实盘,而为骗下批人/赚积分/换曝光 把内容分发层默认视为敌对环境
25 击鼓传花 / 激励错位 "分享只为积分""求回粉";假而吸睛系统性跑赢真而平庸,劣币驱逐良币 不采信任何二手结论
26 策略庞氏 A→B→C 层层转卖"下一个人的相信",无人打算真交易 追问分享者与我的利益是否一致
27 验证的代价 造假成本趋零、证伪成本高到个人无力承担,两线交叉散户必输 依赖独立第三方验证器,而非自证
28 AI 合流工业化 大模型批量生成"看着专业"的代码/文案/净值图再海选,注水产量指数级上升 对"叙事合法性"保持默认存疑

防范体系总纲

层次 工具 要点
五层证伪审查 静态审计→前视审计→过拟合检验→执行压力测试→逻辑完整性审查 逐层穷举优势来源,逐一要求独立证据
三道不可妥协关口 数据(Point-in-Time)/ 统计(PBO+WFA+去通胀夏普)/ 执行(容量+滑点+A 股制度约束) 数据关口失守后续无法修复
叙事证伪六问 曲线与代码同一份?有人真跑通?全部还是精选?设计还是海选?利益是否一致?实盘还剩多少? 前置闸门,把力气留给值得跑的策略
四条验证铁律 只信独立复现 / 同窗对照逐臂归因给缺陷标价 / 宁交付难看真曲线 / 可复核可回溯可复现 默认为假,独立验证

一句话收口:作弊从"算错"(偷信息)→"讲得好听"(偷印象)→"明知假也传"(偷信任)层层加深;回测不是证据,是待证伪的假设——唯一的证据,是你自己亲手跑出来的那一份。

五层证伪Point-in-TimePBOWalk-Forward叙事六问验证器定位
📖 关联术语:过拟合

❓ 本章常见问题

回测陷阱、量化幻觉、交易作弊、策略避坑……这些说法是一回事吗?

它们指向同一类问题——策略回测结果失真、实盘无法兑现。这些词由"对象 × 性质"组合而成:对象可以是回测 / 量化 / 交易 / 策略 / 选股 / 实盘 / 因子 / 收益 / 净值,性质可以是隐患 / 陷阱 / 幻觉 / 作弊 / 错误 / 瑕疵 / 避坑 / 造假 / 失真 / 注水 / 虚高。侧重略有不同:"幻觉"强调漂亮曲线给人的错觉,"陷阱 / 隐患"强调潜伏的坑,"作弊 / 造假"强调有意或无意的造假手法,"错误 / 瑕疵"强调代码或口径缺陷,"避坑 / 避雷"强调防范。本篇统一用"回测幻觉"作为总称,按偷信息、偷印象、偷信任三层拆解,并给出可执行的防范清单。

回测收益很高、实盘却亏钱,是回测错误还是回测瑕疵?

两者都可能,关键看是否可复现。回测错误多指未来函数、同 bar 成交、财务披露期错位等"用了当时不可得信息"的硬伤;回测瑕疵多指零滑点、忽略容量、选择性展示等"口径偏乐观"的软伤。排查顺序:先做数据时点审计(Point-in-Time),再做统计检验(PBO / WFA),最后做执行压力测试(滑点 + 容量),逐层给缺陷标价。

新手做量化,怎么系统性地回测避坑?

记住"默认为假、独立验证":① 任何漂亮曲线先当假设、不当结论;② 用五层证伪(静态→前视→过拟合→执行→逻辑)逐层排查回测隐患;③ 守住数据 / 统计 / 执行三道关口;④ 面对社区高赞策略先过"叙事六问",只信自己亲手跑通、带日志可回溯的那一份。文末附 28 个作弊点对照总表,可逐项自查。

📝 本书拆解博文(3 篇)

每篇对应本书一个小节,独立阅读,文末链回本书。

📌 结语

回测不是证据,而是待证伪的假设;叙事不是证据,而是待证伪的广告。在 PBO、WFA、容量测试与制度审查这四组证据同时出现之前,回测曲线上的每一个百分点都应被看作待证伪的假设、而不是待变现的收益。比"找到未来函数"更重要的,是穷举优势的每一种可能来源并逐一要求独立证据——而在击鼓传花的游戏里,唯一的证据,是你自己亲手跑出来的那一份。

📎 附录

本文所有案例均基于公开量化社区典型策略的逐行审查、独立复现与方法论拆解,所有引用数字为特定历史区间的客观记录,不构成任何投资建议。完整存档版本收录于壹信量化官网「量化书院—特约专栏」。

本文为个人策略研究复盘,所有结论基于特定历史区间与回测口径,不构成任何投资建议,不推荐任何个股,历史回测不代表未来收益。市场有风险,决策需独立。

📚 相关推荐