问题描述
对于调仓周期和持仓周期都是1天的情况下
举个例子:
今天是2月24号,要计算某个因子IC值。
是用24号的因子值和明天的(未来的)收益计算
还是用昨天的因子值和今天的收益计算?
解决方案
在量化交易中,计算因子IC(Information Coefficient,信息系数)时,严格来说:“24号的IC值”是用24号的因子值与25号(明天)的收益率来计算的。\n\n### 详细原理解析\n\n1. IC的本质定义\nIC衡量的是当前时刻的因子值对未来一段时间收益率的预测能力。因此,在调仓周期为1天的情况下,T日(24号)的IC,计算的是T日(24号)收盘后的因子暴露度,与T日收盘到T+1日(25号)收盘的收益率(Forward Return)之间的相关系数。\n\n2. JoinQuant 平台中的处理逻辑\n在 JoinQuant 的单因子分析 API (analyze_factor) 中,文档明确指出:\n* “如果调仓周期为1天,那么forward_return为 [第二天的收盘价-今天的收盘价]/今天的收盘价”。\n* 也就是说,系统在评估24号的因子表现时,提取的是24号截面上的因子值,并将其与24号到25号的实际收益率进行秩相关(Rank IC)或皮尔逊相关(Normal IC)计算。\n\n3. 历史回测与实盘视角的区别\n* 评价因子时(上帝视角):我们说“24号的IC”,指的就是24号因子对25号收益的预测。\n* 实盘计算时(避免未来函数):如果你在24号盘后写代码,你显然拿不到25号的收益率。因此,你在24号当天只能计算历史的IC,即用23号的因子值和24号的收益率来计算“23号的IC值”。\n\n### 总结\n* 概念上的“24号IC” = 24号因子值 vs 25号收益率(用于因子评价)。\n* 24号当天能计算出的最新IC = 23号因子值 vs 24号收益率(用于实盘监控或动态权重调整)。\n\n在进行单因子分析(如使用 analyze_factor)时,系统会自动帮你做好这种时间错位的对齐(即 T日因子 对齐 T+1日收益),你只需要传入正确的因子值即可,无需手动将收益率平移。