Skip to content

量化入门

本书主旨是用 Python 代码把量化研究的基本流程跑通:规则写清楚、历史回测、基准对照、样本外检验。重点在方法与可复现实验,不在传授金融理论或投资决策。

读者须知

关于金融知识与作者背景

作者没有专业金融背景。文中出现的 ETF、动量、回撤、Sharpe、成本等用语,仅为方便读懂实验而作的最低限度说明,不能当作金融专业指导,也不构成对概念准确性的背书。

金融市场、产品制度、会计与监管等知识,需要读者自行查阅教材、课程或合规材料加以补充。若表述与专业文献不一致,以专业来源为准。

读者对象

适合希望用代码学习「如何做量化实验」的读者,例如:

人群说明
金融科技、量化相关专业学生作编程与回测实验配套,金融课另修
量化交易 / 投研方向的编程向初学者建立「规则—回测—检验」闭环
有一定 Python 基础的开发者用代码承载策略假设并做样本外检查
对动量轮动等实验感兴趣的自学读者以跑通主线代码为主

先修建议:会读写基础 Python(变量、函数、pandas 即可)。股票 / ETF 等金融概念不要求本书教会你,需自行预习。

本书提供:可运行的 Python 示例、研究流程与过拟合等常见方法问题。
本书不提供:金融专业指导、投资建议、实盘交易方案;亦不覆盖高频做市、生产级交易系统与大规模机器学习流水线。

全书实验主线为 池内动量轮动。体例上分篇展开,并附脚本便于随文实验。内容组织参考 xingwudao/xquant-learning,章节与实验按自学需要另行编排。

常见弯路

量化入门阶段,学习者往往从 MACD 等单一技术指标入手。指标本身作为价格动量的一种表达并无问题;困难在于随后的路径:在感觉「不够用」时叠加 RSI、KDJ、布林带及各类量价因子,并在单只股票上反复试参、拼接逻辑。

其典型后果是规则日趋复杂,样本内回测偶有亮点,更换标的或样本区间后失效。症结通常不在缺少某一个指标,而在研究闭环尚未建立——规则是否明确、是否设置基准、样本外是否经得起检验。

研究取向

本书以业余常见的 单票叠指标 做法为对照,介绍主线 池内动量轮动 的学习差异。

业余常见本书主线
名称单票叠指标池内动量轮动
研究对象单只股票先定义可投资的 Universe,再在截面上比较
信号逻辑MACD + RSI + KDJ… 纵向堆指标横截面动量 等可复现因子(经典如 Jegadeesh & Titman 的动量效应)
交易方式猜测单票买卖点动量轮动 / 再平衡:按排名持有相对强势标的
检验标准单票收益曲线相对基准的组合收益、回撤、换手与样本外稳定性

前者在单标的上纵向堆叠指标以判断买卖时点;后者先界定股票池,再依据截面相对强弱定期调整,评价对象是组合整体。该框架对应学术与业界广泛讨论的横截面动量(cross-sectional momentum),而非个人指标拼盘。

学习目标

读者学完后应能表述并运用下列要点:

  1. 研究对象为组合 / Universe,而非单票指标堆叠
  2. 规则可复现:池子、信号、调仓与成本假设事先给定
  3. 设置基准:至少对照买入持有或等权持有全池
  4. 绩效评价不止于收益:波动、最大回撤、风险调整收益(如 Sharpe)、换手
  5. 识别过拟合:样本内最优须经样本外或滚动检验
  6. 理解再平衡与成本对结论的影响
  7. 区分回测与实盘:对滑点与冲击成本具备基本认识
  8. 说明主线策略动量轮动 的比较对象、换仓规则与检验方法

高频做市、完整交易系统、大规模机器学习流程及论文级交叉验证实现,不属于本课程范围。

内容结构

  • 第一单元(研究纪律):规则、回测、基准、参数优化与过拟合;收束于「单标的叠指标有风险」
  • 第二单元(主线策略):Universe、权重、动量轮动、再平衡与止损
  • 第三单元(验收与稳健性):组合绩效、walk-forward
  • 第四单元(落地与迭代):成本与滑点、研究迭代

阅读顺序(共 16 讲)

按四个单元推进。「已写」表示正文可读。

A. 研究纪律

标题一句话状态
1量化到底在干什么规则 + 重放 = 回测已写
2先拿到价格数据没有数据就没法实验已写
3每月定投(DCA)固定周期、固定金额已写
4与买入持有对照没有基准无法评价已写
5定投加均线门禁加判断不保证更好已写
6参数扫描:寻找最优均线找出样本内最优 (N)已写
7过拟合:换一段时间再考最优参数换窗易失效已写

B. 组合与主线策略

建议阅读顺序为 8 → 9 → 10 → 11 → 12(先建立轮动主线,再补全池子与权重,然后是再平衡与止损)。

标题一句话状态
8进入主线:动量轮动池内比强弱,定期换仓已写
9先定股票池 Universe没有池子,就没有横截面已写
10买多少:先从等权开始权重是规则,不是感觉已写
11再平衡:多久换一次频率 × 成本,会改结论已写
12止损:持仓期内何时动手风控规则,也可过拟合已写

C. 验收与稳健性

标题一句话状态
13组合怎么验收才专业收益、回撤、Sharpe、换手、相对基准已写
14滚动样本外:walk-forward一次切分不够,要看样本外分布已写

D. 落地与迭代

标题一句话状态
15回测到现实:成本与滑点账面收益要打折已写
16研究如何迭代监控什么、何时重做已写

16 讲正文均已具备;后续可按课程反馈增补习题与扩展池。

实验环境

依赖 Python 3.10+ 及常用科学计算库:

bash
source .venv/bin/activate
pip install yfinance pandas numpy matplotlib

python easy-quant/code/02_get_data.py
python easy-quant/code/08_momentum_rotation.py
python easy-quant/code/09_universe.py
python easy-quant/code/10_position_sizing.py
python easy-quant/code/11_rebalance.py
python easy-quant/code/12_stop_loss.py
python easy-quant/code/13_portfolio_metrics.py
python easy-quant/code/14_walk_forward.py
python easy-quant/code/15_execution_gap.py
python easy-quant/code/16_iteration.py

脚本位于 easy-quant/code/,图像输出至 easy-quant/code/output/

声明

  1. 本书仅供编程与量化方法的学习参考,不构成任何投资建议
  2. 作者无专业金融背景;文中金融相关概念仅为实验语境下的通俗说明,不具备指导作用,读者须自行补充正规金融知识。
  3. 示例多采用 ETF 与固定样本窗口,结论随数据、假设与实现细节而变化;回测不等于实盘。