2. 量化投资基础
在正式进入 Qlib 的工程实践之前,我们需要先把量化投资的语言体系建立起来。很多初学者一上手就急着写策略、跑回测,结果往往因为对交易品种、因子逻辑、Alpha 与 Beta 的边界理解不清,导致策略在实盘中迅速失效。本章的目标不是让你记住所有定义,而是让你在后续使用 Qlib 构建端到端项目时,能够准确判断“我在做什么、为什么这样做、哪里可能出错”。
一、金融市场基础概念与常见交易品种
量化投资的对象是金融市场中的可交易资产。理解这些资产的基本属性,是设计策略和选择数据源的前提。常见交易品种可以按资产类别、交易机制和风险特征进行划分。
| 品种 | 典型标的 | 交易机制 | 量化关注点 |
|---|---|---|---|
| 股票 | A股、港股、 | T+1 或 T+0,撮合竞价 | 截面因子、行业中性、停牌与涨跌停 |
| ETF | 宽基、行业、主题 ETF | 场内实时交易 | 折溢价、流动性、跟踪误差 |
| 期货 | 股指、商品期货 | T+0,保证金,双向 | 基差、展期、杠杆与强平 |
| 期权 | 50ETF 期权、商品期权 | T+0,权利金交易 | 隐含波动率、希腊字母、时间价值 |
| 可转债 | 沪深可转债 | T+0,无涨跌幅限制 | 转股溢价、条款博弈、信用风险 |
不同品种的数据频率、复权方式、交易成本和风险约束差异很大。例如股票回测必须处理复权价格和停牌,期货回测必须处理主力合约切换和保证金。Qlib 通过统一的数据表达式和配置体系来管理这些差异,但前提是你清楚自己交易的是什么。
实践建议:在 Qlib 中配置数据时,先明确标的池、时间范围、频率和复权方式。不要默认使用未复权价格做收益率计算,否则除权日会产生虚假信号。
二、因子投资:从原始数据到可交易信号
因子是量化策略的核心构件。简单说,因子是一个将原始市场数据映射为横截面排序或打分的函数。因子投资的基本假设是:某些可观测特征能够解释或预测资产的未来收益差异。
常见因子类别包括:
- 价值因子:市盈率、市净率、股息率等,捕捉估值回归。
- 动量因子:过去 N 日收益率、突破强度,捕捉趋势延续。
- 质量因子:ROE、毛利率、现金流稳定性,捕捉基本面质量。
- 波动率因子:历史波动率、下行波动,捕捉风险溢价。
- 流动性因子:换手率、成交额、Amihud 非流动性,捕捉交易摩擦。
在 Qlib 中,因子通常通过表达式引擎定义。例如一个简单的 20 日动量因子可以写成:
Ref($close, 20) / $close - 1
这个表达式表示当前收盘价相对于 20 个交易日前收盘价的变化率。Qlib 会自动处理时间对齐和缺失值。因子计算完成后,需要经过标准化、去极值、中性化等处理,才能进入模型训练或组合优化。
核心流程:原始数据 → 因子表达式 → 因子值计算 → 预处理(去极值/标准化/中性化)→ 因子合成或模型预测 → 组合构建 → 回测评估。
三、Alpha 与 Beta:收益的来源分解
在量化投资中,收益可以分解为 Beta 收益和 Alpha 收益。Beta 收益来自市场整体暴露,例如大盘上涨带来的普涨;Alpha 收益来自策略相对于基准的超额部分,通常被认为是真正的主动管理能力。
用公式表达:
R_p = α + β * R_m + ε
其中 R_p 是组合收益,R_m 是市场基准收益,β 衡量组合对市场的敏感度,α 是剔除市场暴露后的超额收益,ε 是残差。
很多看似高收益的策略,实际上只是承担了更高的 Beta。例如在牛市中满仓小盘股,收益可能很高,但一旦市场反转,回撤也会很大。量化策略的目标通常是追求稳定的 Alpha,同时控制 Beta 暴露。在 Qlib 中,可以通过基准配置和风险模型来分析组合的 Alpha 与 Beta 分解。
常见误区:把 Beta 收益误认为 Alpha。回测中如果基准选择不当,或者没有做行业和风格中性化,很容易高估策略的真实超额能力。
四、回测与实盘差异:为什么回测漂亮实盘却亏钱
回测是用历史数据模拟策略表现的过程,实盘则是在真实市场中执行。两者之间存在系统性差异,忽视这些差异是量化项目失败的主要原因之一。
主要差异来源包括:
- 交易成本:回测常忽略滑点、手续费和冲击成本,实盘中这些会显著侵蚀收益。
- 流动性约束:回测假设可以按收盘价成交,实盘中大单可能无法成交或推动价格。
- 未来函数:使用了当时不可得的数据,例如用当日收盘价决定当日开盘交易。
- 幸存者偏差:标的池只包含当前仍存活的股票,忽略了退市和重组。
- 过拟合:在历史数据上反复调参,导致策略对噪声敏感。
- 市场结构变化:交易规则、参与者结构、宏观环境发生变化,历史规律失效。
在 Qlib 中,回测框架提供了交易成本、滑点和成交限制的配置项。一个典型的回测配置片段如下:
backtest:
start_time: 2020-01-01
end_time: 2023-12-31
account: 1000000
benchmark: SH000300
exchange:
limit_threshold: 0.095
deal_price: close
open_cost: 0.0005
close_cost: 0.0015
min_cost: 5
这段配置定义了回测区间、初始资金、基准、涨跌停阈值、成交价格以及开平仓成本。合理设置这些参数,才能让回测结果更接近实盘。
复盘方法:将回测收益按时间、行业、因子暴露进行归因,检查收益是否集中在少数交易日或少数股票。如果收益高度集中,说明策略可能不稳定。
本章小结
本章建立了量化投资的基础认知框架:交易品种决定了数据与规则,因子是策略的原材料,Alpha 与 Beta 帮助我们区分收益来源,回测与实盘的差异提醒我们保持谨慎。这些概念将贯穿后续 Qlib 端到端项目的每一个环节。只有先理解市场,才能让工具真正服务于策略。