跳转至

第 13 课 把想法写成可检验问题

研究从一句观察开始,却要在看结果以前把对象、时间、规则、比较方式和放弃条件写清。

适合谁准备研究第一条策略的读者
前置知识第 9 至 12 课,理解市场、数据、收益与风险
建议用时90 分钟
本课成果一张能够交给别人复查的策略研究卡

一句话为什么还不能成为研究

小岚观察到,最近上涨较快的股票似乎还会继续强一阵。她把这句话交给两位同学,请他们独立写程序。第一位把“最近”理解为五个交易日,收盘买入后持有一天;第二位使用过去六个月的涨幅,在每月末选择排名靠前的股票并持有一个月。两段程序都能运行,也都声称研究了“强势股票”,结果却没有共同含义。

自然语言允许人们依靠语境补充细节,研究规则必须把这些细节变成可以核对的决定。研究对象是谁,观察多少期,强势怎样计算,相对于谁比较,信息在何时完整,订单何时进入市场,持有多少,怎样计算费用,什么结果才算支持原想法。只要其中一项仍然含糊,代码就会替研究者悄悄作出选择。

量化研究的第一项工作是把观察改写成一个可检验问题,调参数与运行回测都要等到问题明确以后。可检验表示数据可能支持它,也可能让我们放弃它。若任何结果都能被解释成“策略仍然有效,只是市场特殊”,这句话便没有接受证据反驳的空间。

从市场现象走向研究假设

市场现象是研究者反复观察到的一类表现,例如过去一段时间相对较强的资产,有时会在随后一段时间继续保持相对强势。这类现象通常称为动量。现象只告诉我们“可能存在什么”,没有说明原因,也没有保证在当前市场、费用与样本中仍然成立。

研究假设是一条可以被数据检查的具体说法。它需要把现象放进明确的对象、时间和比较关系中。我们先为贯穿本课的案例写一版草稿。

贯穿案例
在每个交易日当时可交易的流动性较好资产中,过去约一个交易月相对涨幅较高的资产,在接下来一个交易周里是否仍比同日其他候选资产表现更强。这是一项等待检验的教学假设,不是市场事实,也不构成投资建议。

这句话已经比“强势股票还会涨”具体,但仍有待决定的内容。一个交易月用多少个交易日近似,流动性较好怎样筛选,相对涨幅与谁比较,未来一周如何衡量,订单使用什么价格,费用按什么口径。这些空白要在研究卡中逐项展开。

市场故事帮助我们提出会失败的条件

研究者常为现象寻找可能机制。机制是一条解释链,说明参与者行为、制度限制或风险承担怎样产生可观察结果。动量的一种解释是信息扩散需要时间。新信息出现以后,投资者理解和调整持仓的速度不同,价格可能逐步反映变化。另一种解释认为,趋势持有者承担了在市场转折时快速亏损的风险,历史回报可能包含风险补偿。

机制不能代替统计证据,它的价值在于推导边界。如果现象来自缓慢的信息反应,效果可能在有持续信息流、交易摩擦不太高的资产中更容易观察;若交易成本很高,信号即使存在也可能无法进入净收益;市场突然反转时,追随过去强势的组合可能集中受损。数据若持续违背这些推论,原来的解释就要修改或放弃。

只从大量指标里挑一条曲线,再事后编写市场故事,会把历史偶然包装成事先判断。较稳妥的顺序是先写观察与可能机制,再规定主要检验和失败环境,随后才打开结果。探索数据当然允许产生新想法,但新想法要被标记为探索结论,并交给新的时间段再次检查。

把含糊词逐个改成可计算决定

研究对象要有历史边界

“股票”需要说明市场、币种、资产类型与历史资格。教学案例可以规定,每个日期只从当时已经上市、没有停牌并满足最低成交活跃度的资产中选择。这个每日变化的范围叫作候选池。第 10 课已经说明,候选池必须使用当时记录,不能拿今天仍然存活的清单替换过去。

流动性筛选也要提前定义。可以使用过去二十日平均成交额,并且只采用截至信号日已经形成的数据。阈值来自市场容量与教学简化,而不是看到回测以后挑出最有利数字。真实研究还要说明自己的订单规模相对于成交额有多大。

最近与强势需要明确起点

一个交易月常近似为二十个交易日,因此案例先用二十日收益描述近期变化。某资产今天复权收盘价为 10.50 元,二十个交易日前为 10.00 元,二十日收益就是 10.50 除以 10.00 再减 1,得到 5%。复权价格负责保持公司行动前后的收益口径连续。

过去二十日涨幅 = 今天复权收盘价 ÷ 二十个交易日前复权收盘价 - 1
本例      = 10.50 ÷ 10.00 - 1 = 5%

“相对强势”还需要比较对象。若同一天大多数资产上涨 10%,只涨 5% 的资产虽然绝对上涨,却处于候选池后部。截面比较会在同一个日期把候选资产按二十日收益排序,选择排名靠前部分。截面表示同一时点横向比较多个对象,与沿着一只资产的时间变化相区别。

接下来仍强要先规定观察终点

我们把“接下来一阵”暂定为未来五个交易日,并比较入选资产与同日候选池平均表现。未来五日结果只能在五天以后得到,它在研究中负责判断过去信号是否有信息,不能回到信号日参与选股。

这种用来检查预测目标的未来结果叫作标签,机器学习部分会在第 25 课详细解释。当前只需保持时间分工。信号日在左侧,订单与持有期向右展开,未来结果到期后才用于评价。任何计算标签的代码都不能把未来价格混入信号列。

订单与组合把判断接到账户

二十日收益要等当天收盘后才能完整,因此案例把买入安排在下一交易日。初版只选择排名前五的资产,每项分配相同资金,也就是等权持有。这样少了一个仓位优化问题,可以先把注意力放在信号与成交上。持有五个交易日后退出,重复信号与无法成交的处理也要写进规则。

等权不是最优结论,它是一条容易解释的起点。若选择五项,每项目标权重为 20%。后面可以研究波动率控制或风险预算,但复杂权重会同时改变现象、换手和风险,第一版先让选择逻辑保持清楚。

基线告诉我们新规则增加了什么

策略得到正收益时,市场本身可能上涨得更多;复杂模型超过现金,也可能仍然不如简单持有。用来比较新方法的简单对手叫作基线。基线必须使用相同数据区间、费用、候选池和风险预算,否则比较差异可能来自条件不公平。

动量案例可以安排三层基线。第一层是等权持有同一候选池,用来区分普遍市场上涨与选股效果。第二层只使用二十日涨幅,不加入其他过滤条件,用来判断新增规则是否提供额外信息。第三层在相同日期随机选择同样数量资产并重复多次,用来观察没有信息的选择会产生多宽的结果范围。

基线越简单,越容易复现和解释。复杂方案若无法稳定超过合理基线,新增数据、参数和模型就没有获得充分依据。研究者仍可以保留探索结果,但报告要承认复杂度没有带来可重复的增量证据。

参数需要来路,也需要邻近检查

二十日观察窗和五日持有期只是与“一个交易月”和“一个交易周”相近的教学设定,不是神奇数字。参数是规则中能够被选择的数值,例如观察天数、排名比例和持有天数。参数可以来自研究问题的时间尺度、市场制度、公开研究或执行限制,来源要写在卡片上。

一个稳健现象通常不会只在精确的单个数字上存在。二十日稍微改成十五日或二十五日,结论可以变弱,却不应毫无原因地完全翻转。围绕主要参数检查一小片合理范围,叫作邻近检查。它用于发现结果是否像一根只在特定点竖起的尖针。

邻近检查也会使用历史信息,所以尝试次数必须记录。一次试验不满意就继续扩大搜索,最终总会碰到某个漂亮组合。只有公布冠军参数而不报告参加过多少候选,会夸大证据。第 16 课会把这种多次尝试造成的过度拟合讲清。

放弃条件要在结果出现以前写下

可检验假设需要允许失败。研究者看到不理想结果以后,很容易增加过滤器、改起止日期或换一套费用,让曲线重新变好。提前写下停止或放弃条件,可以减少这种事后修补。

本例可以先规定四类失败。合理费用下,后期未参与开发的数据没有超过等权基线;优势几乎全部来自少数资产或少数日期;观察窗口从二十日小幅移动后结论方向翻转;恢复历史候选池、停牌和成交限制后,原优势消失。任何一项发生,都要先停下来解释,不能立刻把考试数据用于下一轮调参。

放弃一条假设不代表研究没有价值。它说明检查成功暴露了边界,也为下一项问题留下证据。市场研究面对不确定性,知道什么不值得继续投入,与找到暂时值得深入的方向同样重要。

九格研究卡把决定集中到一页

格子 需要回答的问题 动量案例的第一版
现象 观察到了什么 近期相对强势可能短期延续
机制 为什么可能出现,何时可能失效 信息缓慢扩散,快速反转与高成本可能削弱
市场 在哪里研究,历史对象怎样进入 当日可交易且达到流动性要求的候选池
数据 使用哪些字段,何时可见 时点候选池与复权日收盘价
信号 怎样把过去信息变成分数 同日比较二十日收益排名
订单 信息形成后何时、怎样交易 收盘算信号,下一可交易时点执行
组合 选择多少,怎样分配与退出 前五项等权,持有五个交易日
验证 怎样安排基线与未见数据 等权和随机基线,按时间切分并滚动复查
放弃 哪些结果会停止研究 扣费后无增量、结果过度集中或参数极脆弱

第一版允许出现“待确认”,因为暴露未知项比让代码默认决定更诚实。正式运行主要回测以前,应把会改变时间、交易与评价的待确认项解决。卡片还要保存版本号,参数、数据或规则改变以后生成新版本,旧卡不能被覆盖。

研究记录保存试验怎样长出来

研究记录与课堂学习笔记承担不同职责。它只保存会影响实验解释的决定,例如修改日期、修改原因、当时看过哪些结果、下一步准备做什么。几周以后,研究者可以根据记录数清已经尝试过多少版本,也能区分事先计划与看完结果后的探索。

日期 2026-08-06
版本 MOM-003
修改 把主要观察窗保持为 20 日,增加 15 日与 25 日邻近检查
原因 检查结论是否依赖精确参数
已看结果 只查看研究期,后期测试仍保持封存
下一步 冻结规则和费用口径,再运行滚动验证

记录失败、报错和负结果非常重要。若最终只保留最好版本,后来的人会误以为它是第一次尝试的结果。完整试验轨迹能让读者重新评估所谓最佳结果中包含多少选择机会。

让 AI 先当提问者

AI 很容易根据含糊想法补出一段完整代码,缺失的市场、时间和费用选择也会被它一起补上。第一轮协作可以明确禁止写代码,让 AI 只负责寻找研究卡空白与内部矛盾。

我想研究“过去一段时间相对强的资产,未来几天是否继续相对强”。现在不要写代码,也不要推荐最优参数。请作为研究审稿人,按照市场、历史候选池、数据可见时间、信号、订单、组合、成本、基线、验证与放弃条件逐项提问。每个问题后说明,如果不回答,回测可能产生什么误解。无法从我提供的信息确认的内容必须标为待确认。

你负责回答并核对问题,AI 可以把答案整理成研究卡,也可以寻找“收盘后计算却按同日收盘成交”这类冲突。交易所制度、数据商字段和费用仍要回到正式资料确认,不能让 AI 根据常识猜测。

在网页里完成第一张研究卡

AI 研究卡实验会依次询问市场、数据时间、信号、成交、成本、基线和放弃条件。内容只保留在当前浏览器中,可以复制为 Markdown 后纳入毕业项目。填写时先允许未知项存在,再为每个未知项写下一条查证途径。

打开 AI 研究卡

把另一句话收紧
请把“跌得太多会反弹”改成可检验草稿。至少补上资产范围、观察窗口、反弹期限、订单时间、比较基线和一项放弃条件。先独立写完,再查看参考。
查看参考写法 在每个日期当时可交易、成交活跃度达到预设要求的资产中,选出过去五个交易日收益排名处于最低十分之一的对象,从下一交易日可执行时点建立等权组合,并观察随后三个交易日相对于同日候选池的表现。若扣除费用后不能稳定超过同数量随机选择,或结果几乎只来自少数暴跌后的反弹日,就停止当前版本。流动性阈值、重复信号和成交假设仍需继续确认。

容易弄错的地方

容易发生的做法 它怎样改变研究 应留下什么约束
先找赚钱参数,再补市场故事 把历史偶然写成事先判断 先写机制、主要参数与失败环境
只要策略上涨就宣布有效 市场或简单持有可能涨得更多 使用同区间、同费用和同风险的基线
样本外不好就继续调整 最终考试被反复使用,逐渐变成开发数据 打开前冻结规则,失败后启用新数据
覆盖旧版本,只保存冠军 尝试次数消失,证据被夸大 每次修改生成版本并保留已看结果
放弃条件写成“表现不好” 别人无法判断何时触发 指明数据区间、费用口径、基线和阈值

一分钟自测

“买入强势股票”能否直接成为完整研究问题?

查看答案 不能。强势的计算窗口、历史候选池、相对比较对象、信号形成时间、订单、持有期、费用、基线与放弃条件都没有说明,不同研究者会得到不同规则。

本课术语

词语 先这样理解
市场现象 在一类数据中反复观察到的表现
研究假设 可以由数据支持或反驳的具体说法
机制 解释参与者行为、制度或风险怎样产生现象的链条
候选池 某个历史日期当时有资格被策略选择的资产范围
截面 在同一时点横向比较多个对象
基线 新方法需要面对的简单比较对象
参数 规则中需要预先选择的数值设置
放弃条件 事先约定哪些结果会停止当前研究版本

课后练习

1 区分现象与假设

“低价股票经常反弹”为什么仍然更接近观察,而不是完整假设?

提示检查低价、股票范围、反弹期限和比较对象是否已经定义。
答案这些关键词仍然含糊,也没有说明数据时间、订单、成本与失败条件,因此还不能被另一位研究者重复检验。

2 收紧一个参数

把“最近上涨较多”改成一个可计算定义,并说明参数来路。

提示可以使用交易周或交易月对应的日数,但要写清比较起点。
答案一个示例是“过去二十个交易日复权收盘价收益处于当日候选池前十分之一”。二十日近似一个交易月,仍需做邻近检查。

3 识别考试污染

研究卡写着“后期测试不理想就继续调整,直到后期结果改善”。问题在哪里?

提示反复看答案会怎样改变这份数据的角色?
答案后期测试会逐渐参与规则选择,从最终考试变成新的开发数据。应记录失败,修改后的版本使用新的未见数据再次检验。

4 动手填写

打开研究卡实验,为自己的一个想法填写九格内容,并至少保留一个明确的待确认项。

提示待确认项要附上查证途径,例如交易所规则、数据字典或费用表。
答案答案因问题而异。完整卡片至少覆盖市场、数据时间、信号、订单、组合、成本、基线、验证和放弃条件。

5 开放思考

市场故事与统计结果冲突时,研究者应怎样处理?

评价要点先检查数据、代码和实验设计。若实现无误而证据仍不支持机制,应记录冲突并修改或放弃假设,不能只挑选支持故事的区间。新解释需要新的可检验后果和未见数据。
离开本页前
一句市场观察走到这里,已经有了研究对象、所需数据、信号与订单规则,也有了比较基线和放弃条件。把填好的研究卡交给另一位同学,如果他不需要猜测窗口、成交和费用就能复述实验,问题才算写到了可以回测的程度。