3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
你好!你观察到的这个现象在量化投资中非常正常,而且是一个非常经典且有价值的发现。使用基本面因子(如 ROE, ROIC, PEG)进行低频(如年度)调仓时,调仓月份的选择对策略最终收益的影响往往是决定性的。差出 50% 甚至 100% 的收益并不罕见。
导致这种现象的核心原因主要有以下几点,我们可以结合 A 股市场规律和 JoinQuant 平台的数据机制来深入分析:
A股上市公司的财报披露有严格的时间规定:
二季度调仓(如5月初)的优势:
如果你在 5 月初调仓,此时所有公司上一年的年报(经过严格审计,数据最真实全面)和当年的一季报刚刚披露完毕。你此时计算的 ROE、ROIC 使用的是最新、最可靠的数据,市场也正处于对这些最新基本面数据进行定价的阶段。此时选出的高盈利公司,往往是真正的优质公司。
四季度调仓(如11月、12月)的劣势:
如果你在 11 月调仓,你使用的是 三季报 数据。三季报未经审计,且往往带有较强的季节性(比如某些行业利润集中在四季度)。更重要的是,此时距离下一次年报披露还有半年,市场往往开始博弈“跨年估值切换”或“政策预期”,而不是单纯看过去三个季度的盈利。此时的静态基本面数据对未来股价的解释力(因子 IC 值)会大幅下降。
A股存在明显的日历效应:
你提到策略是一年调仓一次。基本面因子的有效性是有“半衰期”的。在 5 月份选出的高 ROE 公司,其业绩优势可能在接下来的半年内被市场充分定价。如果持仓长达一年,到了下半场,这些因子的超额收益可能已经衰减殆尽,甚至出现反转。
在 JoinQuant 中使用 get_fundamentals 或因子库获取财务数据时,默认是获取当前逻辑时间(context.current_dt)能看到的最新数据,以避免未来函数。
roe_ttm, operating_revenue_ttm),这可以有效平滑单季度财报的季节性波动,使得不同月份调仓的差异缩小。总结来说,你发现的现象非常真实,它揭示了量化投资中**“Timing(择时)”与“Factor(因子)”同样重要**。理解背后的财务逻辑和市场博弈,能帮助你构建更稳健的策略。