新手入门

由hxgre创建,最终由hxgre 被浏览 1 用户

新手入门

欢迎参加 “智量未来”全国高校 AI 量化投资挑战赛。

本次比赛只有一个赛题:使用 A 股 1 分钟 K 线及十档盘口数据构建 15 分钟频率因子,预测股票未来收益。比赛不设置端到端模型赛道,也不提供端到端模型模板。

比赛报名、数据研究、代码开发和提交均在 GIFP 比赛空间完成:https://gifp.bigquant.com/

一、报名与组队

参赛者须先按组委会要求完成报名和资格答题。报名成功并获得比赛空间权限后,即可进入比赛页面查看数据、克隆模板和提交代码。

  • 报名时间:2026 年 10 月 10 日至 2026 年 10 月 20 日;
  • 组队截止:2026 年 10 月 26 日 23:59;
  • 全国高等院校专科、本科、硕士、博士在校学生均可参赛,专业不限;
  • 可个人参赛,也可自由组队,每队不超过 3 人;
  • 每位选手原则上只能加入一支队伍;
  • 团队每位成员均须通过大赛官方微信小程序报名,并在资格答题中达到 90 分。

比赛数据位于数据平台的 “智量未来”全国高校AI量化投资挑战赛 目录,也可从比赛页面的数据入口查看数据说明。

二、选择并克隆模板

在比赛页面的代码区域选择模板,克隆到自己的开发环境后再修改。请勿直接编辑公共模板。

模板 适用方式 特点
demo_sql.ipynb 使用 DAI SQL 计算因子 速度快、内存占用较低,推荐优先使用
demo_udf.ipynb 使用 DAI UDF 封装自定义 Python 逻辑 适合 SQL 不便直接表达的计算
demo_py.ipynb 使用 pandas、NumPy 计算因子 编写灵活,但需特别注意内存和运行效率

三个模板都演示了如何从 1 分钟盘口数据计算订单簿压力、聚合为 15 分钟因子、对齐沪深 300 历史成分股,并调用比赛评估模块。

三、了解比赛数据

1. 数据范围

  • 股票池:沪深 300 指数历史成分股,以各历史时点的实际成分为准;
  • 比赛规则规定的历史数据区间:2021 年 1 月 1 日至 2025 年 12 月 31 日;
  • 数据频率:1 分钟;
  • 行情字段:开盘价、最高价、最低价、收盘价、成交量、成交额、成交笔数等;
  • 盘口字段:十档买卖价格、委托量和委托笔数等。

不同评测阶段由平台提供对应的数据表,代码不得假设训练集、公榜和私榜使用同一个物理表名。

2. 数据表

开发数据目录中的主要数据表如下:

数据表 说明
cpt_gifp_2026_stock_bar1m 沪深 300 历史成分股的 1 分钟 K 线及十档盘口数据
cpt_gifp_2026_instruments 15 分钟采样时点对应的沪深 300 历史成分股股票池
cpt_gifp_2026_exposure 每日 BARRA 风格因子、行业暴露及相关辅助字段
cpt_gifp_2026_return 比赛评估使用的收益标签及其辅助字段

因子开发主要通过平台注入的 bar1m 逻辑数据源读取分钟行情。cpt_gifp_2026_instruments 可用于在本地调试时对齐每个 15 分钟截面的股票池。收益标签和评测用数据不应被用于构造因子或引入未来信息。

3. 15 分钟采样时点

每天共有 16 个合法因子截面:

09:45  10:00  10:15  10:30  10:45  11:00  11:15  11:30
13:15  13:30  13:45  14:00  14:15  14:30  14:45  15:00

不得输出集合竞价、午间休市等其他时点,也不得使用因子时点之后的数据。

四、实现评测入口

提交的 Notebook 中必须定义以下入口函数:

def main(datasources, start_date, end_date):
    # 读取数据并计算因子
    return result

平台会传入:

  • datasources:数据源逻辑名与当前评测阶段物理表名的映射;
  • start_date:本次评测的开始时间;
  • end_date:本次评测的结束时间。

当前模板使用的逻辑数据源为:

逻辑名 数据
bar1m 1 分钟 K 线及十档盘口数据

请始终通过逻辑名取得实际表名:

bar1m = datasources["bar1m"]

再在查询中使用变量:

sql = f"""
SELECT date, instrument_id, close, volume
FROM {bar1m}
"""

不要在因子查询中硬编码 cpt_gifp_2026_stock_bar1m。平台会在训练、公榜和私榜阶段切换实际数据表,硬编码物理表名可能导致评测失败或构成数据违规。

因子所需的包导入、自定义函数和参数配置应放在 main() 内,或随提交文件一并提供。本地调试和画图代码建议放在:

if __name__ == "__main__":
    # 本地调试代码;平台调用 main() 时不会执行

五、返回结果要求

main() 必须返回仅包含以下三列的 DataFrame:

字段 类型 说明
date datetime 合法的 15 分钟因子计算时点,精确到分钟
instrument string 股票代码
factor numeric 因子值,默认越大表示预测收益越高

示例:

date instrument factor
2024-01-02 10:00:00 000001.SZ 0.0521
2024-01-02 10:00:00 000002.SZ -0.1184

返回前建议完成清理:

result = result.replace([np.inf, -np.inf], np.nan)
result = result.dropna(subset=["factor"])
result = result.drop_duplicates(["date", "instrument"])
return result[["date", "instrument", "factor"]]

提交结果须满足:

  • 输出必须且仅有 date、instrument、factor 三列;
  • date 均为平台规定的合法 15 分钟采样时点;
  • 覆盖评估区间内平台要求的交易日和采样截面;
  • 每个评估截面的因子缺失率不高于 40%;
  • 不含无穷值、不可解析的数值或重复的 date + instrument;
  • 已与对应时点的沪深 300 历史成分股对齐;
  • 因子只使用计算时点及此前可获得的信息。

如果原始因子值越小代表预测收益越高,应在返回前调整方向。

六、本地开发与评估

分钟盘口数据量较大,建议先用较短时间区间验证逻辑,再逐步扩大范围:

  • 只查询计算所需字段;
  • 调用 dai.query 时优先使用 compression=True;
  • 能用 DAI SQL 完成的筛选、聚合和时序计算,尽量不要先拉取全部数据到 pandas;
  • 滚动因子可在 start_date 之前多读取一段历史数据,但最终只返回评测区间内的结果;
  • 聚合时严格按照 15 分钟区间处理,避免跨越午间休市或使用未来分钟;
  • 使用 cpt_gifp_2026_instruments 对齐历史股票池,避免使用未来成分股信息。

模板中的本地调试映射示例为:

datasources = {"bar1m": "cpt_gifp_2026_stock_bar1m"}
factor_data = main(datasources, start_date, end_date)

计算完成后,可调用比赛评估模块:

from bigmodule import M

result = M.gifp_eval._latest(
    factor_data=factor_data,
    show=True,
)

平台会按统一口径进行必要的去极值和标准化,并对 BARRA 风险因子及平台本地因子库进行回归,以残差因子评估新增预测能力。评分综合考虑 IC 均值、ICIR、多空组合夏普比率、换手率和最大回撤。

七、提交代码

开发完成后,在比赛页面提交代码。平台会在当前评测阶段的数据上重新运行 main(),因此提交的是可复现代码,而不是预先计算好的离线因子文件。

提交前请检查:

  • 提交中有且仅有一个作为评测入口的 Notebook;
  • Notebook 中存在可调用的 main(datasources, start_date, end_date);
  • 通过 datasources["bar1m"] 获取评测行情表;
  • 所需的脚本、配置等文件均已上传;
  • 代码在指定线上环境中能够从头完整运行;
  • 返回列、数据类型、采样时点、股票池和评测区间均正确;
  • 未访问外部网络,未读取未授权数据,未使用未来信息。

提交后可在比赛页面的提交记录中查看运行状态和成绩。评测任务可能需要排队,请勿在短时间内重复提交同一份代码。

若评测失败,建议依次检查:

  1. Notebook 是否正确定义 main();
  2. 是否通过 datasources 获取分钟行情表;
  3. 查询时间范围是否覆盖所需的历史窗口;
  4. 是否遗漏脚本或配置文件;
  5. 返回结果是否严格为三列,且不存在非法值或重复记录;
  6. 输出时间是否均为合法的 15 分钟截面;
  7. 内存占用或运行时间是否过高。

八、公榜与私榜

阶段 时间 说明
公榜 2026 年 10 月 20 日至 11 月 20 日 用于研究反馈和因子迭代
提交截止 2026 年 11 月 20 日 截止后不再接受新的公榜提交
私榜候选选择截止 2026 年 11 月 21 日 23:59:59 每队最多确认 2 个有效提交
私榜 2026 年 11 月 21 日至 11 月 27 日 在未参与公开评分的数据上重跑候选因子

候选确认后,代码、参数、依赖和随机种子均不得修改。团队公榜和私榜成绩分别取本队有效提交中的最高分;最终以私榜结果及合规复核确定初赛排名,排名前 10 的队伍晋级决赛,具体名单以组委会正式公告为准。

九、决赛准备

入围队伍须提交 10—15 页的因子研究报告(PDF),以及组委会要求的代码复现、依赖和数据使用说明。报告建议包含:

  • 摘要与研究背景;
  • 因子的金融逻辑或市场微观结构解释;
  • 数据处理和因子构建方法;
  • 实证结果、稳健性检验和风险分析;
  • 创新性、局限性与结论。

线下决赛拟于 2026 年 12 月底或 2027 年 1 月初在北京合作高校举行,具体日期和地点以组委会通知为准。每队进行 10 分钟展示和 5 分钟评委问答。

十、交流与合规

可通过比赛页面的讨论区及组委会公布的官方渠道咨询平台使用、数据理解、提交报错和研究方法等问题。

请注意:

  • 不得传播比赛受限数据、他人非公开代码、账号凭证等敏感信息;
  • 分享资料或开源代码时须注明来源并遵守相应许可;
  • 指导教师可提供学术指导,但不得代替参赛者编写、调试或提交代码;
  • 所有研究、回测和排名结果仅用于比赛与学术交流,不构成投资建议或收益承诺;
  • 比赛时间、决赛安排、晋级名额和其他规则如有调整,以组委会正式通知为准。

\

十一、计算资源与辅助工具

在 GIFP 独立空间中已经配置了 2 种免费的资源规格,请大家按需获取。

类型 配置 费用
免费 CPU 4 核 / 16 GiB 免费
免费 CPU 8 核 / 32 GiB 免费

\

{link}