Skip to content

Commit 4e448fc

Browse files
committed
add stock alpha and growth pullback research suites
1 parent e120e5b commit 4e448fc

88 files changed

Lines changed: 162396 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

research/README_stock_alpha.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Stock alpha research suite
2+
3+
这个研究脚本做三件事:
4+
5+
1. 复用 `russell_1000_multi_factor_defensive` 的现有真实数据代理回测结果。
6+
2. 公平比较它和两个高弹性 ETF 策略:
7+
- `hybrid_growth_income`
8+
- `semiconductor_rotation_income`
9+
3. 研究一个新的 price-only 进攻型个股候选:`qqq_plus_stock_alpha_v1`
10+
11+
## 代码位置
12+
13+
- 研究脚本:`research/backtest_stock_alpha_suite.py`
14+
- 结果目录:`research/results/`
15+
- defensive 基线代码:`../UsEquityStrategies/src/us_equity_strategies/strategies/russell_1000_multi_factor_defensive.py`
16+
17+
## 怎么跑
18+
19+
默认会自动发现最新的 `official_monthly_v2_alias` Russell 数据 run:
20+
21+
```bash
22+
PYTHONPATH=/Users/lisiyi/Projects/UsEquityStrategies/src:/Users/lisiyi/Projects/QuantPlatformKit/src \
23+
/Users/lisiyi/Projects/InteractiveBrokersPlatform/.venv/bin/python \
24+
research/backtest_stock_alpha_suite.py
25+
```
26+
27+
也可以显式指定数据目录和结果目录:
28+
29+
```bash
30+
PYTHONPATH=/Users/lisiyi/Projects/UsEquityStrategies/src:/Users/lisiyi/Projects/QuantPlatformKit/src \
31+
/Users/lisiyi/Projects/InteractiveBrokersPlatform/.venv/bin/python \
32+
research/backtest_stock_alpha_suite.py \
33+
--data-run-dir /Users/lisiyi/Projects/_local_runs/r1000_multifactor_defensive_20260403_official_monthly_v2_alias \
34+
--results-dir /Users/lisiyi/Projects/InteractiveBrokersPlatform/research/results
35+
```
36+
37+
## 输出文件
38+
39+
- `stock_strategy_comparison.csv`
40+
- `stock_strategy_comparison.md`
41+
- `stock_strategy_ablations.csv`
42+
- `stock_strategy_equity_curves.csv`
43+
- `stock_strategy_rolling_36m_alpha_vs_qqq.csv`
44+
- `stock_strategy_workspace_mapping.json`
45+
46+
## 当前数据假设
47+
48+
### Defensive / offensive 个股侧
49+
50+
- universe:IWB 历史持仓代理,不是 FTSE Russell 官方 PIT 成分
51+
- price:Yahoo / yfinance
52+
- ticker 修复:沿用 `official_monthly_v2_alias` 的 identifier-based alias
53+
- offensive 的 `resid_mom_6_1` / `resid_mom_12_1` 在 V1 里是 **相对 QQQ 的简单超额收益 proxy**,不是严格回归残差动量
54+
- group normalization 当前使用 **sector 内 z-score**
55+
56+
### ETF 策略侧
57+
58+
- full strategy 按当前默认逻辑回测
59+
- normalized comparison 通过把账户规模放在 income layer 阈值下方,或者把阈值抬高,来关闭收入层
60+
- `SPYI` / `QQQI` / `BOXX` 的早期缺失历史,在收益矩阵里按 **上市前 0% 日收益** 处理,相当于近似现金腿;结果里需要把这点当 caveat 看
61+
62+
## 研究重点
63+
64+
- full strategy vs normalized strategy 两层比较
65+
- full sample / 2018-2021 / 2022 / 2023+
66+
- rolling 36m alpha vs QQQ
67+
- offensive V1 最少一轮 ablation:
68+
- universe
69+
- 持仓数 / 单票上限 / 行业上限
70+
- regime
71+
- 暴露档位
72+
73+
## 不在本次 V1 的内容
74+
75+
- 基本面质量因子
76+
- earnings revision / PEAD
77+
- 机器学习 / LLM 交易信号
78+
- 付费数据源接入
79+
80+
这些都留到后续 V2 研究。

0 commit comments

Comments
 (0)