Skip to content

球队硬币因子教程(进阶因子)

导航

正文

球队硬币因子教程

基于研报《个股动量效应的识别及“球队硬币”因子构建——多因子选股系列研究之四》(作者:曹春晓) 数据集:Price Volume Data for Equity CHN


一、整体流程图:从灵感到 Alpha 表达式

mermaid
flowchart TB
    subgraph 灵感层
        A[研报核心:球队 vs 硬币] --> B[可知性高 → 人们猜反转]
        A --> C[可知性低 → 人们猜动量]
    end

    subgraph 行为层
        B --> D[投资者把股票当球队 → 超买超卖 → 实际出现反转]
        C --> E[投资者把股票当硬币 → 预期反转 → 实际补涨/补跌]
    end

    subgraph 因子层
        D --> F[波动翻转因子]
        D --> G[换手翻转因子]
        D --> H[隔夜翻转因子]
    end

    F --> I[等权合成父因子]
    G --> I
    H --> I

    I --> J[group_neutralize 等设置]
    J --> K[WQAlpha 回测]

二、概念流程图:球队 vs 硬币

mermaid
flowchart LR
    subgraph 抛硬币
        M1[上次正面] --> M2[人们猜反面]
        M2 --> M3[可知性高 → 反转思维]
    end

    subgraph 球队夺冠
        N1[上赛季冠军] --> N2[人们猜继续夺冠]
        N2 --> N3[可知性低 → 动量思维]
    end

    M3 -.-> O[股票:投资者预期不同]
    N3 -.-> O
类比可知性人们倾向对应到股票
抛硬币反转当投资者把股票当「硬币」时,预期反转,超卖导致后续补涨
球队夺冠动量当投资者把股票当「球队」时,预期动量,超买导致后续回落

核心结论:我们从「投资者错误预期」中获利——他们按球队/硬币去预期,实际价格会反向修正,因子捕捉这类修正机会。


三、三个子因子构建流程

3.1 波动翻转因子

mermaid
flowchart TD
    A[最近20天日间收益率] --> B[均值 = 当月日间收益率]
    A --> C[标准差 = 日间收益率波动率]
    C --> D{波动率 < 截面均值?}
    D -->|是| E[-1 × 当月日间收益率]
    D -->|否| F[当月日间收益率]
    E --> G[波动翻转因子值]
    F --> G
  • 输入:最近 20 天日间收益率(可用 returns)。
  • 规则:日间收益率波动率 < 市场截面均值 → 取 -1 × 当月日间收益率;否则取当月日间收益率。
  • 输出:单只股票在该月的「波动翻转」因子值。

3.2 换手翻转因子

mermaid
flowchart TD
    A[t 日换手率] --> B[t 日换手率 - t-1 日换手率]
    B --> C[换手率变化量]
    C --> D{换手率 < 市场截面均值?}
    D -->|是| E[-1 × 日内/日间收益率波动率]
    D -->|否| F[日内/日间收益率波动率]
    E --> G[翻转收益率]
    F --> G
    G --> H[取 20 日均值]
    H --> I[换手翻转因子]
  • 换手率变化量turnover(t) - turnover(t-1)
  • 翻转规则:换手率 < 市场截面均值 → 对「日内/日间收益率波动率」取负;否则不取负。
  • 注意:日间收益用 returns,日内收益用 close/open - 1
  • 最后:对翻转后的「翻转收益率」做 20 日均值,得到换手翻转因子。

3.3 隔夜翻转因子(含两个子部分)

mermaid
flowchart TD
    subgraph 隔夜-波动翻转
        A1[个股隔夜涨跌幅 - 市场平均] --> A2[取绝对值 = 隔夜距离]
        A2 --> A3[用「波动翻转」同样规则]
        A3 --> A4[隔夜翻转-波动翻转]
    end

    subgraph 隔夜-换手距离
        B1[t 日换手变化量 delay1] --> B2[减去市场均值后取绝对值 = 换手距离]
        B2 --> B3[t 日开盘越平静、t-1 换手变化越平静越好]
        B3 --> B4[按换手距离做截面均值后按同样方法构造]
        B4 --> B5[隔夜-换手翻转]
    end

    A4 --> C[共 6 个负向因子]
    B5 --> C
    C --> D[等权合成 → 球队硬币因子]
  • 隔夜距离:个股隔夜涨跌幅与市场平均的差,再取绝对值。
  • 换手距离:t 日换手率变化量 delay1,减去市场均值后取绝对值;含义是 t-1 换手变化越平静,t 日开盘受干扰越小。
  • 用与「波动翻转」「换手翻转」相同的「低于均值则取负」规则,得到 2×2 类共 6 个因子,等权合成球队硬币因子。

四、从因子逻辑到回测设置

mermaid
flowchart LR
    A[6 个子因子等权合成] --> B[父因子]
    B --> C[group_neutralize 市值]
    C --> D[Decay / 中性化等 Setting]
    D --> E[回测]

4.1 建议设置(教程中的经验)

设置项建议/说明
Decay0 / 5 / 10 / 20;量价因子有效期短,Decay 不宜超过计算窗口,教程中 10(约两周)较优且较稳健。
中性化原研报:行业中性;教程尝试:行业+市值、Market、Slow+Fast Factors。行业市值易与公共库相关偏高(约 0.8);Slow+Fast 可入库但会引入一定噪音。
市场构造在 CHN 有效;美国、欧洲用相同构造效果较弱,可能与投资者结构(散户 vs 机构)有关。

4.2 中性化方式对比(教程内结论)

  • 行业 + 市值中性:表现好,但与因子库/公共库相关性高(约 0.8)。
  • Slow+Fast Factors 中性:可满足入库,相关性更可控,但部分效果来自加入的噪音。

五、从 Idea 到 WQAlpha 表达式的流程

mermaid
flowchart TB
    Start[研报 Idea:球队/硬币] --> Step1[拆成 3 类子因子]
    Step1 --> Step2[波动翻转:20 日收益 + 波动率截面比较]
    Step2 --> Step3[换手翻转:换手变化 + 波动率翻转]
    Step3 --> Step4[隔夜翻转:隔夜距离 + 换手距离]
    Step4 --> Step5[6 个负向因子等权合成]
    Step5 --> Step6[group_neutralize 等]
    Step6 --> Step7[写 WQAlpha 表达式]
    Step7 --> Step8[Setting 面板调 Decay/中性化/市场]
    Step8 --> End[回测与入库]

六、讨论与延伸(来自原帖)

  1. 量价因子趋同:不同逻辑(反转、大单跟随、成交量动量、非同步性等)可能得到相近 PnL,如何进一步区分?是否要在量价上叠加其他数据或数理方法?
  2. 其他刻画方式:能否用基本面、分析师预期、财务指标等刻画「球队硬币」?
  3. 欧美市场:CHN 散户多、短线多、易超买超卖→反转明显;欧美机构多、动量强、反应慢→是否可以从「反应迟钝/过度动量」角度刻画欧美版球队硬币?

七、复现时对照清单

  • [ ] 日间收益用 returns,日内用 close/open - 1
  • [ ] 波动率、换手率、隔夜/换手距离均做截面比较(与市场或截面均值)
  • [ ] 低于截面均值时对收益率或波动率取 -1 倍
  • [ ] 6 个子因子等权合成
  • [ ] 使用 group_neutralize() 控制市值(及可选行业/风险因子)暴露
  • [ ] 在 Setting 中设置 Decay、中性化方式与市场(CHN/USA/EUR)进行对比

完成以上步骤,即可从「球队硬币」灵感走到可回测、可入库的 WQAlpha 表达式全流程。