远思为径,码动价值。欢迎来到远思码技术实验室的最新技术实践记录。
经常有人问我:“想做量化,从哪开始?” 我的回答一直是同一句:从回测开始,而不是从策略开始。因为不能证伪的策略,连讨论的资格都没有。
这篇文章是实验室量化系列的总入口,把七个环节的顺序、选型、踩坑优先级一次讲清,每个环节都链接到对应的实战长文。
一、全景:七个环节
①数据 → ②因子 → ③回测 → ④策略 → ⑤机器学习 → ⑥深度模型
↘ ↗
⑦实盘自动化(调度 + 推送 + 监控)────────────────┘
| # | 环节 | 核心问题 | 实战文章 |
|---|---|---|---|
| ① | 数据获取 | 用免费数据能走多远? | Akshare 财经数据抓取实战 |
| ①′ | 数据存储 | 日线/分钟线用什么存? | TimescaleDB 量化行情库进阶、ClickHouse vs DolphinDB |
| ② | 因子工程 | 怎么判断一个因子是否有用? | 因子工程实战 |
| ③ | 回测 | 回测为什么总是骗人? | 向量化回测引擎 |
| ④ | 策略 | 参数不稳的策略能上线吗? | 双均线与动量轮动策略实战 |
| ⑤ | 机器学习 | 模型能替代人工因子吗? | LightGBM 截面选股 |
| ⑥ | 深度模型 | TFT/ST-GNN 值不值得? | TFT 与 ST-GNN 的真实收益边界 |
| ⑦ | 实盘自动化 | 怎么让它自己跑起来? | 每日选股信号的自动化 |
二、顺序很重要,顺序错了就是浪费时间
实验室的推荐顺序,是从"能证伪的东西“往”不确定的东西“推进:
- 先把回测引擎写对(环节③)。很多人一上来就研究因子,结果跑出来的超额收益全部来自成本假设太乐观、停牌没剔除、T+1 没做。引擎不对,后面所有结论都要重做。
- 再做因子(环节②)。有了可信的尺子,才能判断因子死活。
- 然后才是策略组合(环节④)。单因子跑通后再谈多因子加权、行业约束。
- 机器学习放在第五步(环节⑤⑥)。它建立在因子池之上,跳过前两步直接用 GBDT 喂原始价量,几乎必然过拟合。
- 最后接自动化(环节⑦)。它不难,但前提是前面每一步都能被脚本调用——notebook 里的代码是没法定时跑的。
如果你只有两周时间,我建议的分配是:引擎 1 周、因子 4 天、策略 3 天,其余都可以往后放。
三、硬件与环境清单
实验室跑这套流程的真实配置(2026 年):
| 角色 | 设备 | 说明 |
|---|---|---|
| 主力算力 | Minisforum N5 Pro,AMD Radeon 890M iGPU,48GB UMA 统一内存 | 日频策略绰绰有余,深度模型也能跑 |
| 数据节点 | 同一台机器上的 TimescaleDB + MinIO | 日线 15 年约 2GB,分钟线靠压缩压到 1/8 |
| 系统 | Ubuntu 26.04 LTS | 见 安装与调优指南 |
| Python | Miniconda3 + systemd 守护 | 见 安装与 systemd 配置 |
| GPU 加速 | ROCm 7.2.3 + PyTorch ROCm 构建 | 见 llama.cpp ROCm 部署笔记 |
一个反直觉的结论:日频 A 股量化对硬件的要求低得惊人。5000 只股票 × 250 天 × 20 个因子,约 2500 万个浮点数,普通笔记本都能跑。真正的瓶颈是数据质量与流程严谨性,不是算力。
四、技术栈选型表
| 层 | 选择 | 备选 | 理由 |
|---|---|---|---|
| 数据处理 | pandas | polars / DuckDB | 生态完整,向量化回测够用;性能瓶颈真出现再换 |
| 时序库 | TimescaleDB | ClickHouse / DolphinDB | PostgreSQL 生态,SQL 直达,运维成本最低 |
| 回测 | 自研向量化引擎 | backtrader / vn.py | 每一行都看得懂,才能信任结论 |
| 因子检验 | scipy + statsmodels | alphalens | 自己算 IC/分层,避免工具黑箱 |
| 机器学习 | LightGBM | XGBoost / CatBoost | 表格数据的最优解,训练快、正则强 |
| 深度学习 | PyTorch + pytorch-forecasting | TensorFlow | ROCm 支持好,TFT 有现成实现 |
| 调度 | systemd timer | cron / Airflow | 依赖管理、重试、日志开箱即用 |
| 部署 | 单机 + nginx | Docker Compose | 策略服务的复杂度不值得上 K8s |
五、免费数据能走多远?说实话
这是被问得最多的问题。实验室的观点:
- 日频价量 + 财务数据,免费数据完全够用。Akshare、Tushare 免费档、交易所官网,能覆盖 95% 的日频研究需求。
- 分钟线也能凑,但质量参差。免费分钟线常见问题:停牌期缺失、集合竞价缺失、复权因子不全。
- 付费数据的价值在"非价格信息”:龙虎榜、资金流、公告文本、行业分类。这些才是 2026 年之后超额收益的主要来源。
- 不要为了数据花钱,先花时间把流程做对。我见过太多人买了 3 万的数据,却用着含未来函数的回测。
六、五个最常见的误区
- “我的策略年化 80%” —— 先查三件事:有没有用未来数据、有没有扣成本、有没有剔除 ST 与停牌。
- “参数调一调就好了” —— 参数热力图上的深坑才是真实分布,单点最优是拟合结果。
- “加个止损就能提高收益” —— 止损降低波动,但通常也降低收益,它改善的是持有体验而非期望。
- “机器学习不需要因子” —— 模型只能组合信息,不能创造信息。喂原始价量的 GBDT 通常打不过十个手工因子。
- “跑通就能实盘” —— 从回测到实盘,中间还隔着滑点、流动性、涨跌停、ETF 溢价与自己的心理。
七、一条完整的执行清单
如果你打算按这条路走下去,可以直接抄这份清单:
- 环境就绪:Python 3.12+、pandas 2.x、TimescaleDB 跑通
- 行情落库:日线全市场,含复权因子,幂等增量更新
- 回测引擎:三个单元测试通过,成本/涨跌停/T+1 全部显式建模
- 因子库:至少 10 个因子,写清定义与 IC 记录
- 基准策略:双均线择时 + 动量轮动,作为后续对比基线
- 模型:LightGBM 跑通,purged 时序切分,分年度 IC 稳定
- 深度模型:TFT 作为风格因子叠加,验证与 GBDT 的低相关性
- 自动化:systemd timer + 幂等落库 + 推送 + 心跳告警
- 小资金实盘:跑满 3 个月,对比回测与实盘的偏差
最后一条最重要:小资金实盘三个月,比对回测曲线与真实净值。那三个月的偏差,会告诉你前面所有环节哪里在骗你。
结语
量化不是一场关于"找到圣杯"的竞赛,而是一场关于减少自欺的工程。数据要干净、回测要老实、成本要算足、上线要可监控——把这些做到位,年化个位数的稳定收益并不难;做不到,年化三位数的曲线也只是纸面上的。
远思为径,码动价值。愿你跑出的每一条曲线,都经得起自己的审问。
本文系列中所有数据、参数与回测结果均为实验室内部示例,用于说明方法论,不构成任何投资建议。市场有风险,决策需谨慎。