量化到底在做什么:三件事,缺一件都不算
- 说得出量化的三个动作(写规则、检验、执行)各自解决哪一类问题,缺哪一个会出什么后果
- 讲清量化与看盘做决定的核心差别在于可检验与可重复,而不在于速度或用不用电脑
- 知道这一卷后面各章分别回答什么问题,能按自己的需求选择从哪一篇往下走
饭桌上有人说他在做量化,你脑子里大概会浮起一个画面:一面墙的屏幕,红红绿绿的数字跳得让人眼晕,程序在千分之一秒里抢单,屏幕前的人抱着手看。
这个画面不能说全错,但它对应的是这行里非常小的一撮人。你要是拿它当量化的定义,接下来所有的判断都会偏。 你会以为自己反应慢所以不适合,或者以为电脑够快就算入门,这两个结论都跟真实情况没什么关系。
我想给你一个更朴素、也更管用的说法。量化不是「用电脑炒股」,它是三件事按顺序做完:
把你的判断标准写成不许解释的规则;拿历史数据把这套规则重放一遍看看它成立不成立;再把执行交给程序,让它照着做。
三件事各自解决一个完全不同的问题,谁也替不了谁。这一篇就把三件拆开讲——每件解决什么、缺了它会怎样、以及在真实的交易系统里它长什么样。讲完之后我会回答那个最常被搞错的问题:它和你自己看盘做决定的真正差别在哪。最后给你一张这一卷的地图,你按自己的需要挑下一篇读。
先划清这一篇不讲什么,免得你等着等不到:上手需要什么资源、缺哪一样不能硬上,归 散户做量化,真实门槛在哪几道;和主观投资的逐项对比,归 量化和主观的真正差别;这套方法本身有哪些天花板,归 量化做不到的那些事。这一篇只做总览。 另外,站内 L5 阶梯里那篇 什么是量化投资 从「量化思维」的角度讲过一遍,那篇偏重观念,这一篇偏重把动作拆开——两篇可以对着看。
一句话的比方:这不是把厨师换成机器人
很多人对量化的第一直觉是「人被替换掉了」。其实更接近的比方是这样的:
一家小馆子,老师傅炒菜全凭手感——盐少许,火候看着办,出锅时机全靠尝。菜确实好吃。
现在这家店要开第二家分店。老师傅分身乏术,于是做了三件事:
第一,把菜谱写下来。「少许」变成克数,「看着办」变成秒数,「尝一口」变成一个能被别人执行的判断条件。
第二,拿过去三年的采购单和翻台记录,把这份菜谱重算一遍——按这个用料、这个火候、这个出餐速度,成本是多少、一天能出多少份、旺季扛不扛得住。
第三,让分店的厨房照着这份菜谱做,不许现场发挥。
量化就是这三件事换到投资上。核心从来不是「机器代替人」,而是「把一件只存在于某个人脑子里的手艺,变成可以写下来、可以核对、可以重复执行的东西」。 至于最后是谁在操作、操作得多快,是这三件事的结果,不是它的目的。
第一件:把判断写成不许解释的规则
先打个比方
你妈做菜说「少放点盐」。你在旁边看了二十年,你懂她说的是多少。
现在换个场景:你要把这道菜交给一个从没进过你家厨房的人做。「少放点盐」这句话在他手上就废了——他放的可能是你嫌淡的量,也可能是你咸得喝水的量,而你没法说他做错了,因为你的指令本来就没说清。
「少放点盐」不是一句坏指令,它只是一句只有你自己能执行的指令。 一旦要交出去,模糊的地方就必须被填死。
这对你的判断意味着什么
写规则这件事,最容易被当成一道技术手续——好像只是把心里想的东西敲进电脑。其实它是三件事里最先见效、也最经常被跳过的一件。
它见效在哪?在你还没跑任何程序之前,写这个动作本身就已经在收拾你的决策了。
你试着把自己最近一次买入的理由写成一条规则看看。你多半会卡在这几个地方:
- 「估值不高」——不高是跟谁比?跟它自己过去比,还是跟同行比?取哪一段的数?
- 「趋势起来了」——涨了多少算起来?涨了几天算起来?中间回调过还算不算?
- 「跌太多了要止损」——太多是多少?从买入价算,还是从最高点算?
这些问题不是刁难。它们全都是你在实际下单的那一刻真的用到过、但从来没说清楚的东西。 你以为你有一套方法,写下来才发现你有的是一堆倾向。这个落差本身就是收获,而且它不需要你会写代码、不需要你有数据、也不花钱。
还有一个不太有人说的好处:写下来的规则可以被别人挑毛病。你说「我看着感觉不对就跑」,别人没法反驳你,你自己也没法复盘;你说「跌破我买入价百分之几我就走」,别人立刻能问一句「那你怎么处理开盘直接跳空低于这条线的情况」——这个问题一提出来,你的方法就补上了一个洞。能被挑毛病,是一套方法开始变结实的起点。
它在系统里长什么样
我读了一个公开的自动交易框架 freqtrade 的入门文档,它把「一条规则从头到尾要经过几段」写得很清楚,一共四段:
交易场所给你的原始行情是一根根 K 线,每根 K 线是六个数——时间、开、高、低、收、成交量。技术分析的函数对这些数做计算,产出的东西叫指标。指标被拿去做判断,产出的东西叫信号。信号最后被变成交易场所上的订单,也就是一笔真实的交易。
四段连起来是:K 线 → 指标 → 信号 → 订单。
我想让你看见的不是这四个名词,而是这条链上没有一处允许模糊。「感觉不错」这句话,在第二段就翻译不下去了——你没法把它写成一个能算出数的公式。反过来说,凡是你脑子里那些说不清的判断,它们不是在最后一步被程序拒绝的,而是在很靠前的地方就已经无处安放了。
这就是为什么我说写规则是三件事里最先见效的一件:它不是在配合机器,它是在逼你把话说完整。
第二件:拿历史把这份规则重放一遍
先打个比方
回到那家馆子。菜谱写好了,接下来最蠢的做法是直接开分店试。
聪明一点的做法:翻出过去三年的采购单,按新菜谱重新算一遍成本;翻出过去的客流记录,按新的出餐速度重新排一遍。这一遍算下来,你可能会发现某个食材在旺季根本买不到,或者这道菜的出餐时间让午市翻不了台。
这一遍不花你一分钱食材,却能提前拦掉一些昂贵的错误。
但你也得清楚这一遍算的是什么:它算的是「假如过去三年我这么干」,不是「接下来三年会怎样」。采购价会变,客流会变,隔壁会开新店。
这对你的判断意味着什么
这个「重放一遍」的动作,行业里叫回测。它的机制怎么运转、程序内部到底在算什么,站内 回测到底在算什么 已经拆得很细,我这里不重复机制,只说对你这个要掏钱的人来说,检验这一步真正的产物是什么。
大多数人以为产物是那个年化数字。不是。年化是最不值钱的那一项,因为它最容易被打扮,也最容易过时。
真正的产物有两个。
第一个产物是:你的说法第一次有了被推翻的可能。
一个人说「我这套方法很好用」,你无法验证也无法反驳,这句话在信息上等于零。一套写下来并被重放过的规则说「按这个规矩在这段历史上会是这个结果」,你至少可以问它:换一段历史呢?换一个品种呢?把手续费按我的档位重算呢?从「不可争论」变成「可以争论」,这一步的价值远大于争论出来的那个数字。
第二个产物是:你知道了它什么时候不行。
一份只告诉你「赚了多少」的检验没什么用。有用的是那些难看的部分——最长的一段亏损期有多久、最难受的那一段回撤有多深、哪一类行情下它连着失灵。因为你将来真要用它的时候,考验你的从来不是它赚钱的那些日子。你需要提前知道最难受的样子长什么样,才能判断自己扛不扛得住。
这里有个必须说死的前提:回测算出来的结果,永远不是你实盘会拿到的结果。 这不是谨慎的免责话术,是机制上就成立的事——重放历史的程序和真金白银下单的程序,跑的根本不是同一套流程。差在哪几处、每一处差多少,回测好看实盘亏,差的到底是哪三件事 逐条点过名。
还有一个顺序问题,值得单独提醒:检验必须放在写规则之后,不能反过来。 如果你的做法是先在历史数据里翻找「什么参数最好看」,再把找到的参数写成规则,那你做的不是检验,是在给一段偶然的历史量身定做一件衣服。这件事有个专门的名字,机制见 过拟合的机理。顺序一颠倒,检验这一步就从「验证」变成了「粉饰」。
它在系统里长什么样
同一个框架的回测文档里,有一整节的标题就叫「回测所做的假设」。开头一句大意是:因为回测拿不到一根 K 线内部发生了什么的详细信息,所以它必须做出一些假设。
底下是一串条目。我挑几条你能听懂的:
- 入场默认按开盘价成交,除非你自己另外指定了价格逻辑;
- 只要报价落在这根 K 线的最高价与最低价之间,就当作按你要的价格全部成交,也就是不算滑点——滑点是你想按这个价成交、真成交时价格已经跑偏的那点差额;
- 卖出信号导致的离场,按下一根 K 线的开盘价算;
- 同一根 K 线里,卖出信号优先于止损,因为信号被假定在开盘时就触发了;
- 止损离场按止损价精确成交,哪怕这根 K 线的最低价比它更低;
- 在处理止损时,假定这根 K 线里低点发生在高点之前——文档给的理由是优先保护本金。
最后那一条我觉得最能说明问题。一根 K 线只告诉你这段时间里的最高和最低是多少,它不告诉你哪个先来。程序必须选一个,于是它选了对你更保守的那个,并且把这个选择公开写了出来。
你要从这一节里带走的,不是这些条目本身,而是一个判断标准:一份检验报告的可信度,和它披露的假设数量成正比。 一份从头到尾只有结果、没有一句「本次计算假设了什么」的成绩单,不是它没有假设,是它没告诉你。至于拿到报告该按什么顺序看、哪些数字被化过妆,这一卷后面有 拿到一份策略业绩报告,先看哪几个地方 专门讲。
第三件:把执行交出去,而且交出去的是同一份规则
先打个比方
高速上开长途,你把定速巡航打开。
这件事省的力气其实有限——你的脚闲下来了,但你还得看路。它真正改变的是另一样东西:车速不再取决于你此刻的心情。 你困了、烦了、旁边有车别了你一下,这些都不会再让车速悄悄变化。
关键在于,定速巡航执行的是你事先设定的那个数。要是它会自己根据路况随机调整,你就完全没法从这次长途里总结出「时速多少最省油」——因为你压根不知道刚才跑的是多少。
这对你的判断意味着什么
执行交给程序,最常被宣传的好处是「不受情绪影响」。这话对,但说浅了,而且容易让人觉得这只是个意志力的替代品。
它更值钱的作用是:让结果可以被归因。
设想你写好了规则、检验也做了,然后自己手工执行。中间有那么两三次,你觉得这个信号不太对劲跳过了,或者某一笔还没到止损你提前砍了。三个月后你打开账户,看到一个数字。
这个数字属于谁?不属于你那套规则,因为你没完全按它做;也不属于你的直觉,因为大部分时候你还是按规则做的。它是两者随机拼接出来的产物。于是你既没法说规则不行,也没法说自己不行——这三个月你什么都没学到。
亏掉的钱是有限的、能算清的。而「这一整段时间无法归因」这件事没有账单,却比亏损贵得多,因为它会让你下一次继续在同一个地方打转。
所以第三件事的真正含义不是「省事」,是保护前两件事的成果:你辛苦写下来的规则、辛苦检验过的结论,只有在被原样执行的时候才有意义。中途换了内容,前面两步的投入就一起作废了。
有一件事要说在前头,免得你误解:这不等于程序开着就不用管了。 什么情况下该人工接管、哪些格子机器根本填不了,是 量化做不到的那些事 的题目,那篇会给你一份清单。这里我只强调一点——接管应该是事先写好的规则之一,不是当天临时起意。
它在系统里长什么样
框架文档里有一段描述实盘的运行流程,大意是:启动之后进入一个循环,默认每隔几秒转一圈;每一圈里依次做这些事——把还没平仓的交易取出来、算一遍当前可交易的品种清单、下载行情、依次调用你写的算指标、算入场信号、算出场信号这几段逻辑,再检查已有仓位要不要离场、有没有该下的新单。
请注意它调用的是什么:是你写的那几段。 回测跑的也是这几段,模拟盘跑的还是这几段。三种模式共用同一份规则文件,切换靠的是配置里一个必填的开关,决定它是模拟下单还是真的下单(具体项名和默认值以你手上的版本为准)。
这个设计本身就是第三件事的注脚:你检验的那套东西,和你上场跑的那套东西,必须是同一份。 中间任何一处「实盘的时候我再稍微改改」,都会让检验结论失去效力。
不过,同一份规则文件不等于同一个结果。同一份文件在回测和实盘里跑出来的东西可以差得很远——这正是上面提到过的那篇专门在讲的事。「用的是同一份规则」是底线,不是保证。
缺哪一件会怎样
三件事的价值,看它们缺席时的样子最清楚。
| 你做了什么 | 缺了哪一件 | 结果长什么样 |
|---|---|---|
| 规则写下来了,没检验 | 检验 | 你有的是一个信念,不是一个结论。它可能对,但你没有任何理由相信它对 |
| 写了也检验了,执行时自己插手 | 执行 | 账户跑的是第三套东西。赚了赔了都无法归因,这段时间白花 |
| 让程序自动跑,规则从没写清楚过 | 写规则 | 把随意自动化了。原来一天犯一次的错,现在一天犯二十次,而且犯得非常整齐 |
| 先在历史里翻好看的参数,再倒过来写规则 | 顺序 | 检验变成了粉饰。历史上越漂亮,往后越危险 |
有意思的是最后两行。很多人以为量化的风险来自「太复杂」,其实更常见的翻车方式是「三件事只做了其中一件,却以为自己做全了」。 尤其是只做第三件——买个自动交易的工具挂上去,规则是别人给的、检验是别人做的、你唯一参与的是把钱放进去。这种情况下你并没有在做量化,你只是把决策外包了,而且外包给了一个你没有能力检查的对象。
那它和我自己看盘做决定,到底差在哪
这是这篇最想说清楚的一件事。
差别不是速度。高频交易确实存在,但那是一个需要极特殊条件的分支,和绝大多数量化研究没什么关系——大量策略的判断周期是按天、按周甚至按月的,慢得让人打哈欠。把量化理解成「快」,会让你得出两个都错的结论:以为自己手慢所以不能做,或者以为反应快就算优势。
差别也不是「用不用电脑」。你用行情软件看均线,那也是电脑在算。
真正的差别只有两条:可检验和可重复。
可检验说的是:你的方法有没有可能被证明是错的。看盘做决定的人,事后回忆起来往往是「那次我判断对了」「那次运气不好」——这两句话怎么排列组合都不会让方法本身受伤。而一套写死的规则,你可以把它放回历史里跑,跑出难看的结果它就是难看的,你没法替它辩解。
可重复说的是:换个人、换一天、换一种心情,同样的输入会不会得到同样的输出。看盘决策的可重复性接近于零——你自己上午和下午看同一张图,结论都可能不一样。这不是意志力问题,人本来就这样。
这两条合起来的意义是:你的经验第一次有了积累的载体。 看盘做决定的人干十年,积累下来的是感觉,感觉没法交给别人,也没法拿出来核对,甚至没法确认它是真的变强了还是只是变自信了。写成规则并被检验过的东西,可以被修改、被推翻、被一代一代往上叠。
顺着这个说下去还有一层,我觉得对你可能更有用:这两条不需要你写代码就能拿到一部分。
你完全可以不碰任何程序,只做前两件事的手工版——把自己的买卖规矩写下来,然后翻出自己过去的交易记录去核对:真按这条规矩做,过去这一年会是什么结果。这件事的门槛只有耐心。这一卷专门有一章讲怎么做,从 你的交易流水里藏着一份体检报告 开始,那一章讲的全是「拿量化的方法诊断你自己」,不涉及自动交易。
说得更直白些:量化的思路对一个从不写代码的投资者依然有效,因为有效的部分是「把话说死、拿证据核对」,而不是「让程序帮你按按钮」。
这一卷接下来怎么走
这一篇是入口,往后按你的需要挑:
- 想知道自己现在够不够条件动手——散户做量化,真实门槛在哪几道,讲数据、时间、资金、心态四道客观门槛,每道都有能自测的最低配置。
- 想把它和主观投资摆一起比——量化和主观的真正差别。
- 想知道它做不到什么——量化做不到的那些事,这篇建议早读,它能挡掉大部分不切实际的期待。
- 有人拿一份业绩报告来找你——拿到一份策略业绩报告,先看哪几个地方,这是最实用的一章,因为大多数人和量化的第一次真实接触就是这个场景。
- 想拿这套方法先诊断自己——你的交易流水里藏着一份体检报告,不需要代码。
- 想查具体的词和机制——去概念库,比如 回测到底在算什么、过拟合的机理,那边是词条式的,讲机制怎么运转,随查随用。
- 想真的动手做一遍——写一个最简策略回测 是最小的起点。
- 想知道 AI 在这里能帮上什么忙——AI 到底能帮上什么 那一条线专门讲用 AI 做投研,以及它在哪些地方会一本正经地骗你。
本文讲的是量化方法的构成与边界,属于投资教育内容,不构成任何投资建议、买卖信号或收益承诺,也不推荐任何工具、平台或品种。文中对开源项目的描述,来自对指定版本快照的文档与源码阅读,是机制说明而非运行结果;任何默认值、参数与流程都以你手上的版本为准。把这三件事全部做到位,也不代表能够盈利——它们只让你的方法变得可检验、可重复,检验不出未来。完整风险提示见 免责声明。
小结
- 量化不是「用电脑炒股」,是三件事按顺序做完:把判断写成不许解释的规则、拿历史把规则重放一遍、把执行交给程序。
- 写规则在你还没跑任何程序之前就已经见效——它逼你发现自己原来只有倾向、没有方法。一条规则从 K 线到指标到信号到订单,全程不允许有模糊的地方。
- 检验最值钱的产物不是那个年化数字,是「你的说法第一次可以被推翻」和「你提前知道了它最难受的样子」。一份报告的可信度,和它披露的假设数量成正比;顺序不能颠倒,先翻参数再写规则,检验就变成了粉饰。
- 执行真正的作用是让结果可以被归因。中途插手一次,这段时间的成绩就既不属于规则也不属于你,等于白跑。
- 三件事缺哪一件都有对应的翻车形态,其中最常见的是只做第三件——把决策外包给一个你没能力检查的对象。
- 它和看盘做决定的差别不是速度、不是用不用电脑,是可检验和可重复。而这两条不需要写代码也能拿到一部分。
一句话说完这篇:所谓量化,就是把「我觉得该买」这句话,改写成一句别人也能照着做、还能拿以前的账本核对的话——难的从来不是电脑那一头,是把话说死这一头。
本文为投资教育整理,关键数据与结论请结合下列权威来源验证。
- freqtrade 文档 docs/strategy-101.md 的 Required Knowledge 与 Structure of a Basic Strategy 两节(本地仓库快照 commit b3404c9,2026-08-18 读取) ↗
- freqtrade 文档 docs/backtesting.md 的 Assumptions made by backtesting 一节(同上快照) ↗
- freqtrade 文档 docs/bot-basics.md 的 Bot execution logic 与 Fee handling 两节(同上快照) ↗
- freqtrade 文档 docs/configuration.md 中 dry_run 作为必填参数的条目(同上快照) ↗