量化投资入门
量化投资 是用数学模型 + 程序化 的方式做投资决策,相比主观投资,纪律性、可复制、可回测 是其核心优势。
🎯 什么是量化投资
与主观投资的对比
| 维度 | 主观投资 | 量化投资 |
|---|---|---|
| 决策方式 | 人工判断 | 模型 + 程序 |
| 情绪 | 受情绪影响大 | 无情绪 |
| 可复制 | 难 | 易 |
| 可回测 | 难 | 易 |
| 处理数据 | 有限 | 海量 |
| 容量 | 小 | 大 |
| 收益 | 取决于人 | 取决于模型 |
| 风险 | 取决于人 | 取决于模型 |
量化投资的优势
- 纪律性:严格执行模型,不受情绪影响
- 可回测:历史数据验证策略
- 可复制:策略可标准化、自动化
- 分散化:可同时持有多只股票
- 速度:程序化执行毫秒级
📊 量化策略分类
按持仓周期
| 周期 | 频率 | 典型策略 |
|---|---|---|
| 超高频 | 秒级 | 统计套利、做市 |
| 高频 | 分钟级 | 短线博弈、T+0 |
| 中频 | 日级 | 趋势跟踪、动量 |
| 低频 | 周-月级 | 多因子、价值选股 |
| 超低频 | 季-年级 | 资产配置、再平衡 |
按策略类型
| 策略 | 原理 | 风险 |
|---|---|---|
| 多因子选股 | 综合 PE / ROE / 动量等多因子排序 | 中 |
| 趋势跟踪 | 跟随价格上涨趋势 | 中 |
| 均值回归 | 偏离均值时反向操作 | 中 |
| 统计套利 | 配对交易、跨期套利 | 中低 |
| 市场中性 | 多空对冲、剥离市场风险 | 中低 |
| 事件驱动 | 公告、重组、分红等事件 | 中高 |
| 高频做市 | 提供流动性,赚取价差 | 低 |
| 机器学习 | AI 预测价格 / 走势 | 中高 |
🛠️ 量化投资的工作流程
完整流程
Step 1 策略构思(Idea)
↓
Step 2 编写代码
↓
Step 3 历史回测(Backtest)
↓
Step 4 样本外测试(Out-of-Sample)
↓
Step 5 模拟盘(Paper Trading)
↓
Step 6 小资金实盘
↓
Step 7 大规模实盘
↓
持续监控 / 调优 / 更新关键步骤说明
| 步骤 | 目的 | 时间 |
|---|---|---|
| 回测 | 验证策略在历史上是否赚钱 | 1-2 周 |
| 样本外测试 | 防止过拟合 | 1-2 周 |
| 模拟盘 | 验证实盘运行 | 1-3 月 |
| 小资金实盘 | 验证可执行性 | 3-6 月 |
| 大规模实盘 | 真实收益 | 持续 |
🔧 主流策略详解
1. 多因子选股
核心思想:综合多个因子打分排序,选出最优质的股票。
常见因子:
| 因子 | 说明 | 方向 |
|---|---|---|
| 价值因子 | PE、PB、PS 倒数 | 低估值高分 |
| 成长因子 | 营收增速、利润增速 | 高增长高分 |
| 质量因子 | ROE、毛利率 | 高质量高分 |
| 动量因子 | 过去 N 月涨幅 | 高动量高分 |
| 波动因子 | 波动率 | 低波动高分 |
| 流动性因子 | 成交额 | 高流动性高分 |
| 规模因子 | 市值 | 小盘高分(小盘溢价) |
示例模型(简化):
python
# 伪代码
def score(stock):
value = 1 / stock.PE
quality = stock.ROE
momentum = stock.return_12m
return 0.4 * value + 0.4 * quality + 0.2 * momentum
# 每月选 top 50
top_50 = sorted(universe, key=score)[:50]2. 趋势跟踪(CTA)
核心思想:跟随上涨趋势买入,跟随下跌趋势卖出。
典型指标:
- 均线:MA5 / MA10 / MA20
- MACD:金叉 / 死叉
- 布林带:突破上轨 / 跌破下轨
- ATR:波动率止损
示例:
股价站上 MA20 且 MA5 > MA20 → 买入
股价跌破 MA20 → 卖出
止损:买入价 - 2 × ATR3. 均值回归
核心思想:价格偏离均值时反向操作。
典型指标:
- 布林带:跌破下轨买入、突破上轨卖出
- RSI:< 30 买入、> 70 卖出
- 价格偏离均线 N% 买入
适合:
- 震荡市
- 短线(数天)
4. 市场中性(Alpha 套利)
核心思想:做多 alpha 股票 + 做空指数,对冲市场风险。
步骤:
- 选股模型选出预期跑赢市场的股票(alpha 50)
- 做多这 50 只(等金额)
- 做空等金额的沪深 300 指数(IF 期货 / IH 期货)
- 赚取 alpha 收益(不依赖大盘涨跌)
收益特征:
- 与大盘相关性低
- 适合绝对收益 投资者
5. 统计套利
配对交易:
- 找出高度相关的两只股票(A、B)
- 当 A/B 比值偏离历史均值时:
- 多 A 空 B(如果 A 相对低估)
- 多 B 空 A(如果 B 相对低估)
- 比值回归时平仓
跨期套利:
- 同一 ETF 不同月份合约
- 价差回归套利
💻 量化工具与平台
编程语言
| 语言 | 优点 | 适合 |
|---|---|---|
| Python | 易学、库丰富、主流 | 中低频、回测、数据分析 |
| C++ | 速度极快 | 高频 |
| R | 统计强 | 因子研究 |
| Matlab | 矩阵计算强 | 学术 |
国内量化平台
| 平台 | 类型 | 特点 |
|---|---|---|
| 聚宽(JoinQuant) | 在线 | 免费回测、模拟盘 |
| 优矿(Uqer) | 在线 | 通联数据 |
| 米筐(Ricequant) | 在线 | 量化社区 |
| BigQuant | 在线 | AI 量化 |
| 迅投 QMT | 券商 | 实盘交易 |
| 恒生 PTrade | 券商 | 实盘交易 |
| 国信 iQuant | 券商 | 实盘交易 |
| 华宝 ATC | 券商 | 智能交易 |
数据来源
| 数据 | 来源 |
|---|---|
| 行情数据 | Tushare、AKShare、BaoStock |
| 财务数据 | Tushare、Choice、Wind |
| 指数数据 | 中证指数公司官网 |
| 新闻 / 舆情 | Tushare、聚宽 |
📊 回测要点
1. 数据准备
- 复权方式:前复权(推荐)
- 样本期:至少 5 年
- 训练 / 测试划分:80% / 20%
2. 防止过拟合
| 方法 | 说明 |
|---|---|
| 样本内 / 样本外 | 数据分两段 |
| Walk Forward | 滚动优化 |
| 交叉验证 | K 折 |
| 简化模型 | 参数少 = 过拟合风险低 |
| 经济意义 | 策略有"为什么赚" |
3. 真实交易成本
| 成本 | 数值 |
|---|---|
| 印花税 | 0.05%(卖出) |
| 过户费 | 0.001% |
| 佣金 | 1-3‱ |
| 滑点 | 0.05-0.2% |
| 冲击成本 | 大单买入 / 卖出时 |
⚠️ 滑点和冲击成本 是回测和实盘差距的主要来源。
4. 评估指标
| 指标 | 含义 | 优秀 |
|---|---|---|
| 年化收益 | 复利年化 | > 15% |
| 最大回撤 | 历史最大亏损 | < 15% |
| 夏普比率 | (收益 - 无风险) / 波动 | > 1.5 |
| 卡玛比率 | 年化收益 / 最大回撤 | > 2 |
| 胜率 | 盈利笔数 / 总笔数 | > 50% |
| 盈亏比 | 平均盈利 / 平均亏损 | > 2 |
⚠️ 量化投资的风险
1. 模型风险
- 过拟合:策略在历史有效,未来失效
- 黑天鹅:极端行情下模型可能失效
2. 技术风险
- 程序 bug 导致意外交易
- 服务器宕机、网络延迟
3. 监管风险
- 监管对量化交易越来越严格
- 高频交易可能被限制
4. 流动性风险
- 极端行情下无法成交
- 熔断 / 跌停 / 涨停 时的策略失效
5. 同质化风险
- 同一策略被很多人使用
- 收益会被摊薄
🎓 学习路径
新手阶段(1-3 月)
- 学习 Python 基础
- 学习 Pandas / NumPy
- 在聚宽 / 米筐等平台跑现成策略
- 阅读《打开量化投资的黑箱》
进阶阶段(3-6 月)
- 自己写多因子模型
- 学习回测框架(Backtrader)
- 学习专业数据接口
- 阅读《Advances in Financial Machine Learning》
高阶阶段(6 月+)
- 实盘策略
- 机器学习应用
- 高频 / 低延时系统
- 量化择时 / 资产配置
📚 推荐资源
书籍
- 《打开量化投资的黑箱》(Rishi Narang)
- 《Advances in Financial Machine Learning》(Marcos López de Prado)
- 《Quantitative Trading》(Ernest Chan)
- 《海龟交易法则》
网站 / 社区
- 聚宽社区:https://www.joinquant.com
- 优矿社区:https://uqer.io
- 米筐社区:https://www.ricequant.com
- BigQuant:https://bigquant.com
- Tushare:https://tushare.pro
开源框架
- Backtrader(Python 回测)
- Zipline(Python 回测)
- vnpy(Python 实盘)
- Qlib(微软 AI 量化)