四十八篇走下来,从 print("hello") 到带风控的回测系统,你已经具备了一套完整的「个人量化基本功」。本篇是合集的倒数第二篇,做两件事:一是能力自检清单——用「能独立完成什么」检验你的掌握程度(而不是「看过什么」);二是资源地图——接下来读什么书、用什么开源项目、跟哪些社区,以及如何在中立的立场上辨别资源成色。
本篇目标
- 能对照三阶段自检清单,定位自己当前的层级与短板
- 能获得一份按「为什么读」组织的书单与开源项目清单
- 能建立对信息源(公众号/论坛/课程)的甄别框架,不交智商税
- 能规划合集毕业后的 6 个月学习路线
核心概念
三阶段能力自检
量化能力的分层不在于「知道多少概念」,而在于能独立交付什么。对照下面的清单,每项都能不查资料完成才算过关:
阶段一 · 工具层(对应本合集 01–16 篇)
- [ ] 能用 pandas 读入一份 CSV 行情并完成清洗、存储(第 4、8 篇)
- [ ] 能手写 SMA/EMA/RSI/MACD/ATR 并与库函数核对一致(第 10–14、16 篇)
- [ ] 能画出带成交量的双轴 K 线图与指标图(第 6 篇)
阶段二 · 策略层(对应 17–36 篇)
- [ ] 能写出无未来函数、含成本的向量化与事件驱动回测(第 18、20 篇)
- [ ] 能计算并解读年化/夏普/最大回撤/Calmar 全家桶(第 19 篇)
- [ ] 能做 Walk-Forward 验证并解释样本内外差异(第 25 篇)
- [ ] 能独立实现动量、回归、轮动三类策略并知道各自的死穴(第 27–34 篇)
阶段三 · 工程与实盘层(对应 37–48 篇)
- [ ] 能搭出分层项目结构并用 git 管理参数版本(第 41、44 篇)
- [ ] 能部署数据管道 + 监控告警并演练过断线恢复(第 42、43、45 篇)
- [ ] 能纸面交易一个季度后输出切换评审报告(第 46 篇)
- [ ] 能写出自己的风控清单并解释每个参数的由来(第 48 篇)
划重点:自检的判定标准是「能不能不翻教程做出来」。翻着第 18 篇抄出回测不算掌握——合上教程,从空文件开始,两小时内写出带成本的双均线回测,才算阶段二入门。没达标的条目,回到对应篇章把练习重做一遍,比重读正文有效得多。
书单:按「为什么读」组织
入门后值得读的书不多而精,每本先说清楚「它能给你什么」:
| 书 | 为什么读 | 对应合集 |
|---|---|---|
| 《Python for Data Analysis》(Wes McKinney) | pandas 作者亲写的权威用法,把第 4–5 篇的功力补到系统级 | 04–05 |
| 《量化交易:如何建立自己的算法交易事业》(Ernest Chan) | 个人量化的完整方法论:研究流程、成本模型、资金管理,格局与本合集最接近 | 全系列 |
| 《Advances in Financial Machine Learning》(López de Prado) | 金融 ML 的严谨范式:purged CV、元标签,第 40 篇的深水区版 | 39–40 |
| 《打开量化投资的黑箱》(Rishi Narang) | 行业全景与机构视角,理解「你在家做的事」与机构的差异 | 45 |
| 《海龟交易法则》 | 趋势跟随与交易心理的经典,规则化交易的活教材 | 27、35 |
顺序建议:先 Chan(方法论框架),再 McKinney(工具精进),需要深挖 ML 再上 Prado——直接啃 Prado 大概率劝退。
开源项目与数据源
| 项目 | 用途 | 上手时机 |
|---|---|---|
| akshare | 免费全品种数据接口(本系列主力数据源) | 已在用(第 7 篇) |
| backtrader | 事件驱动回测框架(第 21–22 篇) | 已在用 |
| vn.py | 开源交易框架,期货/券商实盘对接 | 实盘阶段(第 45 篇) |
| qlib(微软) | 机构级量化研究平台,因子工作流的工业化样板 | 进阶选读 |
| quantstats | 回测报告一键生成(第 26 篇) | 已在用 |
数据源的提醒:免费源(akshare 聚合的各类公开接口)适合学习与研究,严肃回测前要校验(第 42 篇的校验思路);机构级数据(Wind、聚源)价格不菲,个人阶段不必强求。
信息甄别:中立框架
公众号、论坛、付费课程,用四问过滤:
- 它给出可复现的方法还是只给结果?——「年化 35%」是故事,「信号规则 + 样本外验证方法」才是知识;
- 它的收益宣称有没有对应的成本与回撤?——只报收益不报最大回撤与容量的,直接降权;
- 它卖的是渔还是鱼?——卖「策略代码」的要警惕(策略失效快且无法自修),教方法论的相对可信;
- 它的动机是什么?——引流开户、卖课、卖软件的 content,把「客观性」打三折再读。
划重点:付费课程不是不能买,而是买之前先用本合集的免费内容自测——如果免费内容(文档、开源项目、本系列)已经能让你跑通全流程,你缺的就不是课程,是练习时间。真要买,优先买「答疑与陪伴」而不是「秘籍」。
社区与信息源地图
值得常驻的信息源按「信噪比」排序:官方文档(akshare/backtrader/pandas 的 docs,永远第一手且随版本更新——第 47 篇坑「接口凭记忆写」的正解);开源项目的 GitHub Issues(真实报错与解决方案的富矿,你遇到的坑八成有人提过 issue);论文平台(arXiv 的 q-fin(量化金融)分区,进阶后看因子与 ML 论文的原文,警惕只读二手解读);中文社区(如聚宽/掘金等量化平台的社区帖、知乎的量化话题——用四问框架过滤后择优)。公众号与短视频作为「信息雷达」可以,作为「知识主粮」不行——主粮永远是文档、源码与论文。
一个实用的信息处理习惯:看到有价值的碎片,立刻动手复现十分钟。复现不了就存进「待验证」清单并定期清理——收藏夹里只有「验证过」和「待验证」两类,没有「看过就算会了」这类。
毕业后 6 个月路线建议
第 1–2 月:重做薄弱篇章的练习 + 精读 Chan,把自家回测框架打磨到"阶段三"标准
第 3–4 月:选一个策略方向(轮动/多因子/配对)深耕,跑 Walk-Forward + 纸面交易
第 5 月: 按 46 篇清单准备实盘评审,小资金上线一个策略
第 6 月: 复盘实盘 vs 纸面 vs 回测的三重差异,写一份自己的"偏差报告"
路线的核心思想:从「学新东西」切换到「做深一件事」。量化入门者的常见陷阱是无限横向学习——永远在第 3 篇讲义里找第 30 篇的答案,而不肯把一个策略从回测追到实盘。横切面已经够了,该打井了。
完整代码(本篇的「代码」是路线落地的工具:能力自检与资源追踪脚本)
学到的工具用在自己身上,是最好的复习。下面两个小工具把「自检清单」和「资源管理」变成可执行的代码。依赖:uv pip install pandas(标准库为主)。
# ---------- 1. 能力自检追踪器:把三阶段清单落成可打分的档案 ----------
import json
from datetime import date
from pathlib import Path
CHECKLIST = {
"阶段一 · 工具层": [
"能用 pandas 读入 CSV 行情并完成清洗、存储",
"能手写 SMA/EMA/RSI/MACD/ATR 并与库函数核对",
"能画出带成交量的双轴 K 线图与指标图",
],
"阶段二 · 策略层": [
"能写出无未来函数、含成本的向量化与事件驱动回测",
"能计算并解读年化/夏普/最大回撤/Calmar",
"能做 Walk-Forward 验证并解释样本内外差异",
"能独立实现动量、回归、轮动三类策略并知道各自死穴",
],
"阶段三 · 工程与实盘层": [
"能搭出分层项目结构并用 git 管理参数版本",
"能部署数据管道+监控告警并演练过断线恢复",
"能纸面交易一个季度后输出切换评审报告",
"能写出自己的风控清单并解释每个参数的由来",
],
}
def self_check():
"""逐项问自己:不查教程能做出来吗?只在此时此刻诚实打勾"""
result = {"date": str(date.today()), "stages": {}}
for stage, items in CHECKLIST.items():
passed = 0
for it in items:
ans = input(f" [y/n] {it}: ").strip().lower()
passed += (ans == "y")
result["stages"][stage] = {"passed": passed, "total": len(items)}
# 追加到档案,长期看进步曲线
f = Path("skill_history.json")
history = json.loads(f.read_text(encoding="utf-8")) if f.exists() else []
history.append(result)
f.write_text(json.dumps(history, ensure_ascii=False, indent=2),
encoding="utf-8")
for stage, s in result["stages"].items():
print(f"{stage}: {s['passed']}/{s['total']}")
return result
# self_check() # 取消注释交互运行;建议每月重跑一次
# ---------- 2. 资源四问过滤器:把收藏夹变成验证台账 ----------
def resource_filter(name, url, notes):
"""对每个待收藏资源回答四问,不达标直接劝退"""
questions = [
("Q1 可复现: 给出规则+验证方法而非只给结果? [y/n]", 2),
("Q2 完整性: 收益宣称附带成本与回撤? [y/n]", 2),
("Q3 卖渔还是卖鱼: 教方法论而非卖代码? [y/n]", 1),
("Q4 动机: 无开户/卖课等强利益绑定? [y/n]", 1),
]
score, details = 0, []
for q, w in questions:
ans = input(q + " ").strip().lower()
if ans == "y":
score += w
else:
details.append(q.split(":")[0])
verdict = "优质,可入主粮" if score >= 5 else (
"参考,仅作雷达" if score >= 3 else "劝退,不值得花时间")
entry = {"name": name, "url": url, "score": score,
"verdict": verdict, "failed": details, "notes": notes}
f = Path("resource_ledger.json")
ledger = json.loads(f.read_text(encoding="utf-8")) if f.exists() else []
ledger.append(entry)
f.write_text(json.dumps(ledger, ensure_ascii=False, indent=2),
encoding="utf-8")
print(f"{name}: {score}/6 → {verdict}")
return entry
# resource_filter("akshare文档", "akshare.akfamily.xyz", "数据接口第一手")
代码逐段解释
- 自检追踪器:把上文三阶段清单数据化。关键设计是追加式档案(
skill_history.json)——每月跑一次,长期看的是通过率的斜率而不是单次分数;「不查教程能做出来」的判定标准在前文已述,脚本只是把诚实记录变成习惯。输入用最朴素的 input 交互,重点在流程不在界面。 - 四问过滤器:把中立甄别框架变成打分器——四问各带权重(可复现与完整性各 2 分,因为它们是知识成色的硬指标),5 分以上才配进「主粮」。
resource_ledger.json同样是台账式追加,收藏夹里从此只有「验证过」和「待验证」两类。两个脚本都是几十行标准库,但它们把本篇最反人性的两件事(诚实自检、拒绝资源囤积)交给了代码。
常见坑与小练习
常见坑
- 收藏夹吃灰:书单存了 20 本、开源项目 star 了 50 个,一个都没读完。承认精力有限:同一时期只开一本 书 + 一个项目。
- 资源成瘾替代动手:刷「量化入门必看」帖子的时间超过写代码的时间。设定比例:每 1 小时输入配 2 小时动手。
- 盲目追新(大模型、高频、强化学习):地基没打牢就追前沿,学到的只是名词。先让第 50 篇的结业项目落地,再谈扩展。
- 用「资源不够」当进度慢的借口:本合集 + 免费开源项目足够支撑到实盘阶段。卡住的原因几乎总是练习量,不是资源量。
小练习
- 做一次诚实的自检:把三阶段清单逐条打勾,统计各阶段通过率,并列出「最低分的三个条目」作为下月主攻方向。
思路提示:不查教程试做一遍再打勾;「感觉会」不算,做出来才算。
- 从书单里选一本,制定四周阅读计划(每周一章 + 一个复现实验),把计划写进日历。
思路提示:Chan 的每章末尾都有可复现的策略思路,与第 18 篇框架结合做实验最划算。
- 用四问框架分析你关注列表里的三个量化公众号,写一份半页的「成色评估」,决定取关哪些。
思路提示:评估重点看它们的历史文章里「方法可复现率」——有多少篇给了规则与验证,多少篇只给了结果与情绪。
本文策略仅用于教学,不构成投资建议,实盘前请充分测试。