HoppyQuant
EN

第 1 课

一次量化研究,到底要走多远?

从会随时间出现的九拍计数出发,认识从猜想、事件研究到规则与留出验收的完整路线。

有一天,蛙兄在股票 App 里翻看 K 线。

价格涨涨跌跌,看起来和平时没什么不同。可在几根 K 线的上方和下方,零零散散地标着一串数字:

1、2、3、4……8、9

“谁在 K 线上做数学题?”

蛙兄点开旁边的说明,发现这是一种从 1 数到 9 的技术计数。至于到底怎么数,不同软件可能还有不同答案。

为了后面的研究不再鸡同鸭讲,我们把课程里即将固定的这套规则叫作:九拍计数。它分为上行和下行两种,但两种都是从 1 数到 9,不是一个顺数、一个倒数。

蛙兄盯着“下行九拍”看了一会儿,突然冒出一个大胆的猜想:

如果一只股票已经走完了下行九拍,是不是说明它已经跌得差不多了?

要是每次都在下行九拍完成以后买入,会不会更容易赚钱?

理由也很简单。

抄底嘛。

蛙兄把这个想法告诉了蛙博士。

“你怎么知道那里就是底?”蛙博士问。

“都已经从 1 数到 9 了,还不能算跌到位吗?”

“当然可能跌到位了。”蛙博士说,“也可能只是数到了 9。”

蛙兄又看了看屏幕上的数字。

“所以,还是得测一测?”

“当然。”蛙博士说,“不过这次,我们不只想知道它在历史上有没有一点优势。我们还想看看,这个猜想能不能一步步变成一套说得清楚的买卖规则。”

蛙兄在股票 App 中发现九拍计数,并冒出了抄底的猜想。
图 1|蛙兄从九拍计数中提出下一轮市场猜想。

上一次的量化闭环,没有白走

上一次,我们把虚构公司分成“代码带 8”和“代码不带 8”两组。

我们先把猜想和规则写清楚,再让 AI 读取数据、比较结果、查看分布、质疑差异,最后还打开了一段事前留下的数据。

这已经是一个真正的量化研究小闭环。

它帮我们回答的是:

某个固定特征,在这份历史数据里有没有出现表现差异?

九拍研究却多往前走了一步。

股票代码不会今天有 8、明天又没有 8。九拍则会随着每根 K 线变化,同一只股票还可能在不同时间出现多次。

更重要的是,我们不再只想知道“历史上有没有差异”,还想将这个差异一步步变成可以执行和回测的规则。

问的问题变了,研究要走的路自然也更长。

代码中的数字 8 是固定特征,而九拍是会随时间出现的事件。
图 2|固定特征与随时间发生的事件,研究对象不同。
本章重点

最小量化闭环不是没用的半成品。它能帮我们初步排除坏想法。当我们还想把一条弱规律变成可执行策略时,才需要继续补齐后面的路。

这次,我们会走过五段路

蛙博士没有把桌上的所有问题都塞给蛙兄。

他把它们收成了五段路。

第一段:先把猜想说清楚

“下行九拍完成后更容易反弹”,听起来已经像一个猜想。

但它里面的每个词都还需要继续追问:

什么叫下行九拍?怎样才算完成?“更容易”是与谁比?“反弹”又准备看多久?

如果这些规则没有在看结果以前固定,两个人口中的“九拍”可能根本不是同一件事。

所以,第一步不是让 AI 快点计算,而是先把猜想变成明确规则。

第二段:先假装每次都有钱

规则定好以后,我们会把历史上的每一次完整九拍单独拿出来看。

在这一阶段,我们暂时不管手里有多少钱,也不管同一天出现了多少次信号。每一次九拍都像拿到了一笔独立的虚拟资金,然后观察它之后发生了什么。

这当然不是真实账户。

我们这样做,只是想先把一个更基础的问题单独拎出来:

九拍之后的表现,与同一只股票在普通日期之后的表现相比,有没有值得继续研究的差异?

如果连这一步都看不到什么特别之处,我们就没必要急着往后堆叠更多规则。

如果数据中确实出现了一点值得继续检查的弱规律,它也只是拿到了下一张入场券,还没有变成一套策略。

第三段:再决定哪些情况买、什么时候卖

假如基础猜想值得继续,下一步也不是马上宣布“九拍策略完成”。

我们还需要回答两类问题。

第一类是:所有九拍都值得买吗?

我们会保持买入时点不变,再看看 MACD、相对成交量、市值和行业等当时已经知道的条件,能不能帮我们留下更值得研究的候选事件。

第二类是:买进以后,什么时候卖?

固定持有几天、等一个指标发生变化,或者在条件一直不出现时强制收尾,都需要被写成明确规则。

到这一步,我们才会得到一套能够继续进入账户回测的完整买卖规则。

第四段:把有限资金和交易成本加回来

前面把每次九拍都单独拿出来看,好像每次都有一笔新钱可以使用。

真的把交易排到同一条时间线上,情况就不一样了。

如果手里只有 100 点资金,前面的交易还没结束,后面又一口气来了几十个信号,我们不可能每个都买。

资金会被占用,机会会被错过,每次交易还会产生手续费,真实成交价格也可能比我们理想中的价格更差。

所以,我们会把前面冻结的买卖规则放进一个只有有限资金的历史账户,再看它实际能接住多少次信号、账户怎样涨跌,以及与同期沪深300相比是什么结果。

这一步,才是把一套买卖规则放进统一历史账户里的回测。

第五段:不改答案,打开新数据验收

研究期回测结束以后,我们不会因为结果不好看就继续改参数,然后再对同一段数据重考一次。

我们会先把九拍、买入、卖出、资金和成本规则全部锁定,再打开一段没有参与前期选择的数据。

这次验收可能让人高兴,也可能把前面的好消息全部推翻。

两种结果都不是课程故障。

如果新数据中的结果反转了,我们也的确完成了验收——只是验收出这套规则还经不起新数据。

从说清猜想到用新数据验收,一次量化研究要走过五段路。
图 3|从定义问题到留出验证的五阶段研究路线。

每一个新问题,都在堵一个新漏洞

蛙兄顺着路线又看了一遍。

“所以,九拍规则定好以后,还不能高兴?”

“可以高兴一下。”蛙博士说,“然后问它是不是比随机日期更特别。”

“比随机日期更好,就能高兴了?”

“还要看那些九拍是否值得买,以及买了以后怎么卖。”

“买卖规则都有了呢?”

“把有限资金和交易成本加回来。”

“历史账户也能跑了呢?”

“不改答案,打开新数据。”

蛙兄沉默了几秒。

“我发现,一个问题刚解决,下一个就在门口等着。”

这正是本次研究要带我们看见的东西。

量化研究里,新问题不断出现,不一定说明前面做错了。

很多时候,恰恰说明我们又堵住了一个容易自欺欺人的漏洞。

本章重点

一次量化研究不是程序跑出一个收益数字就结束。它会一步步把猜想改成规则,把弱规律改成买卖方案,再把资金、成本和新数据加回来接受检查。

AI 可以跑得很快,地图还得由我们拿着

接下来的程序会比代码分组实验更复杂。

我们会让 AI 读取数据、识别九拍、抽取随机日期、计算收益、比较筛选器、运行历史账户并生成图表。

你不需要先学会手写这些程序。

但 AI 能够把程序写出来,不等于它可以替我们决定:

  • 现在究竟在回答哪个问题;
  • 哪些规则应该在看结果以前锁定;
  • 一次实验应该暂时停在哪里;
  • 结果到底支持了什么,又没有支持什么。

AI 的腿可以很快。

但地图不能也交给它随手画。

先确认,我们数的是同一个 9

五段路已经摊在桌上。

今天,我们还不需要急着让账户跑起来。

蛙兄把目光重新移回 K 线图上的数字 9。

“所以,第一步不是让 AI 把数字 9 画上去?”

“当然不是。”蛙博士说,“第一步是先确认,你数的九拍和我数的九拍,真的是同一个东西。”

要是两个人心里的九拍规则不一样,后面的数字算得再精确,也只是两个人各自认真地跑偏。

下一步,我们就把 K 线上的 1 至 9 数字,改写成一套 AI 能执行、我们也能检查的九拍规则。

带走一句话

先把猜想说清楚,再看它值不值得研究;补齐买卖规则,再把有限资金和成本加回来;最后不改答案,用新数据验收。

课后讨论

留下你的问题、理解或不同意见,也看看其他学习者怎么想。