第八部分 · 职业、复盘与长期成长 · 第 52 章
长期学习路线: 从零到可展示的量化项目
学习量化最常见的失败不是不够努力,而是顺序倒置:金融问题没想清楚就训练模型,数据时间线没站稳就追求高收益。这一章把个人项目路线和长期学习节奏合在一起,每一阶段都要求留下可检查的产物,让“学过”逐步变成“做得出来、讲得清楚”。
本部分的问题:做完第一个项目以后,怎样选择岗位、建设作品集并形成长期学习循环?
读完后,你会把全书收束成一条个人路线,而不是停在零散知识和一次性项目。
读完这一章,你会明白
- 个人量化路线应按金融基础、数据仓库、回测框架、因子报告、模型、模拟盘、小实盘的顺序一步步推进。
- 每个阶段都要有可检查的产出,不能只停留在看书,或者对着 notebook 里的曲线自我感觉良好。
- 长期学习按金融语言、统计、数据工程、回测、因子模型、组合风控、模拟实盘的顺序逐层推进,跨层跳跃大概率返工。
- 每个阶段都得有拿得出手的产出:笔记、数据检查、回测报告、因子报告、组合报告、模拟盘日志,产出比时长更能证明你学会了。
1. 一条能走通的学习路线
1.1. 先把金融地图补齐
第一阶段的目标不是成为金融专家,而是能听懂市场语言。货币、通胀、银行、债券、股票、基金、ETF、期货、期权、券商、交易所、A 股规则、指数和基准——这些词出现在新闻里、研报里,你得知道各自指什么。
这一阶段的产出可以很轻: 用自己的话写一份金融地图。比如解释钱为什么不是财富、银行为何会有挤兑、股票代表什么权利、债券价格为什么和利率反着走、ETF 为什么可能折溢价、T+1 对回测有什么影响。写不出来,就是还没懂,回去补。
但别急着背全部术语。你真正需要的是机制感: 看到一个金融产品,能条件反射地问——现金流是什么? 谁拿收益? 谁承担风险? 价格怎么形成? 有没有流动性和杠杆? 这五个问题,比背一百个缩写重要得多。
七个阶段像台阶一样,每一级都留下具体产出物:行业全图笔记、可复现行情库、能跑的回测框架、IC/分层两张表、组合化打分、一个月模拟盘流水、实盘与回测的差异笔记。过关标准达不到,就不上一级。
1.2. 建一个干净的数据小仓库
第二阶段的目标只有两个字: 可重复。先选一个小范围练手,比如沪深 300 或中证 500 的日线数据。字段包括交易日、代码、开高低收、成交量、成交额、复权因子、停牌状态、涨跌停价格、指数成分和行业。
数据仓库不必豪华,从本地的 parquet 或 sqlite 开始就行。真正的关键是: 字段口径清楚、脚本可重复、原始数据和处理后数据分开存放、每次更新有日志。两条铁律: 不要手工改表,不要让实验依赖某个躺在桌面的临时文件。
这一阶段的产出,是一份数据说明加几个检查脚本: 缺失率、重复行、价格是否为负、成交量是否异常、停牌日如何表示、复权前后收益是否合理、指数成分是否按日期变化。数据质量不过关,后面模型越复杂越危险——模型越聪明,把脏数据吃出来的错误结论就越精致。
1.3. 写一个最小回测框架
第三阶段不追求功能多,先把最小流程写对: 每月最后一个交易日生成信号,下一个交易日调仓,买入目标股票,扣佣金和滑点,处理停牌和涨跌停,记录现金、持仓、成交和净值。一圈跑通,胜过十个花哨功能。
第一个策略可以朴素到家: 买入过去 20 日涨幅最高的 20 只股票,或者买入低 PB 的 30 只股票。策略赚不赚钱不是重点,重点是回测系统是否尊重时间顺序和交易规则——该不该看到的数据,该不能成交的单子,系统都得拎得清。
这一阶段的产出,是一份回测报告模板。必填项: 基准、累计收益、年化收益、最大回撤、波动率、夏普、换手率、交易成本、持仓数量、行业暴露、失败成交数量和样本区间。没有报告模板,研究就会退化成人肉看曲线、凭感觉说话。
1.4. 做第一个因子报告
第四阶段,挑一个因子做完整研究: 低估值、动量、低波动、质量或股息率都行。定义因子口径,确定股票池,处理极端值,做行业和市值中性化,计算 IC 和 RankIC,做五分组或十分组回测。
报告里必须写清楚一串问题: 因子为什么可能有效? 数据当时是否可见? 因子覆盖率如何? IC 均值和稳定性如何? 高分组是否真的跑赢低分组? 扣成本后还剩下多少收益? 哪些年份失效? 每一条都是审讯,不是装饰。
这一阶段训练的核心是研究纪律。不要只保留漂亮图,失败和怀疑也要写下来。一个因子如果不行,你也不是空手而归: 至少学到了数据处理、检验方法和风险解释。量化研究不是每次都要成功,而是每次都要留下可复用的经验。
1.5. 多因子和简单模型
单因子跑通之后,自然想组合多个因子。先别急着上大模型: 先用简单加权或线性模型,再尝试 Ridge、ElasticNet、LightGBM 等。特征一开始也不要多,就用你能解释的那些: 估值、质量、动量、波动、流动性和规模。
模型训练要按时间切分,绝不能随机打乱——随机打乱在金融序列数据里等于偷看未来。要保留样本外,记录每一次实验,避免因为试太多模型而过拟合。评价指标以 RankIC、分层收益、扣费后超额、回撤、换手和暴露为主,不要盯着训练误差自我感动。
这一阶段的产出,是一个可复现的实验目录: 配置文件、训练脚本、预测文件、回测结果、报告和实验日志,各归其位。验收标准很硬: 别人拿到你的仓库,应该能知道你用了什么数据、什么参数、跑出了什么结果,并且能复现。
1.6. 模拟盘
模拟盘不是儿戏,它是从研究到实盘的过渡带。模拟盘要按真实时间运行: 每天或每月在固定时间生成信号,只用当时可见的数据下模拟订单,记录模拟成交、持仓、净值、成本和日志。
模拟盘的价值,在于暴露回测里看不到的问题: 数据更新延迟、节假日、停牌、涨跌停、脚本失败、网络问题、忘了运行、信号文件格式变了……全都会蹦出来。你会真切地发现,交易系统不是一段 notebook,而是一套要按时值班的流程。
这一阶段至少跑三到六个月。别因为模拟盘短期赚钱就急着上实盘,也别因为短期亏钱就把策略整个推翻。重点是观察三件事: 真实运行稳不稳、信号和回测一不一致、成本假设合不合理。
1.7. 小资金实盘
小资金实盘的目标不是赚大钱,而是验证真实交易链路。用很小比例的资金,手动或半自动地执行信号,确认下单、成交、费用、持仓、净值和对账都能跑通。
小实盘期间要保持严格记录: 每笔交易为什么发生,预期成交价多少,实际成交价多少,滑点多少,有没有未成交,有没有违反规则,盘后净值和券商账户对不对得上。这些记录,是以后放大资金时唯一可靠的依据。
只有当系统稳定、你能承受回撤、策略逻辑仍然成立,才考虑慢慢扩大资金。扩大也要分阶段来——资金变大之后,滑点、容量和心理压力,全都会变,尤其是最后一样,模拟盘里你永远学不会。
1.8. 学习顺序不要倒过来
最常见的错误,是先学复杂模型、再补交易规则,结果写出一个看起来高级、实际上不可交易的策略。正确顺序是: 金融机制、数据口径、回测规则、风险指标、简单因子、模型、组合、执行。一层一层来。
深度学习可以放后面。不是因为它不重要,而是因为数据和回测要是错了,深度学习只会让你更快、更精致地过拟合错误。先用简单模型建立基线,再问复杂模型是否真的提供增量。
你有计算机基础,优势在工程实现和模型理解;短板通常在金融口径、交易制度和风险直觉。设计路线时要补短板,而不是只强化已经会的部分——只会的那部分,练一百遍也不会变成新能力。
不会写代码、没读过金融学、没跑通回测,这些基础不建立就做深度学习——这就是毁掉大多数入门者的学问---顺序错误。
1.9. 做完才算入门
一个合格的入门项目,至少要有这些文件: 数据说明、数据检查脚本、因子定义、回测引擎、成本模型、指标计算、结果报告、实验日志、风险说明和复盘记录。缺一项,这个项目就还没完工。
报告里至少要有这些图表: 净值和基准、超额收益、回撤、年度收益、月度收益热力图、IC 时间序列、分层收益、行业暴露、换手率、成本敏感性。记住,图表不是为了好看,是为了让问题暴露出来。
代码层面至少要做到可复现: 不要把路径、日期和参数写死在 notebook 里;配置、数据、模型、回测和报告分开;今天跑和一个月后跑,同样的输入应该得到同样的结果。做不到这一点,一切结论都只是巧合的记录。
1.10. 什么时候该停下来复盘
学量化,停下来复盘和继续写代码一样重要。几个明确的暂停信号: 策略回测很好但你解释不清为什么赚钱,停下来;结果对参数极度敏感,停下来;扣完成本收益消失,停下来;样本外明显崩掉,停下来。
复盘要对着清单问: 数据有没有错? 是否有未来函数? 股票池是否回填? 成交假设是不是过于乐观? 收益是不是来自单一行业或风格? 换手是不是过高? 样本是不是太短? 试错次数是不是太多? 一个问题答不上来,就先别往前跑。
这些问题会拖慢研究进度,但能让你少走很多弯路。记住全书最想让你带走的一句话: 量化不是靠兴奋感推进的,是靠可验证流程推进的。
交易所有涨跌停,系统有熔断,你的学习路线也该有。回测异常漂亮、结果对参数极度敏感、扣完成本收益消失、样本外明显崩掉——触发任何一条,就停下来写复盘,而不是换个参数继续跑。往前冲是本能,按清单停下来才是纪律:这条路线之所以每一步都要留产出,就是为了让熔断触发时有东西可查。
2. 读什么、做什么、怎么复盘
很多人学量化的方式,像极了收藏技术文章:今天被宏观震撼,明天被高频吸引,后天点开深度学习论文,每篇都很兴奋,但没有一篇变成手上的技能。量化不是刷完一份书单就学会的,它要同时补金融、统计、编程、数据、机器学习、交易制度和风险管理。这一章给你一个稳得多、也无聊得多的打法:分阶段推进,每个阶段只干三件事——读一点、做一个项目、写一份复盘。
2.1. 先把金融这门“外语”听懂
假设你空降到一个全说外语的项目组开会,最先要做的不是写代码,而是听懂大家在吵什么。第一阶段干的就是这件事:听懂市场语言。货币、通胀、银行、股票、债券、基金、ETF、期货、期权、指数、基准、A 股规则,这些词都要能解释清楚。注意,是能解释,不是能背定义:背定义是「ETF 是交易型开放式指数基金」,解释是「它解决了什么问题、谁在承担风险、价格在哪里形成」。
这一阶段读什么?通俗金融书可以,交易所和基金公司官网的基础材料也很好,免费且口径权威。重点不是精读某一本,而是先把地图画出来。再给你一个笨但好用的办法:每碰到一个术语,逼自己回答四个问题——现金流是什么?权利是什么?风险是什么?价格在哪里?答不上来,说明这个词只是眼熟,不是真懂。
阶段产出是一份你自己的金融地图笔记。检验标准很直接:能不能讲给另一个完全不懂金融的程序员听,而且对方能复述。别用「心里明白就是说不出来」骗自己——说不出来,就是没明白。
2.2. 统计和概率,学会问「这会不会只是噪声」
给你看一张收益曲线:某策略过去半年年化 30%。你的第一反应是「好家伙」还是「样本多长?会不会只是运气好」?如果是后者,你已经有统计直觉了。第二阶段就是把这种直觉练成肌肉记忆。家伙什包括:均值、方差、标准差、相关性、回归、假设检验、置信区间、过拟合、样本外、时间序列,外加一个容易忽略的属性——金融数据的样本往往不独立,今天的收益和昨天的收益可能纠缠在一起。
学统计最容易踩的坑是只顾着背公式。换一种学法:每个工具都当成在问一个问题。相关性问「这两个变量是不是一动一起动」,回归问「A 的变化能解释 B 的多少」,假设检验问「我看到的结果会不会本来就只是噪声」。公式只是问问题的方式,理解了问题,公式自然不吓人。
阶段产出是一个你自己写的小 notebook,用模拟数据亲手示四次「惨」:过拟合长什么样,样本外失效长什么样,相关不等于因果长什么样,交易成本怎么一点点吃掉一个小优势。每个坑亲手踩一遍,胜过读十遍警告。
2.3. Python 和数据工程,先把厨房收拾干净
Python 不是量化的全部,但它是个人学习者性价比最高的那把刀。pandas、numpy、matplotlib 或 plotly 要玩到顺手:时间序列能切片,数据能按组聚合,滚动窗口能算,缺失值能处理,多索引的表能拆开再拼上。这些是基本功,练就完了。
真正拉开差距的是数据工程习惯。打个工程师秒懂的比方:原始数据是上游接口的返回,处理后的数据是你清洗过的缓存——你会直接改写接口返回吗?当然不会。所以:原始数据和处理数据分开存,脚本随便重跑结果都一致,配置改动可追踪,结果自动生成,日志能复盘。最忌讳的是项目只剩一个 notebook,只在你这台电脑上、点过十七个 cell 之后才跑得出来——那不是研究,是行为艺术。
阶段产出是一个小而干净的数据仓库,配一套自动检查脚本。哪怕只有日线价格和指数成分,检查也必须自动做:有没有缺数据,有没有重复行,有没有离谱的价格,停牌处理了吗,复权用对了吗。
2.4. 写出第一份可信的回测报告
到这一阶段,前面砌的砖终于可以盖出第一间房子:一个可信的回测。策略本身越简单越好——低估值、动量,都行。复杂度不是重点,可信度才是,所以下面每件都要硬处理:交易日历怎么对齐,股票池是不是点时的,复权数据怎么用,信号和成交差几个时点,交易成本怎么算,停牌怎么办,涨跌停买不进卖不出怎么办,基准选谁。
回测跑完,报告要自动生成,不许手工拼图。里面至少要有:净值、基准、超额、回撤、年化、波动、夏普、换手、成本、年度收益、月度收益和持仓暴露。为什么没有报告不行?因为没有它,你的视线会自动粘在最后一个指标——总收益上,而它恰恰是整份报告里信息密度最低的一个数。
阶段产出是一份完整回测报告加一页复盘。复盘要回答四个扎心问题:策略在哪些环境有效?哪里失效?对哪个假设最敏感?这条路值不值得继续走?答完这四问,才算真正「做完」回测,而不只是「跑完」回测。
第一份可信的回测报告要自动生成、不许手工拼图,至少摆齐净值、基准、超额、回撤、年化、波动、夏普、换手、成本、年度收益、月度收益和持仓暴露十二个栏目;跑完再回答四问——哪里有效、哪里失效、对什么假设敏感、值不值得继续,答完才算「做完」回测。
2.5. 因子和机器学习,先学会走路再上天
因子阶段要掌握一套标准体检流程:IC、RankIC、分层回测、中性化、风格暴露、组合边际贡献。这套流程的本质是回答「这一列数字到底有没有用、用处多大、做完组合还剩多少」。机器学习阶段请从线性模型和树模型开始,踏实验证之后,再考虑要不要碰深度学习。
这里要泼一盆冷水:别一上来就 Transformer。金融数据出了名的难对付——信噪比低,分布会漂移,样本互相纠缠,还对成本极度敏感。在这样的数据上,复杂模型如果没有强基线对照和严格的样本外纪律,做的事通常只是「更复杂地过拟合」,而且过拟合得比线性模型更隐蔽。
阶段产出是一份多因子报告,板块一个不能少:因子定义、数据口径、IC、分层、成本、暴露、样本外、模型对比,外加一节诚实交代失败阶段。写完报告,你自己会先成为最了解这个策略局限的人——这正是研究员和赌徒的分界线。
2.6. 组合和风控,把信号变成仓位
模型给你的只是一列分数,不是一列仓位。从分数到仓位之间,隔着一整套组合构建的学问:单票上限定多少,行业约束怎么放,风格暴露允许多大,跟踪误差控制在什么范围,换手限制怎么设,成本模型怎么进优化,风险预算怎么分,事后归因怎么看。这些约束不是束缚,是把「预测」翻译成「交易」的语法。
风控最容易被误读成「最后加一层止损」。其实它是一整套监控和熔断系统:数据监控看输入,模型监控看信号漂没漂,暴露监控看组合押了什么注,再加交易成本、压力测试、回撤、VaR、限额和停用规则。用工程师的话说,那不是给程序包个 try-except,那是全套监控告警加降级预案。
阶段产出是一份组合报告:同一份预测分数,换几套不同约束,收益、风险、换手各变成什么样。做完你会真正理解一件事——优化器不是魔法,它是一台取舍机器:你给它目标,它告诉你代价。
2.7. 模拟盘和实盘边界,让流程在真实时间里跑
回测是坐着按两倍速看录像,模拟盘是真的站在场边跟着时钟走。策略按真实时间运转:每天或每月固定时间取数据、生成信号、模拟订单、记录成交、更新净值、输出报告。它检验的首先是流程,其次才是收益。很多「回测无敌」的策略,一按真实节奏跑就露馅——数据迟到、信号为空、目标股停牌,件件都是回测里不存在的问题。
然后是小资金实盘,它的唯一用途是验证真实交易链路,不是赚大钱。你要确认券商费用口径、滑点、订单状态、对账、日志、告警全都跑得通。这些全是工程问题,和策略牛不牛没关系。
阶段产出是模拟盘日志和一份实盘检查清单。清单没逐项打勾之前,不动真钱;模拟盘没稳定跑过一个周期之前,更不要想着全自动实盘。后文的模拟盘场景练习会带你完整经历第一周,你会看到流程问题到底长什么样。
2.8. 菜单都在,关键是别只吃一道菜
量化学习的资料大致分四类,各有用处,也各有坑。第一类,基础书,帮你建立金融和投资直觉,通俗但可能不精确。第二类,官方资料——交易所规则、基金说明、监管文件,枯燥但是权威口径。第三类,研究资料——论文和券商研报,给前沿方法,但论文结果未必扛得住实盘成本。第四类,代码和开源项目,给实践模板,但质量参差。
最重要的原则是别迷信任何单一来源:通俗书领你进门,官方资料告诉规则,论文给方法,代码教动手。把产品宣传当成研究证明,或者把论文回测当成实盘承诺,都是把菜名当成了菜。
读任何资料,手里拿一张固定检查单:它解决什么问题?假设是什么?数据从哪来?考虑成本了吗?能不能复现?和我手上的项目有什么关系?六个问题一过,一份资料值不值得花时间,基本就有数了。
2.9. 把「做过」变成「学会」
做十件事不复盘,约等于把一件事做十遍。节奏建议这样定:每周复盘学习内容,每月复盘项目进度,每个策略结束时写一份研究复盘。注意,复盘不是工作日志——「今天看了三小时论文」不叫复盘。复盘要回答的是:学到什么?哪里错了?下一步怎么验证?
复盘模板可以固定成七格:背景、假设、数据、方法、结果、问题、下一步。每次都按同一模板填,看着死板,好处是日后能横向对比。坚持一年,你会攒出一个别人拿不走的东西:属于自己的研究数据库,里面存的不是结论,而是判断的过程。
量化的成长几乎不靠顿悟,更像修 bug 的循环:犯错——定位——写进规则——规则沉淀成系统——系统再暴露新错误。复盘就是那个把错误变成规则的转换器。没有它,错误只会反复重演,不会变成任何东西。
数据不干净不是一个灶的问题,是机制问题——只读原文件、脚本化清洗、版本可追踪、异常自动留痕,四样全了你才允许用这份数据训练策略。
2.10. 建楼先建地基
AI、强化学习、高频、期权、另类数据……每个方向都在向你招手,每个都比「先把交易日历对齐」性感一百倍。但基础没打好,热点不会带你上天,只会带你转圈。拆开看,每个高级方向的底层都是同样四块砖:数据、回测、成本和风险。砖没有,楼就是纸糊的。
学习路线的正确姿势是建楼,不是逛集市。地基是金融和统计,一层是数据和回测,二层是因子和模型,三层是组合和交易,再往上才是各种复杂策略。地基每浅一分,能盖的高度就有限,硬往上加,结局不是盖得慢,是塌得快。
好奇心不用掐死,留着,它是燃料。但项目推进必须克制:一个完整项目没做完,不开新坑。所谓「完整」,是从数据到回测到报告到复盘的全流程。做过一个完整项目的人,和收藏了十份「量化入门资料包」的人,差距比想象大得多。
小结
这一章的正文不是让你记住几个孤立名词,而是要把它们放回同一条因果链里。读完后,先用自己的话复述下面几条判断,再顺着“小节回看”检查是否能解释每一步。
- 个人量化路线应按金融基础、数据仓库、回测框架、因子报告、模型、模拟盘、小实盘的顺序一步步推进。
- 每个阶段都要有可检查的产出,不能只停留在看书,或者对着 notebook 里的曲线自我感觉良好。
- 长期学习按金融语言、统计、数据工程、回测、因子模型、组合风控、模拟实盘的顺序逐层推进,跨层跳跃大概率返工。
- 每个阶段都得有拿得出手的产出:笔记、数据检查、回测报告、因子报告、组合报告、模拟盘日志,产出比时长更能证明你学会了。
小节回看
- 1.1. 先把金融地图补齐
- 1.2. 建一个干净的数据小仓库
- 1.3. 写一个最小回测框架
- 1.4. 做第一个因子报告
- 1.5. 多因子和简单模型
- 1.6. 模拟盘
- 1.7. 小资金实盘
- 1.8. 学习顺序不要倒过来
- 1.9. 做完才算入门
- 1.10. 什么时候该停下来复盘
- 2.1. 先把金融这门“外语”听懂
- 2.2. 统计和概率,学会问「这会不会只是噪声」
- 2.3. Python 和数据工程,先把厨房收拾干净
- 2.4. 写出第一份可信的回测报告
- 2.5. 因子和机器学习,先学会走路再上天
- 2.6. 组合和风控,把信号变成仓位
- 2.7. 模拟盘和实盘边界,让流程在真实时间里跑
- 2.8. 菜单都在,关键是别只吃一道菜
- 2.9. 把「做过」变成「学会」
- 2.10. 建楼先建地基
自测
为什么不建议一上来做深度学习策略?
如果金融口径、数据对齐和回测规则都没做对,复杂模型只会更快、更精致地过拟合错误。
第一个因子报告应该包含什么?
因子定义、数据口径、IC、分层收益、成本、换手、风险暴露、失效阶段和你的解释。
为什么学量化不能每天换个方向?
因为每个方向底下都垫着同一份金融、数据、回测和风险基础,频繁切换只会让你在「兴奋」层原地打转,永远到不了「掌握」层。
为什么一个完整项目比一个复杂模型更能练人?
它逼你走通真实量化的全流程:数据口径、交易规则、成本、报告和复盘,这些恰恰是模型再复杂也替代不了的能力。
全书复盘与自检: 从一条鱼到一个量化系统
按真实财富、金融权利、市场数据、研究验证、组合交易和人的纪律重走全书,再用判断题自检。