纯A股行业轮动的机制检验:盈利上修、价格确认与期权风险
逻辑上的关键不是盈利增长快,而是未来盈利预期发生了尚未充分计价的变化。严格匹配公司、券商和预测年度后,84个月中只有26个月满足行业覆盖要求,平均排序相关性接近零。创业板IV也没有稳定改善风险预测,迁移到实际行业持仓后误差更大。
因此,下调上一轮“利率辅助选行业+期权倒挂减半”的优先级。31.76%的历史年化保留为统计结果;它没有证明利率能预测行业、倒挂应该统一减半。暂不将这些规则加入核心策略。
1.先检查赚钱的因果链
需求、供给或成本发生新变化 → 同一年度盈利预期被广泛修正 → 市场尚未充分定价 → 后续价格继续反映变化 → 扣除换手与执行成本后仍有收益。
每个箭头都需要证据。行业处在景气高位、分析师预测增长很高、ETF最近涨得好,可能只是同一段行情的三个描述。若价格先涨、分析师随后上调,再用上调解释涨价,就没有证明买入之后还有优势。
| 思路 | 成立所需条件 | 反例/失效原因 | 本轮判断 |
|---|---|---|---|
| 盈利预期上修选行业 | 同公司、同年度、同信息来源的预测改善;广度足够;未来价格关系超出已有动量 | 券商跟随价格调预测;换预测年度制造增长;少数公司抬高行业均值 | 经济机制可解释,当前数据未支持稳定增量 |
| 价格趋势确认 | 信息与配置需求逐步反映在价格中,延续强于换手成本 | 价格已经透支;快速反转;具体40日窗口来自历史筛选 | 保留为观察基准,不能把一个窗口当成机制证明 |
| Shibor历史敏感度选行业 | 过去利率共变能稳定预测未来相对收益,并区分融资成本与政策反应 | 经济转弱引起降息;利率和行业由共同因素驱动;高相关只是同一周期 | 只测过共变,因果与领先关系未闭合,降级 |
| IV期限倒挂统一减半 | 先增量预测持仓风险,再证明仓位调整与风险预算相符 | 急涨也会提高短端IV;成长指数期权不代表所有行业;已有RV风控可能重复减仓 | 本次增量预测未通过,不支持机械减半 |
| 期权贴水修复抄底 | 剔除融资、分红、条款和流动性影响后,剩余部分确实领先方向 | 贴水由持有成本或报价偏差造成;修复可能只是数据噪声 | 方向机制最弱,暂不进入核心规则 |
信息缓慢扩散是动量的一种可检验解释,见Hong、Lim、Stein的原论文;分析师报告研究发现预测修正等信息会引起市场反应,但控制报告中其他信息后,部分盈利预测信息被吸收,见Asquith、Mikhail、Au的原论文。两项研究均不能直接证明本项目的A股行业ETF规则有效,也不能证明月末读到报告之后仍有超额收益。
2.面板里的“增长”不能直接当成“上修”
检查了项目的行业景气生成器、历史研究和本地数据库。目前行业面板使用东方财富的2026年预测EPS相对2025年预测EPS;面板自己的注释已经明确它不是历史预测修正。旧版计算近90日与此前180日预测净利润均值时,又未配对预测年度与券商,因此也混入了预测对象和覆盖机构变化。
例子:上月预计2026年赚100,本月仍预计赚100,预测2025年赚70。2026年相对2025年增长42.9%,但对2026年的预期上修是0%。如果新加入一家更乐观的券商,未配对的均值也会提高,而原有券商可能完全没有改变判断。
| 本地检查 | 结果 |
|---|---|
| 有净利润预测的有效记录 | 1,288,235条,4,661家公司,2019-01-02—2026-07-20 |
| 同公司同报告日含多个预测年度/季度 | 280,399组;不能把这些预测直接混成一个时间序列 |
| 行业成员表 | 5,847行,每公司仅一行,退出日期全部为空;属于当前成员快照 |
| 当前面板类型 | em_forecast_growth |
| 其他资料 | PMI/社融等仍缺完整发布版本;美股财报反应不对应纯A股池;大单资金流指标不能直接当作机构实际净买入 |
预测年度、研报日期、券商与净利润字段的定义见Tushare官方接口说明。本轮按报告日再滞后一个中国交易日;这避免使用当日研报,但不能消除供应商后来补录或修改历史的风险。
3.盈利上修:先固定定义,再看下一期
- 每个月末,使用前一中国交易日以前的研报,只预测信号日所属年份的全年净利润。例如2025年的所有月末都比较2025Q4。
- 将此前180天分成相邻两个90个自然日窗口。分别取同一公司、同一券商、同一预测年度的最新报告,计算新预测/旧预测−1。至少两家券商匹配,且前后盈利都为正,再取公司中位数。
- 行业取公司修正中位数,同时计算上修公司的比例。至少10家公司、覆盖当前行业成员的20%;再要求当月至少15个合格行业,才计算横截面排序关系。
- 观察下个交易日收盘至第22个交易日收盘的21日行业指数价格变化。额外控制此前40日价格动量与60日波动,检验上修有没有独立信息。
阈值与4个风险预测模型在本轮新结果产生前写入声明,未按结果降低覆盖要求。此前历史已经被其他研究看过,前后段都不能再称独立留出。只纳入正盈利、至少两家券商覆盖的公司,也意味着本轮不能评价亏损反转与低覆盖行业。
| 样本 | 有效月份 | 上修平均IC | 95%区间 | 控制动量/风险后IC | 95%区间 | 前五减后五的21日价差 |
|---|---|---|---|---|---|---|
| 全体有效月份 | 26 | -0.0034 | -0.0606 ~ +0.0961 | -0.0312 | -0.1211 ~ +0.0957 | -0.027个百分点 |
| 2024-08-12以前 | 20 | -0.0191 | -0.0997 ~ +0.0692 | -0.0387 | -0.1629 ~ +0.1164 | -0.123个百分点 |
| 2024-08-12起 | 6 | +0.0488 | 样本不足,不计算 | -0.0060 | 样本不足,不计算 | +0.293个百分点 |
IC是每月行业排序与未来表现排序的相关系数,正数才支持“上修越多、后来越强”。平均上修IC为−0.0034,控制既有动量与风险后为−0.0312;两者区间都跨过零。上修广度IC为+0.0280,同样没有形成明确证据。前五减后五是诊断性指数价差,未计分红、费用,不是可交易多空组合,更不是策略年化。

84个月只有26个月合格,占31.0%;有效月份分散在2019-08-30至2025-09-30之间,并非连续26个月。其中后段仅6个月。6个月不计算看似精确的置信区间。其余区间按6个自然月区块重采样2000次,保留没有合格信号的月份,仍未调整多轮研究选择。2026年1—6月各月只有1—3个合格行业,因此没有进入横截面结果。
证据边界:当前行业分类不是历史成员库;即使要求入行日期早于信号,也无法还原以前退出、重分类和退市的成员。申万2021版历史价格指数也可能带有回溯分类,且与实际ETF持仓不同。因此,本结果既不能证明盈利上修有效,也不足以否定它;先修数据比继续试排名窗口更有价值。
4.期权:应先预测风险,再讨论如何减仓
IV是从期权价格反推的波动指标,包含风险预期与风险定价。短端高于长端,不能单独推出“接下来跌”。CME对WTI的研究也区分了波动幅度与方向,见官方研究;这只是方法上的参照,不能把WTI/CVOL的结果移植为创业板ATM IV的证据。
本轮先比较自身过去60日实现方差、校准后的自身方差,再加入滞后一天的创业板30日IV平方,最后加入log(IV30/IV90)。预测目标是下一交易日收盘入场后20个交易日的年化实现方差。每月重新估计,训练标签必须在估计日前已经结束,至少126条完整历史观测。没有使用未来波动训练当期模型。
创业板ETF本身
共664个共同预测日,2023-08-01—2026-04-29。下列两种误差均越低越好。
| 预测方法 | 全期QLIKE | 全期对数绝对误差 | 前段QLIKE | 后段QLIKE |
|---|---|---|---|---|
| 自身历史波动直接延续 | 1.4099 | 0.8177 | +0.1557 | +2.1672 |
| 自身历史波动,滚动校准 | 1.4304 | 0.6449 | +0.2670 | +2.1329 |
| 校准模型+创业板IV | 1.4461 | 0.5959 | +0.3495 | +2.1083 |
| 再加IV期限结构 | 1.4492 | 0.6172 | +0.3459 | +2.1154 |
| 新增信息相对上一模型 | QLIKE变化,负值才改善 | 95%区块区间 | 两个分段、两种误差都改善 |
|---|---|---|---|
| 校准模型+创业板IV | +0.0157 | -0.1074 ~ +0.1551 | 未通过 |
| 再加IV期限结构 | +0.0031 | -0.0093 ~ +0.0171 | 未通过 |
原策略实际持有的行业ETF
共346个共同预测日,2024-10-08—2026-07-13。下列两种误差均越低越好。
| 预测方法 | 全期QLIKE | 全期对数绝对误差 | 前段QLIKE | 后段QLIKE |
|---|---|---|---|---|
| 自身历史波动直接延续 | 0.4032 | 0.6290 | — | +0.4032 |
| 自身历史波动,滚动校准 | 0.5899 | 0.6713 | — | +0.5899 |
| 校准模型+创业板IV | 2.0470 | 0.8691 | — | +2.0470 |
| 再加IV期限结构 | 1.9443 | 0.8609 | — | +1.9443 |
| 新增信息相对上一模型 | QLIKE变化,负值才改善 | 95%区块区间 | 两个分段、两种误差都改善 |
|---|---|---|---|
| 校准模型+创业板IV | +1.4571 | -0.0025 ~ +2.8238 | 未通过 |
| 再加IV期限结构 | -0.1026 | -0.2278 ~ +0.0438 | 未通过 |

创业板本身加入IV后,平均对数误差下降,但QLIKE从1.4304升至1.4461,而且前段两项误差均变差;不能称稳定改善。期限结构也没有提供可靠增量。迁移到实际持有行业时,加入IV的QLIKE从0.5899升至2.0470,表现更弱;3个自然月区块区间仍跨零,不能声称统计上已经证明IV必然有害。
预测口径、缺失与局限
QLIKE=实际方差/预测方差−log(实际方差/预测方差)−1,对严重低估风险惩罚较大;对数绝对误差=|log(实际方差/预测方差)|。OLS拟合的是对数方差,指数还原未加偏差校正,因此这只是固定模型的检验,不能否定所有IV预测方法。年度交易日取244,预测方差仅作固定数值保护,限制在10⁻⁸至4。
相邻20日标签重叠,664/346条不能当成同等数量的独立试验。差值区间按月份聚类、3个自然月移动区块重采样2000次,保留日数权重与缺月。模型每月用已结束标签扩窗训练,前后分段只是历史诊断;后段数据在后续月份成熟后允许进入训练,整个后段并非封存测试集。
实际持仓检验使用原版月频缓冲策略每天收盘后已有的最大行业权重,现金日跳过;观察该日所选ETF固定持有20日的风险,未使用未来换仓的账户风险,也未按仓位稀释。共涉及17只ETF。满足训练要求后的预测直到2024-10-08才开始,所以行业迁移完全没有前段样本,无法证明跨阶段稳定。
创业板标的收益来自冻结期权文件中的spot,行业收益来自实际ETF的收盘价/除权参考昨收。任何未来20日报价缺失就不计目标;过去60日缺失就不生成自身波动。2026年6—7月创业板spot存在断点,叠加完整窗口要求使有效预测最后停在4月29日;不是已经检验了2026年全部行情。行业ETF有效预测到7月13日。原始特征与每次拟合系数均可下载核对。
CYB缓存未发现调整标记,并不等于完整历史合约条款已复原;固定1.5%定价利率、结算价、ATM插值、缺失和供应商后续修订限制仍继承上一轮审计。没有补值,也没有为了提高结果换用更有利的价格来源。
5.接下来怎样选行业、怎样择时
机制上更直接的候选结构:先看同口径盈利预期是否在行业内广泛改善,再看价格是否确认,最后按该行业自身风险决定资金量。这个结构把“为什么选它”和“买多少”分开,但每层都必须先证明有增量。
| 环节 | 可验证的候选做法 | 达到什么证据才采用 |
|---|---|---|
| 选行业 | 固定同年度、同券商上修幅度与广度;数据缺失显示未知,不当成0,也不默认为景气好 | 历史成员和发布日期可复原;控制过去动量后,未来行业关系仍为正,且不依赖少数月份 |
| 价格确认 | 暂沿用已有价格趋势基准;增加盈利信息时,只改变选行业这一层 | 先做“原价格规则/只加盈利信息”的成对对照,确认不是重复描述过去上涨 |
| 宏观解释 | 按需求、供给、成本与融资渠道预先写出各行业的方向和时间滞后;用实际发布日期的新增信息 | 预测盈利或现金流变化,再预测价格;不能用当期GDP/PMI水平直接给行业贴涨跌标签 |
| 风险与现金 | 先使用行业自身历史波动预算;期权仅记录观察值 | IV要先跨阶段改善持仓风险预测;之后再独立检验风险预算转换,不能直接跳到“倒挂减半” |
| 执行 | 月末主调仓、周检查、每月最多一次额外信号;原现金约束与买卖各0.2%延续 | 有可见信号、实际上市ETF映射、可成交价格;加入信号的收益足以覆盖新增换手 |
| 停止条件 | 预先承认无增量或数据不足,并保留失败月份 | 不因没到20%就改阈值重来;不能把换分类、换窗口后的最好结果算独立验证 |
这里没有冻结一个尚未验证的“盈利Top几”交易参数,也没有自动部署新信号。优先补齐研报首次可见时间、同券商预测快照、历史行业成员、当时ETF指数映射;然后先复验盈利信息的增量,再讨论交易版。宏观发布档案与行业自身风险应成为数据基础,期权暂保留观察用途。
20%以上年化仍是研究目标,25%—30%是回撤预算;它们不是选择解释的理由。只持A股行业与现金,现金能减少市场暴露,却不会自动提供另一种收益来源。单行业集中可能提高某段收益,也会放大判断失误;要靠可重复的信息优势改善收益与回撤的匹配,不能靠集中度把历史数字做高。
6.持仓、核验与复现
本轮是机制诊断,没有新账户与新持仓。上一轮8项策略的实际持仓、换仓理由和宏观/期权条件仍可在各期持仓表查看。上一轮研究数字保留,同时已明确更新其机制评价。
10项测试覆盖预测年度与券商配对、未来研报排除、有效盈利、收益起点、标签成熟、未来数据不改变既有预测和稀疏月份区间。另从导出的特征独立重算每次回归系数、训练截止日、排序相关性与预测误差。输入哈希可检查缓存是否改变;技术核对不能消除当前成员分类与已探索历史的偏差。
7.下载
result.json · declared_design.json · earnings_result.json · volatility_result.json · validation.json · input_manifest.json · earnings_coverage.csv · industry_monthly_signals.csv · earnings_monthly_diagnostics.csv
风险预测的逐日特征与结果
CYB_risk_features.csv · CYB_risk_predictions.csv · actual_industry_holding_risk_features.csv · actual_industry_holding_risk_predictions.csv
python3 my-app/public/reports/etf-mechanism-validation-20261004/backtest.py --test-only python3 my-app/public/reports/etf-mechanism-validation-20261004/backtest.py