🚀 AI 一键生成 joinquant 策略代码

JoinQuant 因子库:如何调用 jqlib.alpha101 中的 alpha_001

joinquant | 发布时间: 2025/12/21
以下内容由 EasyQuant 生成。

问题描述

怎么直接使用平台提供的Alpha 001因子?

解决方案

在聚宽(JoinQuant)平台中,可以直接调用 jqlib 库来获取 WorldQuant Alpha 101 因子中的 Alpha 001。

以下是具体的使用方法和代码示例:

使用方法

  1. 导入库:需要引入 jqlib.alpha101 模块。
  2. 调用函数:直接使用 alpha_001 函数。
  3. 参数说明
    • enddate:查询日期(字符串格式,如 '2023-01-01')。
    • index:股票池,可以是指数代码(如 '000300.XSHG')或者股票代码的列表(list)。

代码示例

以下代码展示了如何在研究环境或回测中获取沪深300成分股的 Alpha 001 因子值:

# -*- coding: utf-8 -*-
from jqlib.alpha101 import *

# 方法1:获取特定指数(如沪深300)成分股的 Alpha 001 因子值
# enddate: 查询日期
# index: 指数代码
factor_data_index = alpha_001(enddate='2023-06-01', index='000300.XSHG')

print("--- 基于沪深300指数的 Alpha 001 ---")
print(factor_data_index.head())

# 方法2:获取自定义股票列表的 Alpha 001 因子值
stock_list = ['000001.XSHE', '000002.XSHE', '600000.XSHG']
factor_data_list = alpha_001(enddate='2023-06-01', index=stock_list)

print("\n--- 基于自定义股票列表的 Alpha 001 ---")
print(factor_data_list)

Alpha 001 公式说明

根据 WorldQuant 的定义,Alpha 001 的计算公式为:
$$Rank(Ts_ArgMax(SignedPower((Returns < 0 ? StdDev(Returns, 20) : Close), 2.), 5)) - 0.5$$

但在聚宽 jqlib.alpha101 的实现中,为了方便使用,通常采用简化或特定的实现版本(具体视库内部实现而定,部分文档显示公式可能为 (close - open) / ((high - low) + 0.001) 或其他变体,建议通过 alpha_001? 在研究环境中查看具体的文档字符串说明)。


Q&A

Q: Alpha 001 因子可以直接在回测中使用吗?
A: 可以。在回测策略的 handle_data 或定时运行函数中,导入 jqlib.alpha101 并调用 alpha_001 即可获取当天的因子值。注意避免使用未来数据,查询日期应为 context.current_dt 或其前一天。

Q: jqlib 中还包含其他因子吗?
A: 是的,jqlib 不仅包含 WorldQuant 的 Alpha 101 因子(jqlib.alpha101),还包含国泰君安的 Alpha 191 因子(jqlib.alpha191)以及常用的技术分析指标(jqlib.technical_analysis)。

Q: 调用 alpha_001 返回的数据类型是什么?
A: 返回的是一个 pandas.Series 对象,索引(index)是股票代码,值(value)是计算出的因子值。