多因子分析

MateRLMateRL··4 浏览

候选因子台账评审(02_factor_candidates)

  • 生成:2026-10-10
  • 关联:00_intake/request.json(平台池 沪深全A、全量区间 2021-10-01\~2026-09-30(平台硬约束窗口≤5年;短窗验证已于同日完成并封存)、调仓 10 日、算力预算 50;用户 2026-10-10 批准「先短窗验证」)
  • 候选来源:本地 factor_incremental_ic_report.md(9 个通过增量 IC 门禁的因子)+ _alpha101_run.py / _r63_alpha101_resid_ic.csv(alpha040,残差 IC +0.0645,全场最佳)
  • 交付:candidates.jsonl(10 条,每行一个因子,含 formula / direction / parameters / source_anchor / decision + 本地证据 + cli_hint)

1. 总览

项 值
候选数 10(满足比赛池内 ≥5 且 ≤50)
家族分布 talib 7、fundamental 2、alpha101 1
方向分布 多头高值端 5、多头低值端 5
表达形式 全部 formula 模式(无 Python 依赖,可批量化)
调仓周期 统一 10 日(平台要求池内所有因子同周期)

2. 方向表(本地 raw_IC 决定 PandaAI 方向)

PandaAI factor-direction:1 = 高因子值端做多(预测上行),-1 = 低因子值端做多。 方向按本地 raw_IC 符号定(平台上 260 池不存在,故用原始而非残差方向):

因子 raw_IC resid_IC 方向 经济含义
ILLIQ20 +0.108 −0.024 +1 非流动性溢价(高 illiq → 高收益)
F_n_income_attr_p_qoq_yoy +0.020 +0.014 +1 归母净利 YoY 增长 → 上行
F_revenue_qoq_yoy +0.017 +0.014 +1 营收 YoY 增长 → 上行
NATR14 −0.115 −0.014 −1 归一化波动率高 → 走弱
BOLL_WIDTH60 −0.092 +0.013 −1 带宽宽 → 走弱
MINUS_DI60 +0.068 +0.012 +1 高 −DI 经验上预示上行(⚠ 反直觉,须短窗复验)
STD60 −0.077 +0.012 −1 收益波动率高 → 走弱
CORR_PV20 −0.047 −0.010 −1 价量正相关高 → 走弱
CORR_PV10 −0.048 −0.009 −1 同上短窗版
alpha040 +0.095 +0.0645 +1 −RANK(STD(HIGH,10))·CORR(HIGH,VOL,10),纯量价

⚠ MINUS_DI60 与 alpha040 的方向来自本地样本经验符号,PandaAI 数据/口径可能不同;短窗口 factor_run 后必须以平台返回的 RankIC 符号校正方向,再正式入池。

3. 字段可得性(formula 模式)

因子 用到的平台字段 可得性
ILLIQ20 / NATR14 / BOLL_WIDTH60 / MINUS_DI60 / STD60 / CORR_PV* close high low volume amount ✅ 8 量价字段全在
alpha040 high volume ✅
F_n_income_attr_p_qoq_yoy net_profit_parent_company_mrq_1/_mrq_5 ✅ 财报_mrq_n衍生字段支持
F_revenue_qoq_yoy revenue_mrq_1/_mrq_5 ✅

无 VWAP 依赖(alpha040 本地实现已用 HIGH/VOLUME,未用 VWAP),故 10 个因子均可直接在 PandaAI 公式模式表达。

4. 未来函数审查(Future-function audit)

  • 10 个因子均未使用 FUTURE_RETURNS(X,N)(平台唯一显式未来函数)。

  • 量价类:全部基于 DELAY/REF/STD/CORR/ATR/BOLL_WIDTH/DMI 等历史窗口算子,无前视。

  • 基本面类(_mrq_1 / _mrq_5):取查询日之前已披露财报,_mrq_5 = 往前第 5 期(去年同期),属历史数据。

    • ⚠ 披露时滞风险:财报正式披露日 vs 报告期存在时滞,若平台非严格 point-in-time,高增因子可能“偷看”已公开但未发酵的财报。短窗 factor_run 后需比对公告日历,确认无异常跳点。

5. 股票池与成本假设

  • 股票池:沪深全A(平台统一剔除 ST / 停牌 / 一字板)。与 request.json 一致。
  • 交易成本:平台固定单边 0.3%;request.json 的 round_trip_cost=0.006 即双边 0.6% = 单边 0.3%,口径一致,无需改。
  • 基准:中证全指(平台固定,本地无法复算官方 NC)。

6. 共线 / 冗余提示(入池前建议)

簇 成员 建议
波动率族 NATR14、STD60、BOLL_WIDTH60 同源,入池后等权合成会相互稀释;建议保留 1–2 个或降权
价量相关族 CORR_PV20、CORR_PV10 窗口不同但高度共线;建议二选一
基本面增长族 F_n_income_attr_p_qoq_yoy、F_revenue_qoq_yoy 净利与营收同源;保留其一即可降低冗余
独立项 ILLIQ20、MINUS_DI60、alpha040 信息增量较干净,优先保留

若全部 10 个等权入池,有效独立维度约 6–7 个。比赛允许 ≤50,冗余不违规,但会稀释单因子 A/B 贡献。

7. 决策

  • 全部 10 个 include(见 candidates.jsonl 的 decision 字段)。
  • 下一步:短窗口 factor_run 校验(每因子 IC / RankIC / 换手 / 报错),按平台返回符号校正方向,再决定入池子集与权重。
  • ⚠ 平台实跑消耗算力(当前余额 ≈468),须用户单独批准预算后执行。

8. 边界声明

  • 本地 IC 来自 2M 重采样、未来 40 交易日口径,不能等同于比赛 A/B/C 积分;比赛收益 ≠ 生产 R48 收益(无 QP 优化、无自定义特征)。
  • CLI 无池级合成 / 完整日频账本接口,本地结果一律标为“比赛规则代理”。
  • alpha040 残差 IC 来自本地 FactorBench 同口径,已确认无 VWAP 依赖。

执行摘要

  • 区间:2025-01-01 \~ 2025-06-30(短窗验证,您已批准);cycle=10、分组=10、round_trip=0.006
  • 实扣算力:20(余额 468.78 → 448.78,每 run 2 算力,与估算一致,未超 50 预算)
  • 审计链全部封存:00 → 01 → 02 → 03 → 04 均 verified(改短窗触发了 00 级联重封,已同步修复哈希引用)

平台结果(RankIC / p值 / 多头年化超额 / 成本后净超额 %)

添加到对话

因子 RankIC p值 单调性 多头超额 净超额 方向 vs 本地 判定
ILLIQ20 +0.1141 0.0015 0.95 +36.1% +30.5% ✅ 一致 强确认
MINUS_DI60 +0.0996 0.065 0.80 +9.9% +3.1% ✅ 一致 方向确认
alpha040 +0.0880 0.251 0.86 +4.8% −7.8%* ✅ 一致 方向确认
BOLL_WIDTH60 −0.0618 0.059 0.83 +1.3% −0.5% ✅ 一致(direction=0) 存活
CORR_PV10 −0.0602 0.344 0.77 +0.5% −12.4%* ✅ 一致 存活(高换手)
CORR_PV20 −0.0339 0.787 0.56 +1.7% −9.5% ✅ 弱一致 存活(高换手)
F_revenue_qoq_yoy +0.0164 0.147 0.79 +5.2% +3.6% ✅ 一致 存活
NATR14 +0.0147 0.661 0.73 −27.0% −33.5% ❌ 方向反 无效
STD60 −0.0012 0.734 0.56 −27.3% −29.2% ❌ 零信号 无效
F_n_income_qoq_yoy −0.0035 0.748 0.02 +4.3% +2.5% ❌ 零信号 无效

*CORR_PV10 / alpha040 换手 83–85%,成本后多头超额为负。

核心结论

  1. ILLIQ20 是唯一强确认因子:RankIC +0.114、p=0.0015、单调性 0.95、换手仅 37% → 净超额 +30.5%/年,平台与本地完全同向。
  2. 7/10 方向与本地一致,3 个短窗无效(NATR14 方向翻转、STD60/F_n_income 零信号)——低波动族在平台口径下只有 BOLL_WIDTH60 存活。
  3. 保留意见:短窗仅 \~12 个调仓期,p 值普遍偏大,方向结论需全量窗口复核;财报 YoY 两因子的 point-in-time 口径也需全量验证。

评论

还没有评论,来说点什么吧
0 / 2000