《量化交易入门》第 12 章:从零到一的行动清单——量化之路怎么走
系列最后一章,不讲任何新概念。概念在书上睡一百年也变不成钱,这章只解决一个问题:关掉教程之后,你具体按什么顺序动手。
12.1 先看清全貌:四个阶段
量化入门不是线性学习,是四级台阶,每一级都有明确的”过关标准”,达不到就别往上跳。
| 阶段 | 目标 | 时间预算 | 过关标准 |
|---|---|---|---|
| 一、模仿者 | 跑通别人的代码 | 2–4 周 | 能在自己电脑上取到真实行情、跑出回测报告 |
| 二、独立回测 | 自己复现一个简单策略 | 1–2 月 | 独立写出数据→信号→回测→报告全流程,含手续费 |
| 三、模拟盘 | 让策略实时跑但不用真钱 | 至少 3 个月 | 实盘行情下信号、日志、风控全部自动运行 |
| 四、小资金实盘 | 用亏光也不心疼的钱 | 6 个月起 | 实盘结果与回测、模拟盘的偏差你能解释清楚 |
注意第四阶段的标准不是”赚钱”,是”解释得清偏差”。新手实盘第一年的目标只有一个:活下来,并看懂自己为什么赚、为什么亏。
12.2 最小流水线:你要亲手重写的骨架
整个系列的技术内容,压缩到底就是下面这几十行:数据 → 信号 → 回测 → 绩效。这个例子只用标准库、用模拟数据,复制即可运行;你阶段一的作业,就是把它逐行读懂,阶段二的作业,是把模拟数据换成真实行情。
# -*- coding: utf-8 -*-"""最小量化流水线:数据 → 信号 → 回测(含手续费)→ 绩效"""import random
random.seed(7)
# ① 数据:没有 API 时先用模拟数据练手(真实项目换成行情接口)prices = [100.0]for _ in range(240): prices.append(max(1.0, prices[-1] * (1 + random.gauss(0.0004, 0.02))))
def ma(data, n): out = [None] * len(data) for i in range(n - 1, len(data)): out[i] = sum(data[i - n + 1:i + 1]) / n return out
# ② 信号:双均线金叉买入、死叉卖出fast, slow = ma(prices, 5), ma(prices, 20)signals = [0] * len(prices)for i in range(1, len(prices)): if fast[i] and slow[i] and fast[i - 1] and slow[i - 1]: if fast[i - 1] <= slow[i - 1] and fast[i] > slow[i]: signals[i] = 1 elif fast[i - 1] >= slow[i - 1] and fast[i] < slow[i]: signals[i] = -1
# ③ 回测:全仓买卖,扣万三手续费cash, position, equity_curve = 100000.0, 0.0, []fee_rate = 0.0003trades = []for i, sig in enumerate(signals): if sig == 1 and position == 0: position = cash * (1 - fee_rate) / prices[i] cash = 0.0 trades.append(("买", i, prices[i])) elif sig == -1 and position > 0: cash = position * prices[i] * (1 - fee_rate) position = 0.0 trades.append(("卖", i, prices[i])) equity_curve.append(cash + position * prices[i])
# ④ 绩效:总收益、交易次数、最大回撤total_ret = equity_curve[-1] / 100000.0 - 1peak, max_dd = equity_curve[0], 0.0for e in equity_curve: peak = max(peak, e) max_dd = max(max_dd, (peak - e) / peak)
print(f"交易次数: {len(trades)}")print(f"总收益率: {total_ret:.2%}")print(f"最大回撤: {max_dd:.2%}")print("前五笔交易:", [(a, b, round(c, 2)) for a, b, c in trades[:5]])运行结果:
交易次数: 16总收益率: -4.91%最大回撤: 15.52%前五笔交易: [('买', 31, 101.63), ('卖', 41, 98.3), ('买', 59, 99.91), ('卖', 66, 91.45), ('买', 85, 91.25)]是的,它亏钱。这是这个例子最重要的部分:跑通流水线和赚钱之间隔着整条 series——数据质量、参数稳健性、样本外检验、成本冲击、纪律执行。一个能正常输出”亏损 4.91%“的程序,比十个回测年化 50% 的黑箱值钱:前者你知道它在哪错,后者你只知道它迟早错。
12.3 每周怎么安排时间
不用辞职,每周 6–8 小时,坚持半年就超过 95% 半途而废的人:
- 工作日各 30–40 分钟:读数据、跑程序、记录一个”今天搞懂的问题”。重在不断,不在时长;
- 周末一个半天(2–3 小时):做本周的主作业——接一个接口、复现一个指标、完成一段回测;
- 准备一个研究日志(一个 markdown 文件就行):每个想法记四行——假设、检验方法、结果、结论。半年后这本日志就是你最值钱的资产,它能防止你把同一个失败策略换个名字再试一遍。
12.4 到什么程度可以花真钱
四条同时满足,再考虑阶段四:
- 策略在训练集之外的样本上仍然有效,且参数邻近区间表现稳定(第 11 章);
- 模拟盘连续跑满至少一个完整季度,经历过你策略”最不适应”的行情(震荡、急跌、缩量);
- 止损、仓位、异常停机全部自动化并被实测触发过——没被触发过的风控等于没有;
- 投入的钱亏光,不影响你的生活和心态。建议初始资金不超过流动资产的 10–20%。
12.5 劝退信号:什么时候该承认不适合
坚持是美德,固执不是。出现下面的情况,认真考虑把量化当爱好而不是事业:
- 你发现自己沉迷”找圣杯参数”,而不是研究市场结构;
- 连续亏损后第一反应是加资金翻本;
- 不看策略逻辑,只信回测曲线;
- 这件事让你长期失眠、影响家庭和本职工作。
量化不保证任何人财富自由,但它确定能给你一套看待世界的方式:用数据检验直觉、用概率接受不确定、用纪律对抗情绪。哪怕最终不做交易,这套训练在工作和生活里都会反复派上用场。
12.6 系列完结:十二章地图
从 K 线、数据、均线、趋势,到回测、因子、风控、成本、模拟盘、实盘、机器学习——十二章走下来,你已经见过一个量化系统的全貌。接下来没有下一章了,剩下的章节要靠你自己用代码写:第一个接口报错的夜晚,第一次看懂回测曲线的下午,第一次模拟盘信号在真实行情里亮起的瞬间。
市场永远在,不急这一天。打开编辑器,从那几十行骨架开始,把它换成你自己的数据。
祝你在市场里,活得久,看得清,走得远。
📚 《量化交易入门》系列全 12 章到此完结:从零基础到小资金实盘的完整路线,每章一个主题 + 可运行 Python 示例。收藏目录页,随时回来复习;动手过程中卡住了,带着你的研究日志和报错信息回来查。