量化交易

量化交易(quantitative trading)是用明确的规则和可测量的证据来作出或评估交易决策的做法:把一个想法变成规则,在计入真实成本的历史数据上检验它,只有当它在一批完全没有参与设计的数据上依然站得住时才保留下来。

Senzoukria · 术语表 · 更新于 2026 年 9 月


研究循环

这个循环说起来很短,做好却很长。写下一个可检验假设。收集一份可复现的数据集,并核对它的覆盖情况:缺失的区间、重复的事件、时区、合约换月和单位。用明确的执行模型和成本去跑这条规则。在一段事先选好、且完全没有参与挑选参数的时期上评估结果。把结果连同失败一起记录下来,再决定下一步改什么。然后,只改一件事。

零售交易者完全可以从一个品种、一个假设开始。写代码是后面的事;第一项任务是决定什么样的证据会让你放弃这个想法。

证据通常在哪里塌掉

  • 成本:一个举例用的、几个跳动点的毛期望值,在扣掉手续费以及入场和出场的滑点之后可能就没了。换算手续费时要用品种真实的每跳价值。
  • 信息泄漏:用第二天的分布去标注价位,或者用今天的伽马敞口替代历史快照,都会让未来的信息渗进过去。
  • 选择偏差:试了很多配置再留下赢家,如果评估期没有事先隔离,量到的其实是运气。
  • 覆盖:今天能加载出一张图,并不能说明历史深度如何,也不能说明老成交是否带方向分类。
  • 执行:基于 K 线的模型不会重建排队,而限价被触及并不等于成交。

量化与订单流结合起来

订单流的观察一旦被归约成数据里真实存在的字段,就能成为量化输入:每个价位的 delta 等于主动买量减主动卖量、按写明比率界定的对角线失衡、各价位成交量、已收线 K 线的收益率。一个疑似吸收的现象——在事先标好的价位上出现大量抛压却几乎推不下去——可以催生一个假设;但它不能替代「在作出决定的那一刻,究竟已知什么」的记录。基于深度的想法需要盘口历史,而成交数据本身并不提供。

在 Senzoukria 里

脚本编辑器用 TypeScript、Python 或 C++ 保存规则,自动回测面板则在交易者自己缓存的历史数据上逐根 K 线运行它,运行前先测量覆盖情况,并把成本计入结果。面板提供向前滚动选项、参数搜索,以及一整套稳健性核查组成的 Gauntlet:账户是否存活、向前滚动窗口是否足够、置换检验、考虑试验次数的收缩夏普比率、回测过拟合概率、最大回撤是否在账户限额之内、在不利时期上的压力测试,以及自营公司周期核查。图表上还可以调用量化窗格指标,例如 Autocorrelation、Hurst Exponent (R/S)、Shannon Entropy 和各个 z 分数。一次回测运行只在最近三次里保留交易明细,重新加载就会丢失,这也是另一个应当留下书面研究记录的理由。

常见错误

  • 把图上一个赚钱的例子当成一条策略。
  • 把所有指标一股脑堆在一起,而不是做一个记录完备的实验。
  • 把一个漂亮的 Gauntlet 标签读成对未来优势的认证,而它只是对所提供数据上一套流程的概括。
  • 在考虑接入真实账户之前,跳过「回测 → 回放 → 模拟账户」这几步。

其他语言版本

常见问题

做量化交易一定要会写代码吗?
一开始不必。第一项要求是一条没有歧义的规则和一份可复现的数据集。当同一套流程必须在多个时期、多个版本上反复执行,当失败必须被记录下来,当训练期与后续评估期必须被机械地隔开时,代码才真正派上用场。
回测为正,就足以拿这条规则去实盘吗?
不够。执行假设、成本、数据缺口、选择偏差和不断变化的市场条件,每一样都可能让结果失效。报告样本外结果和失败的配置,推进到回放和模拟账户,并把实盘自动化当成一个独立的决定,它有自己的权限和限额。
GEX 或期权流可以用在量化规则里吗?
可以,只要时间关系被保留下来:带时间戳的期权观测值,以及当时在用的模型版本。桌面端的 GEX 以配置了期权数据源为前提,而在测试里,今天的伽马分布不能顶替历史上的那一份。

继续阅读