AI 原生量化投研平台AI-native quantitative research platform
正在加载…Loading…
页面仍在加载,可以继续等待,或重新加载。The page is still loading. You can keep waiting or reload.
部分页面资源未能加载,请重新加载。Some page resources could not load. Please reload.
设备当前处于离线状态,恢复连接后可以继续等待或重新加载。Your device is offline. Once connected, you can keep waiting or reload.
Qlib 官方原版 Alpha158 全158因子
160 个字段 · 主键 date + instrument
本文整理 Alpha158 因子体系的构成、变量含义、函数说明与 158 个因子公式,可作为撰写数据因子介绍文档的基础材料。
Alpha158 是一组基于日频行情数据构建的技术类因子集合,主要使用 open、high、low、close、vwap 和 volume 等字段,通过价格结构、趋势、波动、极值位置、价量关系和成交量统计等维度描述股票或其他交易标的的历史状态。
该因子集合的一个核心特点是:大多数滚动类因子都会在 5、10、20、30、60 五个窗口上展开,从而同时覆盖短期、中期和相对长期的市场行为。
| 类别 | 数量 | 主要刻画内容 |
|---|---|---|
| K线基础因子 | 9 | 从单根K线的开盘、收盘、最高、最低价格之间的相对关系出发,刻画实体长度、上下影线和收盘位置。 |
| 静态价格因子 | 4 | 将开盘价、最高价、最低价与成交均价相对收盘价归一化,用于描述当日价格结构。 |
| 趋势类因子 | 25 | 围绕不同回看窗口的收益、均线、线性回归斜率、拟合优度和残差,刻画价格趋势与趋势稳定性。 |
| 波动类因子 | 30 | 基于滚动标准差、最高/最低价、分位数和 RSV 指标,描述价格波动区间和相对位置。 |
| 极值位置类因子 | 15 | 关注最高价与最低价在窗口内出现的位置,用于反映阶段高低点距离当前时点的远近。 |
| 价量统计类因子 | 45 | 综合价格变化与成交量变化,包括价量相关、上涨/下跌天数比例、涨跌幅累计比例和 OBV 类特征。 |
| 成交量波动类因子 | 10 | 刻画成交量相对于自身均值和标准差的偏离程度。 |
| 量价加权统计因子 | 20 | 将价格波动幅度与成交量结合,度量量价共同变化、成交量正负变动贡献和量能方向差异。 |
| 合计 | 158 | 覆盖价格、成交量与价量交互特征。 |
| 字段 | 含义 |
|---|---|
open | 开盘价 |
high | 最高价 |
low | 最低价 |
close | 收盘价 |
vwap | 成交量加权平均价,通常使用未复权数据 |
volume | 成交量 |
详见:https://bigquant.com/wiki/doc/nODcNAKYPJ/edit
Alpha158 因子体系以基础行情数据为输入,围绕价格结构、趋势强弱、波动水平、极值位置、价量关系和成交量变化等维度构造特征。其优势在于公式清晰、覆盖面广、易于批量计算,适合作为量化选股、收益预测、风险控制和机器学习特征工程中的基础技术因子集合。
Alpha158 因子表名:
cn_stock_factors_alpha_158因子字段名为:
alpha_001, alpha_002, ..., alpha_158下面示例均使用 dai.query(...).df() 读取数据。
import dai
dt = '2026-05-20'
sql = f"""select *from cn_stock_factors_alpha_158where date = '{dt}'order by date, instrument"""
df = dai.query(sql).df()df例如只读取:
dateinstrumentalpha_001import dai
dt = '2026-05-20'
sql = f"""select date, instrument, alpha_001from cn_stock_factors_alpha_158where date = '{dt}'order by date, instrument"""
df = dai.query(sql).df()dfimport dai
dt = '2026-05-20'ins = ['000002.SZ', '600000.SH', '603968.SH']
ins_str = ",".join([f"'{x}'" for x in ins])
sql = f"""select *from cn_stock_factors_alpha_158where date = '{dt}' and instrument in ({ins_str})order by date, instrument"""
df = dai.query(sql).df()df例如只读取:
alpha_001alpha_002alpha_003import dai
dt = '2026-05-20'ins = ['000002.SZ', '600000.SH', '603968.SH']factors = ['alpha_001', 'alpha_002', 'alpha_003']
ins_str = ",".join([f"'{x}'" for x in ins])factor_str = ", ".join(factors)
sql = f"""例如读取 2026-05-01 到 2026-05-20 的数据。
import dai
start_dt = '2026-05-01'end_dt = '2026-05-20'
sql = f"""select *from cn_stock_factors_alpha_158where date >= '{start_dt}' and date <= '{end_dt}'order by date, instrument"""
df = dai.query(sql).df()dfSELECT date, instrument, alpha_001, alpha_002, alpha_003, alpha_004, alpha_005 FROM cn_stock_factors_alpha_158 WHERE date >= '2026-10-06' ORDER BY date LIMIT 100
SELECT date, instrument, alpha_001, alpha_002, alpha_003, alpha_004, alpha_005 FROM cn_stock_factors_alpha_158 WHERE date >= '2026-10-06' ORDER BY date LIMIT 100