第 1 课
代码里有个 8,就会更走运吗?
把一个关于幸运数字的随口猜想,写成允许被数据反对并能提前固定规则的研究假设。
蛙兄又打开了上一次画好的 K 线图。
图上的虚构公司叫“晨塔绿境”,代码是 003382。
他本来只是想看看自己画出的第一张 K 线,目光却停在了股票代码上。
“这里有个 8。”
蛙兄托着下巴看了一会儿。
“8 听起来挺吉利。代码里带 8 的股票,会不会真的更容易上涨?”
蛙博士没有笑,也没有马上反驳。
他拉过一张空白纸,在最上面写下:
代码里带 8 的公司,历史表现会不会比不带 8 的公司更好?
“这听着还是有点像胡话。”蛙兄说。
“可能是。”蛙博士点点头,“但在量化世界里,判断它是不是胡话以前,我们还可以先做一件事。”
“测一测?”
“先把你到底想测什么,说清楚。”

感觉、问题和假设,不是同一句话
蛙兄一开始的感觉是:
代码里有个 8,听起来挺吉利。
这当然可以成为研究的起点。但它还没有告诉我们要比较谁,也没有说“更吉利”究竟是什么意思。
把它往前推一步,就会变成一个可以讨论的问题:
代码里带 8 的公司,历史表现会不会比不带 8 的公司更好?
问题有了,接下来还要写下一个明确的猜测:
在 Hoppy 虚构教学数据中,股票代码里带有数字 8 的公司,在我们选定的历史期间里,整体价格表现会比代码不带 8 的公司更好。
这就是我们这次准备验证的假设。
假设不是已经被证明的答案,也不是非赢不可的赌注。它只是我们在看数据以前,先把自己的猜测写了下来。
后面的数据可能支持它,也可能反对它,还可能给出一个含含糊糊的回答。
无论是哪一种,研究都没有白做。
一个可以研究的假设,必须允许数据回答:“你可能猜错了。”
光有假设还不够
蛙兄看着纸上的假设,觉得事情已经说清楚了。
蛙博士却问他:
“如果带 8 的公司平均涨得更多,但上涨的公司反而更少,算谁赢?”
“那就……看平均数?”
“如果平均数不好看,中位数好看呢?”
“那也可以看中位数。”
“要是两个都不好看,我们再试试数字 6?”
蛙兄沉默了两秒。
“这样好像总能挑到一个对我有利的答案。”
问题就在这里。
如果先看见结果,再决定怎样分组、看哪段时间、用哪个数字判断,我们很容易把研究改成一场“答案挑选大会”。
这就像蛙兄在运动会前猜蓝队会赢百米赛跑。
比赛结束以后,他发现蓝队输了,于是改口:
“我说的是两百米。”
两百米也输了,他又说:
“其实我比较的是谁的队服更好看。”
只要终点可以一直搬,蛙兄永远不会输。但这场比赛也永远不会有答案。
所以,假设写下来以后,还要在比赛开始前把赛道画好:谁和谁比、比哪一段、怎样才算表现更好,以及哪些东西这次不看。
这就是固定规则。
这次比赛,规则先这样定
蛙兄和蛙博士把这次实验写在了同一张纸上。
- 比较谁: 只研究 Hoppy 教学数据里的虚构公司,不涉及任何真实股票。
- 怎样分组: 代码中只要出现字符
8,就进入“带 8 组”;其余公司进入“不带 8 组”。 - 先看哪段时间: 先研究 2021-01-04 至 2022-12-30。
- 哪段时间留到最后: 2023-01-03 至 2023-12-29 暂时不参与第一次结果,等前面的判断写下以后再打开。
- 谁能参加: 公司需要在两次比较所用时间的起点和终点,都有可用的复权收盘价。这样前后比较的会是同一批公司。
- 怎样看表现: 同时查看公司数量、平均收益、中位数和正收益比例,再用最大值和最小值留意有没有特别夸张的公司。
- 这次不看什么: 不换成
6、9或其他数字,不临时加入行业、市值、PE,也不与沪深300比较。
这些约定不是为了把一件小事写得很正式。
它们只是帮我们守住同一个问题:等结果出现以后,不偷偷换数字,不临时改日期,也不只挑一句自己最爱听的话。
至于平均数、中位数和正收益比例分别在说什么,现在不用急着记。等真实结果摆到桌上,我们再慢慢拆开看。
还有一年数据,先别看
教学数据包里一共有三年日线数据。
前两年会先用来完成这次比较,2023 年的数据则暂时放进一个信封里。
蛙兄刚想拆开,蛙博士把信封按住了。
“反正 2023 年早就过去了,为什么不能一起看?”
“因为一旦看过答案,它就会影响你怎么想。”
我们会先根据前两年的结果,写下第一次判断。然后再反过来问:
这个差异会不会只是碰巧出现在前两年?
到那时,我们不换数字、不改日期或计算方法,也不换一套更顺眼的指标,只把原来的规则拿到 2023 年再测一次。
这段暂时没参与前期分析的数据,就像给第一次结果准备的一次复查。
它不能替我们预测真正的未来,但至少可以看看:同一个说法换一段数据以后,还站不站得住。

接下来,我们会把这条路完整走一遍
到目前为止,桌上只有一份假设和一张实验约定,还没有任何收益结果。
接下来,我们会依次做几件事:
提出假设
→ 固定规则
→ 让 AI 用数据验证
→ 查看结果
→ 质疑结果
→ 用暂时保留的数据再验证
→ 写下一个有边界的暂时结论
→ 判断这条线索该继续、修改还是停止
今天,我们站在最前面的两步。
下一步,AI 会按照这张约定,把虚构公司分成两组,计算前两年的结果。
结果出来以后,我们不会急着宣布“8 果然有用”或者“这个想法真荒唐”,而是先看平均数、中位数、正收益比例和极端值分别说了什么。
最后,我们还要拆开那封装着 2023 年数据的信,看看原来的差异换一段时间以后是否还存在。
两段证据都摆上桌以后,我们还要做最后一件事:决定这条线索值得继续观察、换个问题重新研究、进入更完整的回测,还是应该停在这里。

蛙兄把写好的假设和规则压在键盘旁边,又把 2023 年的信封收进抽屉。
“所以,我们不是要想办法证明 8 很神奇?”
“不是。”蛙博士说,“我们只是先写下一个猜测,再给数据一次反对它的机会。”
蛙兄点点头。
现在,问题没有变得更正确。
但它已经变得可以被检验了。
我们不是从数据里寻找一个有趣故事,而是先写下一个允许数据反对的假设,再固定判断它的方法。
课后讨论
留下你的问题、理解或不同意见,也看看其他学习者怎么想。