From c94d1f3d2b3f5468bd1bb5a435261eda5bc18949 Mon Sep 17 00:00:00 2001 From: claude_dev Date: Mon, 24 Aug 2026 23:36:36 +0800 Subject: [PATCH] =?UTF-8?q?docs(factor):=20=E7=AC=AC=E4=B8=80=E6=89=B9?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1spec+=E7=BB=88=E7=AB=AF=E9=A3=8E=E5=89=8D?= =?UTF-8?q?=E7=AB=AFmockup=E2=80=94=E2=80=94=E2=91=A0spec:Alpha101+158?= =?UTF-8?q?=E5=85=A8=E9=87=8F=E6=8C=82=E8=BD=BD=E5=85=A8A=E9=87=8D?= =?UTF-8?q?=E9=AA=8C(2018-2026,=E4=B8=BB=E6=9D=BF+=E5=88=9B=E4=B8=9A?= =?UTF-8?q?=E6=9D=BF=E5=89=94ST/=E6=96=B0=E8=82=A1,RankIC=201/5/10D,?= =?UTF-8?q?=E9=80=80=E5=B8=82=E8=82=A1=E4=BF=9D=E7=95=99=E6=97=A0=E5=B9=B8?= =?UTF-8?q?=E5=AD=98=E8=80=85=E5=81=8F=E5=B7=AE);=E5=90=8E=E7=AB=AF=3D?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E8=A1=A8=E6=8C=82=E8=BD=BD+vwap=E6=B4=BE?= =?UTF-8?q?=E7=94=9F=E5=88=97+=E6=89=B9=E9=87=8F=E8=AF=84=E4=BC=B0?= =?UTF-8?q?=E8=84=9A=E6=9C=AC(=E5=9B=A0=E5=AD=90=E5=88=86=E6=89=B915-20/?= =?UTF-8?q?=E6=89=B9)+=E5=86=92=E7=83=9F=E5=85=88=E8=A1=8C;=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=8B=8D=E6=9D=BF=E4=B8=A4=E6=9D=A1:=E2=9A=A0?= =?UTF-8?q?=EF=B8=8F=E6=9C=80=E7=BB=88=E9=83=A8=E7=BD=B2VPS=E4=B8=8D?= =?UTF-8?q?=E6=AD=A2NAS(=E8=B5=B0=E6=A0=87=E5=87=86promote=E9=93=BE,VPS=20?= =?UTF-8?q?42.8G=E6=9D=83=E5=A8=81=E5=BA=93)+=E8=A1=8C=E4=B8=9A=E4=B8=AD?= =?UTF-8?q?=E6=80=A7=E5=8C=96=E5=85=88=E4=B8=8D=E5=81=9A(IC=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=AF=B4=E8=AF=9D=E5=90=8E=E5=86=8D=E5=86=B3=E7=AD=96?= =?UTF-8?q?)=E2=91=A1mockup=20v2:=E7=AC=AC=E4=B8=80=E7=89=88=E4=BA=AE?= =?UTF-8?q?=E8=89=B2Element=E9=A3=8E=E8=A2=AB=E7=94=A8=E6=88=B7=E6=89=93?= =?UTF-8?q?=E5=9B=9E,=E9=87=8D=E5=81=9A1:1=E7=A7=91=E5=B9=BB=E7=BB=88?= =?UTF-8?q?=E7=AB=AF=E9=A3=8E(tokens.css=E6=B7=B1=E7=A9=BA=E9=BB=91/?= =?UTF-8?q?=E8=8D=A7=E5=85=89=E9=9D=92/=E7=90=A5=E7=8F=80/=E7=BA=A2?= =?UTF-8?q?=E6=B6=A8=E7=BB=BF=E8=B7=8C/term-grid/=E4=BF=A1=E5=8F=B7?= =?UTF-8?q?=E7=81=AF),=E4=B8=89=E9=A1=B5=3DIC=E6=8E=92=E8=A1=8C=E6=A6=9C(?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E7=93=A6=E7=89=87+=E7=AD=9B=E9=80=89+?= =?UTF-8?q?=E4=B8=BB=E8=A1=A8=E5=B8=A6IC=E8=89=B2=E6=9D=A1sparkline)/?= =?UTF-8?q?=E5=9B=A0=E5=AD=90=E8=AF=A6=E6=83=85(=E8=A1=A8=E8=BE=BE?= =?UTF-8?q?=E5=BC=8F+=E6=9C=88=E5=BA=A6IC+=E5=8D=81=E5=88=86=E7=BB=84)/?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E8=AF=84=E4=BC=B0(=E8=82=A1=E7=A5=A8?= =?UTF-8?q?=E6=B1=A03=E9=A2=84=E8=AE=BE=E5=8D=A1+=E5=9B=A0=E5=AD=90?= =?UTF-8?q?=E9=9B=86=E5=8B=BE=E9=80=89),=E7=94=A8=E6=88=B7=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4=E2=9C=85=E2=91=A2mockup=E4=B8=8Espec=E4=BA=92?= =?UTF-8?q?=E5=BC=95,=E8=B0=83=E6=9F=A5=E6=8A=A5=E5=91=8A=E8=A7=81?= =?UTF-8?q?=E5=90=8C=E7=9B=AE=E5=BD=95=20[nas]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../factor-workbench-mockup.html | 874 ++++++++++++++++++ .../2026-08-24-factor-batch1-alpha101-158.md | 64 ++ 2 files changed, 938 insertions(+) create mode 100644 docs/factor_research/factor-workbench-mockup.html create mode 100644 docs/superpowers/specs/2026-08-24-factor-batch1-alpha101-158.md diff --git a/docs/factor_research/factor-workbench-mockup.html b/docs/factor_research/factor-workbench-mockup.html new file mode 100644 index 0000000..99f910b --- /dev/null +++ b/docs/factor_research/factor-workbench-mockup.html @@ -0,0 +1,874 @@ + + + + + +因子研究工作台 + + + + +
+ DESIGN v2 + 因子研究 · 投研组新增页面 · 与平台科幻终端风格一致 + 点击侧边栏「投研」下的菜单切换页面;排行榜类别筛选可点 +
+ +
+ + + +
+ +
+
+ 投研 + + IC 排行榜 +
+
+
21:36:05CST
+ + +
+
+ +
+ + +
+
+
+

IC 排行榜

+

批次 2026-08-24 · 全A 4,382 只 · 2018-01-01 ~ 2026-06-30 · 前瞻 5 日

+
+ +
+ +
+
+
参评因子
+
258
+
alpha101 ×100 · alpha158 ×158
+
+
+
有效因子
+
41
+
|IC| > 0.02 且 ICIR > 0.3
+
+
+
观察中
+
76
+
指标边缘 · 待分年验证
+
+
+
TOP1 多空年化
+
+18.4%
+
alpha32 · 十组多空 · 扣费前
+
+
+ +
+ 批次 2026-08-24 全量首跑 +
+ + + + +
+ +
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#因子类别IC 均值ICIRt 值胜率多空年化换手/日IC 趋势结论
1alpha32cs_rank(ts_corr(cs_rank(close),…)) 复合alpha1010.0710.619.261.8%+18.4%12.4%有效
2alpha12sign(ts_delta(volume,1)) * (-1*ts_delta(close,1))alpha1010.0660.578.660.4%+16.1%28.9%有效
3alpha101(close-open)/(high-low) 量能加权alpha1010.0620.548.159.7%+15.2%9.8%有效
4corr_20ts_corr(close/delay(close,1), log(vol/…))alpha1580.0590.517.758.9%+13.8%15.2%有效
5alpha54((-1×cs_rank(ts_std(low,3)))×…)alpha1010.0570.497.458.2%+13.1%11.0%有效
6wvma_20ts_std(|r|·vol,20)/ts_mean(|r|·vol,20)alpha1580.0540.477.157.8%+12.4%10.6%有效
7alpha83-1·cs_rank(ts_cov(cs_rank(high),cs_rank(vol),5))alpha1010.0530.466.957.5%+11.9%13.7%有效
8vsumd_10量净上行占比 · 10日窗alpha158-0.050-0.44-6.643.1%-11.2%18.3%有效
9alpha6(-1)·ts_corr(open, volume, 10)alpha1010.0490.426.356.9%+10.7%14.9%观察
10rsv_10(close-ts_min(low,10))/(max-min)alpha158-0.046-0.40-6.043.6%-9.8%16.1%观察
11alpha44ts_corr(vwap·cs_rank…, 5) 条件结构alpha1010.0430.365.456.1%+8.9%21.5%观察
12return_1dts_delta(close,1) —— 一日反转内置-0.041-0.35-5.244.2%-8.6%34.2%观察
13alpha18-1·cs_rank(ts_std(|close-open|,5)+…)alpha1010.0380.334.955.4%+7.8%19.4%观察
14imxd_20ts_argmax(high,20)-ts_argmin(low,20)alpha1580.0360.314.654.8%+7.1%17.7%观察
15alpha9quesval 双层条件·极值差动量alpha1010.0330.284.154.0%+6.2%26.8%淘汰
16alpha65vwap 均值偏离 × 量能乘数alpha101-0.027-0.22-3.246.1%-4.9%23.9%淘汰
17ma20ts_mean(close,20)内置-0.021-0.17-2.547.0%-3.6%20.1%淘汰
18kmid(close-open)/openalpha158-0.018-0.14-2.147.6%-3.0%31.5%淘汰
+
+
+ 显示 18 / 258 · 按 |IC| 降序 + 口径:日频 RankIC · 红正绿负 · 多空=Q10−Q1 等权 · 未做行业中性化 +
+
+
+ + +
+ ← 返回排行榜 +
+
+

因子详情 · alpha32

+

批次 2026-08-24 · 全A 4,382 只 · 2018-01-01 ~ 2026-06-30

+
+
+ +
+
+ alpha32 + alpha101 + 有效 + WorldQuant #32 · 量价相关性族 +
+
cs_rank(ts_mean(close,7)/close) - 0.5 ++ cs_rank(ts_corr(cs_rank(close), cs_rank(volume), 5)) * -1
+
+ +
+
IC 均值 (5D)
0.071
+
ICIR
0.61
+
t 值
9.2
+
IC 胜率
61.8%
+
多空年化
+18.4%
+
日均换手
12.4%
+
+ +
+
+

月度 IC 与累计 IC

+
柱=月度 RankIC · 线=累计 IC · 102 个月
+ + + + + +0.10 + 0 + -0.10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

十分组平均收益(5 日)

+
Q1=因子值最低组 · 单调性=区分度
+ + + + + + + + + + + + + + Q1Q2Q3 + Q4Q5Q6 + Q7Q8Q9 + Q10 + +0.42% + -0.38% + + +
+
+ +
+ + + +
+
+ + +
+
+
+

发起批量评估

+

后台任务 · 完成后自动生成排行榜批次 · 建议先小样本冒烟

+
+
+ +
+

01股票池

+
与实盘可交易域一致 · 退市股保留(无幸存者偏差)
+
+ + + +
+
+ +
+

02因子集

+
按类批量勾选 · 未就绪的因子集显示占位
+
+ + + + + +
+
+ +
+

03时间窗与口径

+
日频因子值 · RankIC · 前瞻收益 1/5/10 日
+
+ 2018-01-01 + + 2026-06-30 + 全量预估 ~2.5h (NAS) · 建议晚间错峰 +
+
+ +
+ + 提交后进入任务中心排队 · 完成自动生成「2026-08-25 批次」排行榜 +
+
+ +
+
+
+ + + + diff --git a/docs/superpowers/specs/2026-08-24-factor-batch1-alpha101-158.md b/docs/superpowers/specs/2026-08-24-factor-batch1-alpha101-158.md new file mode 100644 index 0000000..0cdef8e --- /dev/null +++ b/docs/superpowers/specs/2026-08-24-factor-batch1-alpha101-158.md @@ -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.db(dbbardata),数据完全够;NAS 26G 副本用于验证 +- 资源策略:冒烟先测耗时;全量错峰;因子分批算控内存;VPS 上注意与 schtask 采集任务错峰 + +## 本地家底(已实证) + +- `sanguo_factor/`:registry/library/analyzer(alphalens IC+tears)/alpha_lab/data_adapter + web API(POST /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-30(8.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 可跑**