docs(factor): 第一批设计spec+终端风前端mockup——①spec:Alpha101+158全量挂载全A重验(2018-2026,主板+创业板剔ST/新股,RankIC 1/5/10D,退市股保留无幸存者偏差);后端=注册表挂载+vwap派生列+批量评估脚本(因子分批15-20/批)+冒烟先行;用户拍板两条:⚠️最终部署VPS不止NAS(走标准promote链,VPS 42.8G权威库)+行业中性化先不做(IC数据说话后再决策)②mockup v2:第一版亮色Element风被用户打回,重做1:1科幻终端风(tokens.css深空黑/荧光青/琥珀/红涨绿跌/term-grid/信号灯),三页=IC排行榜(统计瓦片+筛选+主表带IC色条sparkline)/因子详情(表达式+月度IC+十分组)/批量评估(股票池3预设卡+因子集勾选),用户确认③mockup与spec互引,调查报告见同目录 [nas]

This commit is contained in:
2026-08-24 23:36:36 +08:00
parent 31596f58f9
commit c94d1f3d2b
2 changed files with 938 additions and 0 deletions
@@ -0,0 +1,64 @@
# 因子研究第一批设计:Alpha101+Alpha158 全量挂载与全A重验
> 日期:2026-08-24 session:因子调研 | 状态:设计已获用户确认
> 前置调查:`docs/factor_research/2026-08-20-factor-library-survey.md`(因子库全景)
> 前端设计稿:`docs/factor_research/factor-workbench-mockup.html`(科幻终端风,用户已确认)
## 背景与目标
用户拍板「C 起步」:先建评估能力和因子库,因子研究目的(舰队增强 vs 独立策略)后定。
第一批目标:把 vnpy 自带的 Alpha101(100)+Alpha158(158) 表达式挂进 sanguo_factor,用全A 8.5 年数据批量评估,产出 IC 排行榜筛选有效因子;同时建前端「因子研究工作台」三页面。
**⚠️ 部署要求(用户 2026-08-24 明确):评估管线最终要部署到 VPS,不是仅跑 NAS。**
- 实现上:评估管线是平台代码(scripts + sanguo_factor + API + 前端),走标准 promote 链(push→NAS 自动验证→用户确认推 VPS)
- VPS 有 42.8G 权威 quant_trading.dbdbbardata),数据完全够;NAS 26G 副本用于验证
- 资源策略:冒烟先测耗时;全量错峰;因子分批算控内存;VPS 上注意与 schtask 采集任务错峰
## 本地家底(已实证)
- `sanguo_factor/`registry/library/analyzer(alphalens IC+tears)/alpha_lab/data_adapter + web APIPOST /factor/analyze、GET /factor/list+ 5 测试文件;内置仅 7 个基础因子
- vnpy 自带:`vnpy_v4.4.0/vnpy/alpha/dataset/datasets/alpha_101.py`100 个表达式全实现)+ `alpha_158.py`(qlib 同款 39 定义×多窗口);算子 46 个全覆盖 Alpha101 需求
- 接入缺口:① dbbardata 无 vwap 列(Alpha101 用 59 次)② AlphaLabSession 缓存上限 50 只(横截面不够)③ 无批量评估入口
## 评估口径(已定)
| 维度 | 选择 |
|------|------|
| 股票池 | 全A 主板+创业板,剔科创/北交、ST、上市<120日新股;退市股保留(无幸存者偏差)≈4,300-4,500 只 |
| 时间窗 | 2018-01-01 ~ 2026-06-308.5年完整牛熊) |
| 频率 | 日频因子值,日频 RankIC,前瞻收益 1/5/10 日 |
| 不做 | 行业中性化(行业数据缺口,先跑基线,IC 数据说话后再决策) |
## 后端设计
1. **因子挂载**:新模块把 alpha_101.py/alpha_158.py 的表达式注册进注册表(category=alpha101/alpha158
2. **vwap 派生列**data_adapter 层补 `vwap = turnover/volume`volume=0 置 null),不动生产库
3. **批量评估脚本** `scripts/factor_research/`:全A清单(dbbardata distinct)→分批加载→因子分批算(15-20个/批,防内存爆)→逐因子 IC/ICIR/t统计/胜率/多空/换手汇总→结果落盘(SQLite 或 CSV+markdown,供 API 读)
4. **冒烟先行**50 只 × 2024 年 × 10 因子验证管线+实测耗时,再全量
5. **股票池缓存扩容**AlphaLabSession 50 只上限改为可配置/批量路径
6. **新 API**GET /factor/leaderboard?batch=&category=&period=(读评估结果)、POST /factor/batch_eval(提交批量评估任务,走任务中心);tears 按需
## 前端设计(mockup 已确认,科幻终端风 1:1 对齐 tokens.css
路由挂侧边栏「投研」组(现只有「因子分析」):
1. **IC 排行榜** `/factor/leaderboard`:4 统计瓦片(参评/有效/观察/TOP1多空)+ 筛选栏(批次/类别chips/搜索/1D5D10D切换)+ 主表格(排名/因子名带公式缩略/类别chip/IC均值带色条/ICIR/t值/胜率/多空年化/换手/IC趋势sparkline/信号灯结论)+ 行点击进详情
2. **因子详情** `/factor/leaderboard/:factor`:表达式卡片(青色mono)+ 6 格指标条 + 月度IC柱状&累计IC线(青线glow+ 十分组收益柱状 + tears 入口
3. **批量评估** `/factor/batch`:01股票池(3预设卡:全A/中证800/自定义)→ 02因子集(按类勾选,未就绪置灰占位)→ 03时间窗(显示预估耗时)→ 提交进任务中心
- 视觉:深空黑 #05080d/荧光青 #00e5ff/琥珀 #ffb000/红涨绿跌/term-grid/信号灯结论(●绿有效/●琥珀观察/●灰淘汰)/近直角/mono数字/类别chip=青(alpha101)/紫 #b48cff(alpha158)/琥珀(内置)
## 结果筛选(评估跑完后)
|IC|+ICIR 初筛(阈值看数据分布定)→ 相关性聚类去重(同质合并)→ 产出第一批结论报告
## YAGNI(明确不做)
行业中性化、因子合成/组合权重、Alpha360、GTJA191 移植(第二批)、聚宽财务因子(第三批)、动 web 既有页面
## 验收标准
1. `/factor/list` 列出 alpha101/alpha158 类目(258 因子)
2. 冒烟跑通,IC 量级合理(|IC|普遍<0.1
3. 全量 IC 排行榜落盘,前端三页可用(NAS 验证)
4. 挂载+vwap 派生有单测;CI 绿
5. **部署链走通:NAS 验证绿 → 用户确认 → 推 VPS 可跑**