敦和杯·2025届因子挑战赛
比赛时间: -
数据驱动未来,代码挖掘阿尔法(Data Drives the Future. Code Mines the Alpha)
主办方:敦和资管
比赛介绍
## **赛事介绍**
在现代量化投资领域,阿尔法因子 (Alpha Factor) 是获取超额收益的核心。一个有效的因子,能够从海量、嘈杂的市场数据中精准地预测未来股价的动向。对于像敦和资本这样的资产管理机构而言,持续不断地挖掘、迭代高质量的因子,是保持投资策略领先地位的关键。
敦和资管成立于2011年,是一家中国本土成长起来,致力于国内外资本市场投资的大类资产配置私募基金公司。多年以来,敦和资管逐步探索并形成了基本面驱动的股票、债券和大宗商品等多资产配置,现货、期货、期权和场外衍生品等多工具使用,以及不同风险收益特征的多策略构建能力。围绕建立“一切以客户为中心”的一流资产管理机构发展目标,敦和资管已经建立并形成了包括投研、系统建设、市场营销、合规风控、人力资源和财务支持的前中后台全面保障运营体系。
我们相信,最卓越的投资思想往往源于开放的探索与协作。因此,我们选择通过本次挑战赛,开放真实的、高颗粒度的市场数据,邀请全球顶尖高校的人才与我们共同迎接这一挑战。
在本次比赛中,您将有机会接触到稀缺、高质量的A股市场分钟级行情数据。您的任务是利用这些数据,构建一个能够预测未来股票收益的创新因子。您的因子模型将在两个阶段进行评估:首先是在历史数据上进行回测的“公榜”得分,然后是在全新的、动态更新的市场数据上进行模拟的“私榜”得分,以确保您的策略在真实世界中的稳健性。
通过本次竞赛,您将获得处理大规模金融时序数据的宝贵实战经验,深入理解市场微观结构,并直面顶级量化机构在日常研究中遇到的真实挑战。我们期待看到参赛者们应用创新的方法,解决这个充满挑战且激动人心的量化投资难题。
**入门指南**
为了帮助参赛者更好地准备,我们与合作的线上量化平台共同准备了一系列入门资源:
* **技术工作坊**:由平台方工程师主讲,详细介绍平台功能、API使用、数据结构及因子分析框架。
* **模版代码**:我们将提供一个包含数据读取、因子构建范例和评估流程的核心代码 Notebook,帮助您快速上手。
* **线上答疑会**:我们将在赛程中安排资深投研专家进行线上讲座与答疑,分享行业前沿动态。
## **数据说明**
本次竞赛提供高质量的A股市场历史行情数据,具体如下:
* **股票池**: 中证1000指数在历史相应时间点上的成分股。
* **时间范围**: 2023-01-01至2024-12-31。
* **数据频率**: 1分钟级别K线及盘口快照数据。
* **数据内容**: 包含开、高、收、低、成交量、成交额以及买卖盘口等字段。
## **模版代码**
本次竞赛采用”**高频因子低频化**”的方式,平台提供高频数据,参赛者构建日频因子并提交。主办方将提供如下多个模版代码供参赛者参考:
* 用SQL计算vwap因子,参考 demo_sql.ipynb。
* 用python计算vwap因子,参考 demo_spread.ipynb。
* 利用机器学习算法构建AI因子,参考 demo_ai.ipynb。
## **赛程安排**
### **阶段一:报名**
* **时间周期**:2025-10-15 至 2025-10-31
* **开幕仪式暨宣讲会**:2025-10-31 10:00:00(具体地点另行通知):比赛开幕仪式,邀请专家老师进行宣讲,分享量化实战经验、解读赛题、介绍实习文化,宣讲会有精美小礼品,先到先得。
* **报名和组队**:通过活动主页进行报名,或联系兴趣团老师。可单人或多人组队(单一队伍最多不超过3人)。报名完成后可加入官方社群(微信/QQ群)寻找队友。报名截止时间为“**2025-11-20**”。
### **阶段二:初赛**
* **时间周期**:2025-11-01 至 2025-12-31
* **运行机制**:
* 以**2025-11-30 00:00:00**作为**截止日期**。
* 在截止日期前,参赛队伍可利用平台提供的数据开发因子并按照规范提交代码,平台会使用验证集数据构建对应的因子数据并打分实时更新排名,以队伍最好的一次得分进行展示在”公榜(Public Leaderboard)”上;同时,参赛队伍可以选择和替换总计不超过3个因子作为截止日后的候选因子。
* 在截止日期后,参赛者将不允许修改候选因子的构建代码;平台在2025年12月01日至2025年12月31日期间的每个交易日盘后,会根据参赛者提供的代码增量构建因子数据,每日计算得分排名,并以队伍最好的一次得分进行展示在”私榜(Private Leaderboard)”上。
* 线上技术工作坊:由合作平台方工程师主讲,详细介绍平台功能、API使用、数据结构及因子分析框架。
* **账号与数据发放**:向所有成功报名的队伍发放比赛专用账号,开放数据访问权限。
* **验证集数据**:选择**2025-01-01至2025-08-30 中部分交易日的1分钟数据**作为验证集数据。
* **中期答疑会**:赛程中段安排一次线上Q&A,解答选手在研究中遇到的共性问题。
### **阶段三:决赛**
* **时间**:2026-01-01 至 2025-01-31
* **决赛名单公布**:组委会根据私榜阶段最终得分和排名,公布15支入围决赛的队伍名单。
* **决赛辅导**:为每支决赛队伍提供一次30分钟的线上辅导,帮助其深化研究报告。
* **提交材料**: 参赛队伍需提供以下材料:
* 因子研究报告 (.pdf, 10-15页):一份结构完整、论证严谨的深度报告,建议包含以下章节:
* 摘要 (Abstract)
* 引言 (Introduction):因子研究背景与文献综述。
* 因子构建 (Factor Construction):详细阐述数据预处理、因子计算公式与逻辑。
* 实证分析 (Empirical Analysis):全面的因子分析回测结果展示、绩效归因分析、稳健性检验(如不同市场周期、不同行业下的表现)。
* 创新性与局限性讨论 (Innovation and Limitations)。
* 结论 (Conclusion)。
### **阶段四:颁奖**
- **时间**:2026年1月底(时间于比赛微信群另行通知)
- **决赛答辩会**: 采用“10分钟展示 + 5分钟评委问答”的形式。线下举行,并同步线上直播。
- **颁奖典礼**: 答辩结束后,现场公布最终名次,并举行隆重的颁奖典礼,邀请所有嘉宾、评委与选手共同参与。
## **评估**
### **公榜与私榜评估指标**
本竞赛公榜(Public Leaderboard)与私榜(Private Leaderboard)阶段的排名将完全基于量化评估。评估分为两个步骤:数据检测和得分计算。
1. **数据检测**:您提交的因子必须首先通过以下所有检测,否则将被视为无效提交。
* **数据列检查**:因子数据文件必须且仅包含三列:`date` (交易日), `instrument` (股票代码), `factor` (因子值)。
* **交易日完整性检查**:因子数据不能缺失所要求时间范围内的任何一个交易日。
* **因子覆盖度检查**:在每个交易日,因子值缺失率不得高于 **40%**。
2. **数据处理**:通过数据检测后,系统会将您的因子数据与 BARRA 风险因子进行回归取残差作为新的因子,剔除风格因子的影响。
3. **最终得分**:系统将基于您的因子值计算**IC均值、ICIR、夏普比率、换手率**等指标,并依据各参赛者在这些指标上的**实时排名**,按以下公式计算最终得分:
$$
Score = 0.4 \times \text{Rank}_{IC_{mean}} + 0.3 \times \text{Rank}_{IC_{IR}} + 0.2 \times \text{Rank}_{SR} + 0.1 \times \text{Rank}_{Turnover}
$$
其中,$\text{Rank}_{指标}$ 代表该指标在所有参赛者中的实时百分比排名,除了换手率指标数值越小表现越好,其余指标数值越大表现越优。最终得分是四项指标排名的加权和,得分越低,代表综合排名越靠前。
### **决赛评估**
入围决赛的队伍将由评审委员会进行综合评估,评分标准如下:
* **因子质量与创新性 (40%)**:
* 逻辑性与原创性 (20%): 因子背后的经济学逻辑或市场微观结构解释是否清晰、合理、有创新。
* 有效性与稳健性 (20%): 因子在不同市场周期、不同行业下的表现是否稳定。
* **研究深度与规范性 (30%)**:
* 研究报告质量 (20%): 报告结构是否严谨、分析是否深入、论证是否充分。
* 代码质量 (10%): 代码是否规范、可读性强、易于复现。
* **现场表现 (30%)**:
* 陈述表达 (15%): 对研究工作的理解是否深刻,表达是否清晰、有条理。
* 问答互动 (15%): 回答评委提问是否精准、有逻辑。
### **提交文件**
在本次比赛中,您只需要按照**模版代码**里的例子,将因子构建代码写在**main**函数中并提交,平台会自动运行生成因子数据,计算得分并实时公布。但需要注意,要保证**main**函数的返回数据格式应遵循特定格式,比如:
| date | instrument | factor |
|------------|------------|-------|
| 2023-01-03 | 000001.SZ | 0.05 |
| 2023-01-03 | 000002.SZ | -0.12 |
| ... | ... | ... |
## **赛事奖励**
* **奖金**
* 特等奖1名:20000元
* 一等奖2名:10000元
* 二等奖4名:5000元
* 三等奖8名:2000元
* 签约奖(入职/实习)6名:8000元。
* **Offer**:
* 决赛入围者即可获得进益资本实习面试“绿卡”
* 优秀选手有机会直接锁定实习Offer,开启职业生涯。
## **代码要求**
本次竞赛为代码竞赛,所有提交必须通过合作的线上量化平台完成。为保证竞赛公平性,您的代码需满足以下条件:
* **平台提交**: 所有因子生成代码必须在指定的线上平台Notebook环境中运行并提交。
* **运行时长限制**: CPU Notebook \<= 9 小时。
* **禁止访问外部网络**: 为防止信息泄露和使用未来数据,Notebook的互联网访问权限将被禁用。
* **外部数据**: 禁止使用未经官方许可的任何外部数据。
* **最终提交**: 您提交的必须是可以自动运行并生成因子文件的代码,而非因子数据文件本身。
## **竞赛规则**
* **团队规模**: 每支队伍人数为1-3人,每位选手只能加入一支队伍。
* **知识产权**: 参赛作品(代码、报告等)的知识产权归参赛队伍所有。主办方对所有作品拥有非商业性的评审、展示和宣传权利。对于获奖的优秀因子,主办方在同等条件下拥有优先的商业合作洽谈权。
* **诚信竞赛**: 严禁任何形式的抄袭、作弊或共享代码行为。一经发现,将立即取消该队伍的参赛资格。
* **最终解释权**: 本赛事所有规则的最终解释权归进益资本大赛组委会所有。
## **竞赛支持**
* **官方交流社群**:建立赛事官方微信/QQ群,用于日常通知发布、技术问题解答和选手间交流。
* **FAQ文档**:在官网建立持续更新的“常见问题解答”页面。
* **学术资源**:提供经典的因子研究论文列表,供选手参考。
奖金&奖项
¥10000
比赛数据
## 数据集
本次竞赛,平台将提供高质量的A股市场行情数据:
* **训练集**
* **时间范围**: 2023年1月1日至2024年12月31日。
* **股票池**: 中证1000指数在历史相应时间点上的成分股。
* **数据频率**: 1分钟级别K线及盘口快照数据。
* **数据结构**: 包含开、高、收、低、成交量、成交额以及买卖盘口等字段。
* **访问方式**: 表名:cpt_dho_2025_stock_csi1000_bar1m。
* **访问链接**:https://bigquant.com/data/datasources/cpt_dho_2025_stock_csi1000_bar1m。
* **设计目的**: 在截止日前,参赛者可以用该数据开发测试各类因子。
* **compression参数**:由于分钟数据量较大,建议将compression设置为ture,防止数据读取时内存溢出。
* **资源规格**:由于分钟数据量较大,建议使用 **4C/16G** 和 **8C/32G** 资源规格。
* **验证集**
* **时间范围**: 2025年1月1日至2025年8月30日中部分交易日。
* **股票池**: 中证1000指数在历史相应时间点上的成分股。
* **数据频率**: 1分钟级别K线及盘口快照数据。
* **数据结构**: 与 cpt_dho_2025_stock_csi1000_bar1m 相同。
* **访问方式**:参赛者无法访问该数据。
* **设计目的**: 在初赛阶段的截止日前,参赛者提交因子代码后,平台基于该数据计算因子数据并计算得分。
* **评估集**
* **时间范围**: 在2025年11月1日至2025年11月30日期间,每日增量更新。
* **股票池**: 中证1000指数在历史相应时间点上的成分股。
* **数据频率**: 1分钟级别K线及盘口快照数据。
* **数据结构**: 与 cpt_dho_2025_stock_csi1000_bar1m 相同。
* **访问方式**: 参赛者无法访问该数据.
* **设计目的**: 在初赛阶段截止日后,平台在每个交易日增量更新该数据,防止因子构建时的过拟合和未来函数。
## 访问例子
参赛者在 AISTUDIO 中通过 dai.query() 接口编写 SQL 代码访问数据。**特别说明:**由于分钟数据量较大,建议读取数据时将参数 compression 设置为 True,防止内存溢出,后文会给出详细对比说明。
* 读取所有数据(注意:分钟数据量较大,读取消耗内存较大,时间较长)
```python
import dai
df = dai.query(
"""
SELECT *
FROM cpt_dho_2025_stock_csi1000_bar1m
""",
filters={
"date": ["2023-01-01 09:00:00", "2024-12-30 16:00:00"],
},
compression=True
).df()
df.head()
```
* 读取单只股票、指定时间周期的收盘价数据
```python
import dai
df = dai.query(
"""
SELECT date, instrument, close
FROM cpt_dho_2025_stock_csi1000_bar1m
WHERE date>'2024-12-02 09:00:00' and date < '2024-12-02 16:00:00'
AND instrument='000012.SZ'
""",
compression=True
).df()
df.head()
```
* 读取多只股票、指定时间周期的收盘价数据
```python
import dai
df = dai.query(
"""
SELECT date, instrument, close
FROM cpt_dho_2025_stock_csi1000_bar1m
""",
filters={
"date": ["2024-12-02 09:00:00", "2024-12-02 16:00:00"],
"instrument": ["000012.SZ", "000016.SZ"]
},
compression=True
).df()
df.head()
```
## compression 参数
由于分钟行情数据量较大,且其中的 instrument 列为字符串类型,直接载入内存会占用大量空间,容易引发内存溢出。为此,DAI 数据引擎提供了 **compression** 参数。开启该参数(设为 True)后,系统会自动将 instrument 列的字符串类型转换为 category 类型,从而显著降低内存占用,同时读取性能基本不受影响。
在 4C/16G 的资源环境下测试同一组数据,结果如下:
* compression = True:读取耗时 20.78 秒,内存占用 2.38 GB。
* compression = False:读取耗时 19.13 秒,内存占用 9.30 GB。
测试表明,两种设置下读取效率相近,但内存使用差距显著,开启 compression 后内存占用大幅降低。
```python
import dai
import pandas as pd
from datetime import datetime
def get_data(start_date: str, end_date: str, compression: bool) -> pd.DataFrame:
df = dai.query("""
SELECT date, time, trading_day, instrument, close
FROM cpt_dho_2025_stock_csi1000_bar1m
""", filters={
'date': [f'{start_date} 08:00:00', f'{end_date} 21:00:00'],
}, compression=compression).df()
return df
start_date = '2023-01-01'
end_date = '2024-12-31'
# 将 compression 设置为 True 读取数据
t0 = datetime.now()
df_true = get_data(start_date, end_date, True)
t1 = datetime.now()
memory_of_true = df_true.memory_usage(deep=True).sum() # 计算内存
print(f"[compression=True] 读取数据!数据大小: {df_true.shape}, 耗时: {round((t1-t0).total_seconds(), 4)} 秒; 内存使用: {memory_of_true / 1024 ** 3:.2f} GB")
# 将 compression 设置为 False 读取数据
df_false = get_data(start_date, end_date, False)
t2 = datetime.now()
memory_of_false = df_false.memory_usage(deep=True).sum() # 计算内存
print(f"[compression=True] 读取数据!数据大小: {df_false.shape}, 耗时: {round((t2-t1).total_seconds(), 4)} 秒; 内存使用: {memory_of_false / 1024 ** 3:.2f} GB")
```
## DAI 文档
DAI(DATA FOR AI)是平台研发的高性能分布式数据平台
* 使用简单:通过统一接口访问BigQuant各类数据。
* 数据丰富:提供PB级金融数据、另类投资数据和因子数据 (数据字典),并支持用户自定义数据。
* 技术先进:采用现代化的分布式架构,支持大规模数据的低延迟读写和高性能计算。
* 使用文档访问链接:https://bigquant.com/wiki/doc/PLSbc1SbZX
比赛规则
参与本次“敦和杯·2025届因子挑战赛” (以下简称“本赛事”),即表示您已阅读、理解并同意遵守本规则。如果您不同意本规则,则无权参赛或获得任何奖项。本规则构成您与赛事主办方敦和资本有限公司(“主办方”)之间具有法律约束力的协议。
## **赛事通用规则**
### **参赛资格**
* **个人参赛者**
* 您必须是报名时年龄为18周岁或以上的高校在校生(本科、硕士、博士)。
* 参赛即表示您同意本规则。主办方保留在任何时候核实参赛资格并对任何争议进行裁决的权利。
* **团队参赛者**
* 参赛队伍人数限制在1至3人之间。
* 每位选手只能加入一支队伍。
* 所有团队成员必须单独注册,然后按照赛事官网说明组建或加入团队。
### **主办方与合作方**
* 本赛事由敦和资本主办。
* 本赛事与国内主流线上量化平台合作,由合作平台提供稳定的回测引擎与技术支持。您理解并同意,合作平台仅提供技术支持,不负责评选获胜者或颁发任何奖项。
### **比赛阶段**
* 比赛将从开始日期持续至最终提交截止日期。
* 赛事时间线(包括公榜阶段、私榜阶段、决赛名单公布、答辩与颁奖)将在赛事官网公布,如有任何更新或额外截止日期,主办方将及时在官网和官方社群公布。
### **参赛作品**
* 参赛者需在赛事官网注册。
* 参赛作品 (“提交内容”) 必须符合赛事官网和本规则中规定的要求。
* 提交内容不得使用或包含任何人工标注或人工预测的验证集或测试数据记录。
### **提交限制**
* **公榜阶段**:参赛队伍可以不限次数、不限时间地提交因子代码。
* **私榜阶段**:以截止日期前最后一次提交的代码为准,之后不允许修改代码。
### **赛事数据**
* “赛事数据”指从赛事官网或合作平台获取的,用于参赛的数据或数据集。
* 您仅可将赛事数据用于参加本赛事。主办方保留取消任何不按规定使用赛事数据的参赛者资格的权利。
* 您不可以使用赛事数据以外的数据(“外部数据”)来开发和测试您的提交内容。
### **代码要求**
* **私下分享限制**:禁止在团队外私下分享与赛事数据相关的代码或可执行文件。除非团队合并,否则禁止在不同团队之间共享代码。
* **公开分享**:允许公开分享代码。如果您选择公开分享代码,则必须在官方讨论区或相关平台进行,以惠及所有参赛者。通过分享,您被视为已在开源许可下授权该代码,且该许可不应限制其商业用途。
### **决赛与评审**
* **初赛**:潜在获胜者将根据私榜阶段的最终得分和排名确定。
* **决赛**:入围决赛的队伍需提交因子研究报告、答辩演示文稿等材料,并通过现场答辩的形式进行综合评估。
* **评审标准**:
* **公榜/私榜**:100%量化评估(数据检测与最终得分)。
* **决赛**:综合评估(因子质量与创新性40%,研究深度与规范性30%,现场表现30%)。
* **平局处理**:如果出现分数平局,将以最先提交的提交内容为胜者。
### **获奖者义务**
作为获得奖项的先决条件,获奖者必须履行以下义务:
* 交付用于生成获胜提交内容的最终模型的软件代码及相关文档。
* 向主办方授予本规则中规定的获胜者授权。
* 签署并返还主办方或合作平台可能要求的所有奖项接受文件。
### **奖项**
* 奖项详情将在赛事官网公布。
* 所有奖项均需经过主办方对参赛者资格和提交内容合规性的审核和验证。
### **税务**
所有奖项所产生的税费均由获奖者自行承担。主办方将按法律要求代扣代缴相关税款。
### **隐私权**
您知晓并同意,主办方和合作平台可能会收集、存储、共享和使用您在注册和参赛期间提供的个人信息(“个人信息”)。合作平台将根据其隐私政策使用这些信息。
### **保证与免责**
* 您保证您的提交内容是您的原创作品,且您是其唯一所有者和权利持有人,并有权进行提交和授予所有必要的许可。
* 您同意,您的提交内容不侵犯任何第三方的知识产权或任何其他权利,也不违反任何适用法律。
* 在法律允许的最大范围内,您同意就因您的行为、违约或不作为以及违反本规则中的任何保证而产生的所有索赔、损失和费用对主办方和合作平台进行赔偿,并使其免受损害。
### **最终解释权**
* 如果因计算机病毒、欺诈、技术故障或其他任何原因导致赛事无法按计划进行,主办方保留取消、终止、修改或暂停赛事的权利。
* 主办方保留取消任何试图通过作弊、欺骗或其他不公平行为破坏赛事正常运营的参赛者资格的权利。
## **赛事特定规则**
### **赛事名称**
敦和资本杯 · 首届量化因子挖掘挑战赛
### **赛事主办方**
敦和资本有限公司
### **数据使用**
* **范围**:本次比赛提供中证1000指数成分股过去两年(2023年1月1日至2024年12月31日)的5分钟级别历史行情数据(含盘口数据)。
* **用途**:数据仅限用于本次比赛。
### **自动化机器学习工具**
* 参赛者和团队可以使用自动化机器学习工具来创建提交内容。
* 使用此类工具的参赛者或团队必须确保拥有适当的许可。