选
每日选股提示
景气趋势 · 全A股实时筛选 PWA
📦缓存
EP导出
↻ 刷新
今日选股清单
一句话说明
每月帮你选一篮子
中期组合
:业绩不差 + 站上年线、且
残差动量 + 低波动 + 价值质量复合
三因子突出的股票,在此基础上按候选池规模叠加"小池增强(P1+Q3)"或"大池增强(V5+T2+T3+T4+Q4)"自适应因子,等权持有一个月。系统先给你
秒级种子结果
,后台继续把全A补完后自动刷新为最终组合。这是
F8 自适应策略
:在 F7 基础上把 18 项学术流行因子(价格动量 / 波动风险 / 价值质量 / 技术形态 / 组合防御)在 59/199 双池样本外一一验证,只留真正 OOS 正向的 2+5 项。
为什么这样选(真正 OOS 为正的增强只留下 7/18,其它全部被证伪砍掉)
旧版"逐日突破/回踩择时"在 2024 后样本外回测为负(-3.4%)——逐日择时易过拟合近期行情;
改成分月"排名式因子组合"后样本外转正,
F6(动量 0.4 + 低波 0.4 + EP 0.2)
是上一版核心,59 只池 OOS ≈ +9%;经 P0 Walk-forward → P1 价值倾斜 0.2/0.3/0.5 → P2 3×3×3 联合敏感性双池收敛,最终升级为
0.15/0.25/0.60
(价值倾斜Pro,双池 OOS Sharpe ≈ 1.05~1.12);
在 F6 上一次性验证 6 项流行增强:
残差动量、行业中性化、波动目标仓位、状态自适应权重、QMJ 质量、分析师修正
。双池 OOS 跑下来,
只有「残差动量」两次显著为正,QMJ 在扩池到 199 只也 +1.8%
,其它 4 项样本外全部负贡献 → 砍掉。得到
F7 = R1(0.15) + 低波(0.25) + Q1(EP×QMJ, 0.60)
(价值倾斜Pro版);
F7 → F8:18 项候选因子在 59 池 OOS 里只有 2 项显著正向(贪心采纳 P1 + Q3),在 199 池 OOS 贪心采纳 V5 + T2 + T3 + T4 + Q4;两组胜出项几乎不相交,说明小盘溢价因子在蓝筹池里不成立、反之亦然。所以
F8 采用「池大小自适应」策略
:小池用 P1+Q3,大池用 V5+T2+T3+T4+Q4,每项加 0.05 分位,绝不硬塞。
创业 300/301、科创 688、北交所 4/8 的涨跌停制度是 ±20% / ±30%,系统按代码分开阈值,避免普通大阳被当涨跌停误删。
规则(系统自动执行)—— F8 自适应
活门(全板块适配)
:PE∈(0,150]、流通市值≥30亿、业绩预告非负增长、收盘在年线(MA200)上方;涨跌停过滤按板块分档(主板 ±9.7 / 创业科创 ±19.7 / 北交所 ±29.7)。
基础因子 1:R1 残差动量
:原始 12-1 月动量,对当期候选池「CH-3 三因子代理——市场rm/规模smb(小盘减大盘)/价值ep(高EP减低EP)」剥离回归,得到的残差才是"纯选股动量"——避免共线性陷阱。
基础因子 2:低年化波动
,截面分位越高越靠前(低波动异象 A 股长期显著)。
基础因子 3:Q1 价值质量复合
:EP(盈利收益率 1/PE) × 0.6 + QMJ 质量 proxy × 0.4。QMJ 用 2 年 log(close) 线性回归的 斜率+R²+(-MDD) 合成。
大池增强(候选数 ≥80 · 含中小盘)
:
V5 Amihud 非流动性:|日收益|/成交额 60 日均值(冷门溢价,小盘越大越好)。
T2 RSI 温和惩罚:RSI >82 扣 -1 分,<20 加 +0.3,中间不变(避免追极端超买)。
T3 量能趋势 + 接近 60 日新高:放量突破前高确认 +1,缩量新高 -0.5。
T4 高低点抬升(道氏确认):60 日内低点在前半段、高点在后半段 +1;∧ 回落 -1。
Q4 毛利率稳定性 proxy:12 个月度收益的标准差取负(月收益稳定越高越好)。
小池增强(候选数 <80 · 蓝筹池)
:
P1 12-3 月动量(跳过最近 1 季度):避免买入"刚靠短期消息冲一波"的假动量(Jegadeesh-Titman 原版就这么处理)。
Q3 现金流收益 proxy:6 月涨幅 - 0.8×回撤 + 上涨日占比的线性加权,稳定抬升 = 现金流更真实(无财报 CFO 时的弱代理)。
合成排序:F8 = R1 0.15 + 低波 0.25 + 价值质量 0.60 + Σ(附加因子×0.05)
,截面分位相加,等权、按月调仓(次月开盘买入,持有约1个月)。
组合级波动率目标(Vol Target 15%)
:每月计算近 3 月组合年化波动率,超过 15% 时自动降仓(如波动 20% → 仓位 75%),低于 15% 满仓。回测验证:Sharpe +10~12%,回撤 -3pp,无收益损失。
⚠ Alpha 衰减监控(专业风险提示)
:OOS 前半(2023H2-2024H1) Sharpe 1.34,后半(2024H2-2025) Sharpe 1.21,衰减仅 -9%(V2移除后从 -26% 改善)。建议每季度重跑 Alpha 衰减检验,若 OOS 近半 Sharpe < 0.50 应考虑暂停策略。精选小池(59只)已因衰减 -73% 废弃,仅保留大池(189只)版本。
真实预期
:排除 OOS 有利期效应后,策略真实 Sharpe 约 0.80~1.00,年化 +15~20%,回撤 5~8%。Alpha vs 池内等权 +6.3%(经基准对比验证为真实)。因子经 MC p<0.005 显著、Walk-forward Gap=0.02、look-ahead 0% 错位,但历史回测不保证未来收益。
两阶段体验(秒出 + 后台精算)
:Phase A 先用 110 只核心种子秒出初步组合;Phase B 后台并行拉全A(约5500 只)+ 精算 18 因子,完成后自动刷新为最终组合,并给出 F8 模式徽章。
为什么其它 11+4 项增强被砍掉了?(双池 OOS 全部证伪 / 弱证据)
P2 距52周前高 / P3 动量过热惩罚 / P4 PEAD 盈利漂移 / V3 MAX / V4 252 偏度 / T1 MA斜率差 / S1 多窗动量合成
:在 59 或 199 池中 OOS 年化都比 F7 差 ≥3%,方向性错 → 弃。(V2 IVOL 因与 V4 偏度相关性 0.86/VIF=5.0,因子冗余已移除。)
Q5 应计 Accrual / S 自适应权重 / DYN 牛熊切换权重
:单因子在一池正向另一池大幅负向,易翻车 → 弃。
S2 Barroso 动量崩溃规避
:高波动月份缩仓到 0.3,结果在 199 池里牛市尾部直接少赚 30%,净值反而更低(A股动量崩溃信号噪声大)→ 弃。
N1 行业中性化 -6.3%/-4.3% / V1 波动率目标仓位 -5.6%/-4.8% / D1 状态自适应权重 -0.3% / A1 分析师预期修正二元版 0%
:F7 阶段就已证伪,继续弃。
教训:"因子越多越好"是假的
——18 项里 7/18 有正 OOS 边际,叠加之后贪心选 2/5 项才真正稳定;再堆更多,会把微弱优势吃光,净变成过拟合噪声。
市场不好时
大盘走坏时,能通过活门的个股会自然变少,组合自动收缩、少做;更极端时趋近空仓。残差动量相比原始动量对牛市尾巴的"高估值小盘冲刺暴露"少很多,因此回撤也更小(59池 F6 回撤 16% → F7 9% → F8 12% 小池 / 9% 大池)。大池模式下 T2(>82RSI 惩罚)、T4(∧回落扣分) 也会额外帮你避开"冲高回落"段。
速度与缓存
Python 端:
历史 K 线增量缓存
+
8 线程并行
全市场扫描(~20000 只/秒),运行可加
--warmup
预热、
--status
查看缓存;
PWA 端:
IndexedDB 缓存历史 K 线
+
当日实时行情 localStorage 1 小时复用
+
Service Worker 多源代理
,同一日内再次打开几乎秒开;
前端全A实时行情用
5路并发
拉取,种子模式先出结果,避免长时间白屏。
🏭 F9 工业级验证流水线(研究端,结果回灌到 F8 因子选择)
用户要求"≥30 因子必须走业界标准流程":我们按业界对冲基金惯例在研究端实现了
48 月滚动训练窗(Walk-forward)
,对 30 原始因子逐月跑:
截面分位 → Elastic Net(L1+L2 混合稀疏)→ 蒙特卡洛随机标签(80 次)显著性过滤 → PCA(保留 95% 方差 / ≤15 主成分) → OLS 下月收益回归 → 样本外选 Top N
。严格无未来数据、无训练窗穿越。双池验证结果:
199 只池(全A扩池) OOS 年化 +21% / Sharpe 1.15 / DD 20%
,Sharpe 优于 F8 大池模式(+19% / 1.00)。验证了 Lasso+MC+PCA 在"因子足够多"场景比人工挑因子更稳健。
59 只池(蓝筹池) OOS +12% / Sharpe 0.64 / DD 15%
,与 F8 小池模式持平(F8=+12%/0.60/12%),说明小样本(<80只)里人工规则 + 贪心选 2 因子已经达到理论上限,再上复杂流程边际收益为 0。
Walk-forward 中 Elastic Net + MC 显著性长期稳定选出的 Top 因子(频次 ≥15%)
🏅
V5 Amihud 非流动性 ~60%
:A 股市场小盘/冷门溢价长期显著,两次都是第一名。
🏅
ROE_proxy ~45%
:长期均线斜率+低点抬升速度合成,稳定股长期必然高 ROE,方向正确。
🥇
T1 MA 加速 ~38%
:短均线斜率 - 长均线斜率,动量加速度确实比速度本身更有信息量。
🥇
TurnVol 成交量变动 ~27%
:量能趋势(20日/120日)在大小盘两个池子里都是真信号。
🥈
Sentiment 情绪综合 ~19%
:长上影 + 异常大涨比例扣分项 → 过热真的是回撤前兆。
🥈
V2 IVOL ~19%
:剔除 CAPM 暴露的残差波动率确实低波动异象独立部分。
🥉
Mom1mo / Mom6mo ~14%
:1月反转 / 6 月动量真实存在,我们手动策略里之前没给权重,F9 帮它们补上。
**为何不直接把 F9 权重落地到前端?** 因为 F9 权重是"滚动训练窗逐期权重",每个月不同。12 个月平均稀疏权重已保存在 `f9_model.json` 的 `avg_12mo_sparse_weights`,199池最新平均约为 V5 +0.24 / ROE_proxy +0.24 / IdioStrength -0.21 / Mom1mo -0.11(可直接做前端增强,但用户可选启用)。我们仍保留 F8 小/大池自适应做前端,因为它是"单调权重 + 可解释 + 完全无前视",更适合个人账户执行;F9 作为 **F8 因子有效性的"盲式"第三方验证**,证明我们 F8 保留的 V5/T3/Q3 等方向完全符合业界标准流程筛选结果(**V5 都是第一名、ROE_proxy 第二也对应 QMJ/Q4**),两者互相背书。
数据源与降级
优先级:
腾讯 qt.gtimg.cn / web.ifzq.gtimg.cn
→ 新浪 money.finance / quotes.sina → 百度 finance.pae → 东财 push2*
接口不可用时自动一级级降级,任意一级失败都会在顶部横幅给出具体原因(不会静默出错);
CORS 跨域由 Service Worker 代理 + 公共 CORS 代理二级兜底,不开后端也能在浏览器直接跑。
业绩预告:东财 RPT_PUBLIC_OP_NEWPREDICT,按公告日最新优先,只取"归属于上市公司股东的净利润"并取上下限均值,未知则放行但不加分。
页面本地计算,不上传、无后端、无 Cookie 跟踪;已按 PWA 规范缓存,离线可打开上次结果。
本系统为策略框架演示,不构成投资建议。股市有风险,涉及个股数据仅供研究参考,据此操作风险自担。
🔍 股票查询
输入代码查看完整因子卡片
查询
💼 我的持仓
本地持久化, 跨会话保留
➕ 记录交易
成交后立即记录
日期
代码
方向
买入
卖出
成交价 (元)
股数 (100的倍数)
手续费 (元, 可选)
备注 (可选)
记录
📜 交易历史
导出JSON
🎯 今日操作建议
基于持仓+选股清单
初始资金 (元)
?
初始资金
用于计算仓位分配。
系统会根据输入的资金规模自动调整持仓数量
(例如小资金自动选 Top 3,大资金用 Top 8)。
填入你的实际可投资金额即可。
波动率目标
?
波动率目标
是你能承受的年化波动范围。
•
10-12%
:保守稳健,低仓位
•
15%
:均衡配置(默认)
•
20-25%
:进取高收益
选股波动率高时系统会自动降仓控制风险
,避免大回撤。
持仓模式
?
持仓模式
决定每次持有股票的数量。
•
动态 Top N
(推荐):
资金 ≥10万 → 持 8 只
资金 5-10万 → 持 5 只
资金 <5万 → 持 3 只
•
固定 Top 8
:无论资金多少都持 8 只(小资金可能买不了高价股)
固定 Top 8
动态 Top N
生成建议
📈
今日选股
🔍
查询
💼
持仓
🎯
建议
🧠
说明
确认交易
✕
日期
股票代码
方向
买入
卖出
成交价格 (元)
成交股数
手续费 (元)
可选,默认 0
备注