Appearance
球队硬币因子教程(进阶因子)
导航
- 所属章节: 工具获取 / 带您复现alpha表达式
- 上一篇: Call-Put波动率差因子(入门因子)
- 下一篇: 安装包
正文
球队硬币因子教程
基于研报《个股动量效应的识别及“球队硬币”因子构建——多因子选股系列研究之四》(作者:曹春晓) 数据集: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 建议设置(教程中的经验)
| 设置项 | 建议/说明 |
|---|---|
| Decay | 0 / 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[回测与入库]六、讨论与延伸(来自原帖)
- 量价因子趋同:不同逻辑(反转、大单跟随、成交量动量、非同步性等)可能得到相近 PnL,如何进一步区分?是否要在量价上叠加其他数据或数理方法?
- 其他刻画方式:能否用基本面、分析师预期、财务指标等刻画「球队硬币」?
- 欧美市场:CHN 散户多、短线多、易超买超卖→反转明显;欧美机构多、动量强、反应慢→是否可以从「反应迟钝/过度动量」角度刻画欧美版球队硬币?
七、复现时对照清单
- [ ] 日间收益用
returns,日内用close/open - 1 - [ ] 波动率、换手率、隔夜/换手距离均做截面比较(与市场或截面均值)
- [ ] 低于截面均值时对收益率或波动率取 -1 倍
- [ ] 6 个子因子等权合成
- [ ] 使用
group_neutralize()控制市值(及可选行业/风险因子)暴露 - [ ] 在 Setting 中设置 Decay、中性化方式与市场(CHN/USA/EUR)进行对比
完成以上步骤,即可从「球队硬币」灵感走到可回测、可入库的 WQAlpha 表达式全流程。