QLib核心概念和术语
所属分类 quant
浏览量 5
QLib 微软开源的量化投资平台,
其核心概念和术语体系设计得非常精妙,
旨在将量化研究的全流程进行标准化和模块化
一、 核心数据模型
这是 QLib 的基础,所有研究都围绕这些数据展开
Instrument (标的/证券)
泛指可交易的投资对象,如股票、ETF、期货、指数等
在 QLib 的示例数据中,通常指 A 股市场的股票
关键属性: 唯一标识符 symbol(例如,sh600000 代表浦发银行)
Feature (特征)
从原始数据中提取的、用于模型训练的变量 通常是列
Ref($close, -1)(前一日收盘价)、
($high - $low) / $close(日内振幅)、
Mean($volume, 5)(5日平均成交量)
来源:
可以是基础行情数据(OHLCV),也可以是复杂的表达式计算得到
Expression (表达式)
QLib 强大的核心特性之一, 用于动态计算 Feature 的引擎
提供了一套 DSL(领域特定语言),支持运算符、函数、时间序列计算等
示例:
Mean(($high - $low) / $close, 5) 表示计算过去5日的平均振幅
表达式是惰性求值的,只在需要时才进行计算,极大提高了效率
Dataset (数据集)
用于训练或评估模型的核心数据结构
它是 Instrument、Feature 和 Time 的三维立方体
组成:
数据:
一个三维的 pandas.DataFrame,
其索引通常是多层索引 (pd.Timestamp, instrument)
列: 包含所有的特征 feature 以及可选的标签 label
作用: 是连接数据处理和模型训练的桥梁
二、 研究流程模块
QLib 将经典量化流程分解为以下几个可配置的组件:
DataHandler (数据处理器)
含义:
负责从数据源加载原始数据,
并通过 ExpressionEngine 计算表达式,最终生成供模型使用的 Dataset
关键配置:
features: 定义需要计算的特征(X)
labels:
定义预测目标(y),通常也是一个表达式,
例如 Ref($close, -5) / $close - 1 表示未来5日的收益率
Model (模型)
含义:
机器学习/深度学习模型本身
QLib 对模型进行了抽象,使其可以与流程的其他部分解耦
类型:
内置模型: 如 LightGBM、MLP、LSTM、Transformer 等
自定义模型:
用户可以实现自己的模型,只需继承 Model 基类并实现 fit 和 predict 方法
Strategy (策略)
根据模型的预测结果,生成具体交易指令的模块
它定义了如何将预测信号转化为投资组合权重
输入: 模型的预测值(例如,每只股票未来的预期收益率)
输出: 一个目标持仓权重字典 {instrument: weight}
示例策略:
TopK 策略(买入预测收益率最高的K只股票,等权重或按分数加权)
Backtest (回测)
模拟策略在历史数据上执行的过程,以评估其表现
核心组件:
Executor (执行器):
模拟交易执行,考虑手续费、滑点、市场流动性(成交量限制)等市场摩擦因素
Portfolio (投资组合):
记录回测过程中的账户状态,包括现金、持仓、总资产等
Record (记录)
一个实验的所有输出,包括模型、预测结果、策略信号、回测报告和绩效指标
QLib 使用 Recorder 对象来自动化管理这些记录,便于复现和比较
三、 工作流与关键术语
Task (任务)
将上述所有模块组合在一起的一个完整配置单元
一个 Task 定义了一次完整的“数据准备 -> 模型训练 -> 预测 -> 回测”流程
实现方式:
通常通过一个 task_config.yaml 或 task_config.json 文件来配置
Workflow (工作流)
QLib 驱动 Task 执行的引擎
它按照预定的顺序(训练 -> 预测 -> 回测 -> 分析)自动化地运行整个流程
使用: 用户通过 qrun task_config.yaml 命令启动工作流
Quant (研究员/分析师)
在 QLib 的在线学习模式 qrun 中,指代执行整个研究流程的主体
它包含了模型、策略等所有组件
四、 高级与支持性概念
AutoML / AutoHPS (自动机器学习/超参数搜索)
QLib 集成了自动化工具,
可以自动进行特征工程、模型选择、超参数优化,以寻找最优的预测模型
Market & Calendar (市场与日历)
定义了交易市场的时间序列,用于数据对齐和回测的时间推进
例如,ChinaStock 日历会排除中国的非交易日
Filter (过滤器)
在构建股票池时,用于筛选标的的规则
例如,剔除ST股、次新股、停牌股等
通常在 DataHandler 的 instruments 配置中指定
核心关系总结
可以将 QLib 的流程想象成一个量化流水线:
数据源头
→ DataHandler (加载数据,计算表达式,产出 Dataset)
→ Model (在 Dataset 上训练,学习特征与标签的关系)
→ Model 预测新的 Dataset,产出预测值
→ Strategy (将预测值转化为交易权重)
→ Backtest 的 Executor (模拟执行交易)
→ Portfolio (生成净值曲线和持仓记录)
→ Analysis (计算夏普比率、最大回撤等绩效指标)
QLib 示例配置文件 task_config.yaml
每一部分对应着上述的某个模块,整个框架变得非常清晰
上一篇
下一篇
量化因子挖掘策略开发回测python环境
量化投资十八问
quantstats 简介及使用例子
量化python库
Flask request 对象用法