2026-03-15 ~ 03-16 凌晨 日志¶
港股选股会¶
- 运行选股会 HK Top-50 + US Top-50
- 冰冰指出:港股必须满足整手(board lot),原计划有问题
- 拉取 Futu 实时持仓(HK 10只 + US 1只 FIX)
决策:选股会 vs 投委会职责拆分¶
- 选股会(低频/双周):只输出 Focus List 变更(add/remove + 原因),不给具体买卖数量
- 投委会(每交易日):从 Focus List 里决策买卖数量
Focus List¶
config/focus_list_hk.json(30只)、config/focus_list_us.json(30只)- Focus 会议 v0 纪要:
reports/focus/2026-03-15_HK_US.md
全市场 Universe + 主题线(已讨论,未落地)¶
- 覆盖版阈值:US mcap≥2B + ADV20≥30M;HK ADV20≥50M + board lot
- 两条主题线:Tech BFI + CN Consumption Recovery
- 消费复苏包含老铺黄金、安踏、亚玛芬等
- 数据源:Finnhub + FMP + AV(宏观/大宗备份)+ Google Trends
Alpha158 集成¶
src/alpha158_qlib.py:Qlib 官方引擎,158 因子scripts/precompute_alpha158.py:689 只票缓存到data_cache/alpha158/- 在
ml_cross_sectional.py加了use_alpha158开关(读缓存优先) - 接通:策略 JSON → strategy_schema → walk_forward → dynamic_pick → rolling_ml_scores
Bug 修复(重大)¶
- HK factor_score 全 NaN:FMP 基本面只有 US,HK quality_score 全 NaN → 污染 factor_score → 选股按字母顺序。修复:quality_score NaN fillna(0)
- walk_forward.py 没传 use_alpha158
- ML scores cache key 不含 use_alpha158
- markowitz_backtest.py 缩进错误
优化器改进¶
- 新增
risk_aversion参数到solve_max_sharpe(markowitz_optimizer.py) - None = max_sharpe(原行为),>0 = mean-variance utility
- ra=0.5 大幅提升收益(max_sharpe 过度偏好低波动票)
- 接通 walk_forward.py + strategy_schema + 策略 JSON
特征实验结论¶
- HK 118只票截面太窄:Alpha158 188个特征不如 Legacy 30 个(过拟合)
- HK Top-80 特征选择 IC 提升 21%,但回测收益未改善
- Legacy+5 Alpha158 top特征(WVMA60/CORR60/CORD60/STD60/IMXD60)IC提升但收益砍半——波动类特征让模型偏保守
- NaN 处理:LGBM native NaN > median fill > RobustZScore(窄截面下)
- CSRankNorm 在窄截面下反而降低预测质量
最终 v4 策略配置¶
US: factor_maxsharpe_v4_alpha158.json¶
- Alpha158 启用,ml_rank_weight=0.4,ra=0.5
- 2y Return 302%, Sharpe 2.29, MDD -25.3%
HK: factor_maxsharpe_v4_hk_alpha158.json¶
- Alpha158 关闭(Legacy 30 特征),ml_rank_weight=0.5,ra=0.5,topn=100
- 2y Return 191%, Sharpe 2.01, MDD -14.5%
vs 之前 baseline¶
| 市场 | 之前 | 现在 | 提升 |
|---|---|---|---|
| US | 178% / Sharpe 2.01 | 302% / Sharpe 2.29 | +70% Return, +0.28 Sharpe |
| HK | 54% / Sharpe 1.85 | 191% / Sharpe 2.01 | +254% Return, +0.16 Sharpe |
待办¶
- 全策略大回测对比图
- US ra 参数进一步微调
- HK regression test (weights cross_year) 仍 FAIL
- Focus 会议脚本化 + 全市场 Universe
- 数据源接入(board lot / Google Trends / AV 宏观)
- 冰冰自选股定位