策略说明

在用的策略 + 已否证的打法 · 参数与验证成绩全部摊开
先看这一句:用哪个

我们验证过能赚钱的只有一套:「精选 4 因子 + V3 换手纪律」(顺风窗 +334.93%、 逆风窗 +42.31%)。
另一套「六维共振评分」在同样的年份是 -34.94%(同期大盘 +21.23%),它只用来「体检」,不是买入依据。

精选 4 因子 + V3 换手纪律● 通过三窗验证(2026-10-28 重定基线)

每 40 个交易日选 10 只等权持有,靠纪律换手,用于信号塔与纸面跟踪。这是唯一验证过能赚钱的配置。但它需要 3 个月不动,不适合天天盯盘。

4 个因子(横截面排序,不看绝对数值)
因子方向权重怎么算为什么用它
非流动性(Amihud)越大越好25%日收益绝对值 / 成交额,越大越好(越不流动溢价越高)A 股最稳的因子之一,但容量极小——大资金进不去,也是小账户的机会
账面市值比(B/P)越大越好25%净资产 / 总市值,越大越好(越便宜越好)价值因子。注意:这里用的是**横截面分位**,不是 PE<15 这种绝对阈值
60 日动量(反向)越小越好25%过去 60 日涨跌幅,**越小越好**(做反转,不追涨)与六维评分的「动量越大越好」方向完全相反——这是两套体系结论矛盾的根源之一
盈利收益率(E/P)越大越好25%净利润 / 总市值,越大越好与 bp 同属价值族但信息不同,两个一起用比单用稳
V3 换手纪律(这 7 个参数决定了它赚不赚钱)
参数当前值可选项说明
调仓间隔(交易日)freq4010 / 20 / 40 / 12040 日为默认;120 日是低维护备选(成本降到 1/2.5,顺风窗更优但逆风窗回撤大)
持仓只数top_k105 / 10 / 15 / 20越多越分散,10 只是收益与波动的平衡点
缓冲带倍数buffer_k1.61 / 1.2 / 1.6 / 2持仓只要没掉出 top_k×1.6 就不卖——降换手的关键,V3 唯一稳赢的改进
最小持有天数(交易日)min_hold6020 / 40 / 60 / 90不满 60 天且没掉出 1.5×缓冲带就强制留着
最低日均成交额(元)min_amount2000 万2000万 / 5000万 / 10000万容量门槛。放到 5000 万,顺风窗收益从 116% 掉到 45%——小盘是这套策略的命根
初始本金(元)capital10000050000 / 100000 / 200000影响能否凑够一手;10 万分 10 只,每只约 1 万
单边滑点slippage0.00150.001 / 0.0015 / 0.003回测假设 0.15%,实盘小盘股可能更差
逆风窗 2020-2023
+42.31%
回撤 -30.10% · 夏普 0.58
顺风窗 2024-2026
+334.93%
回撤 -25.50% · 夏普 2.15
扩张窗 2015-2019
+16.14%
回撤 -53.50% · 夏普 0.25
纸面跟踪(真实推进)
+42.54%
净值 142,540 · 至 2026-10-27
这套策略的已知短板(必须知道)
  • 2026-10-28 重定基线:池子从「按历史长度取 716 只」改为「全池 861 只 + 上市满 250 日闸门」。旧数字(逆风 +116.38% / 顺风 +244.56%)不可再与新数字直接比较——历史长度被补齐后按长度选池已退化成随机抽样(581 只行数完全相同)。
  • 数据源由东财换成新浪(腾讯 qfq 对高分红股早期历史返回负价格,已弃用),复权基准与旧报告不同。
  • 容量小:1000 万以上资金收益显著衰减。
  • 扩张窗 2015-2019 含 2015 股灾与 2018 单边熊,收益 +16.14%、回撤 -53.5%——说明这套策略不是全天候,弱市里必须靠仓位控制而不是指望它赚钱。
  • 同一交易日的 60 日前瞻窗口高度重叠,阶段条件收益的『胜率』有效样本远小于天数。
六维共振评分● 已停用(回测亏损,不再参与任何买卖判断)

给单只股票打分排序,用于今日扫描与个股诊断。已停用:回测亏损,扫描/诊断都不再用它。保留代码仅为复现否证。

因子权重怎么算已知问题
趋势(均线多头)25%收盘>MA20 且 MA20>MA60 且 MA20 斜率向上,每项 1/3 分纯价格规则,参数(20/60 日)写在 strategies/trend.py 里
中期动量10%t-12个月→t-3个月 涨跌幅,在扫描池内排前 10%/30%/50% 分档给分
top_pct=0.1 · mid_pct=0.3
横截面排名,必须整池一起算;单股诊断时会退化成绝对阈值
量价配合15%5 日均量 / 60 日均量 ≥ 1.2 且 5 日涨幅 > 0 → 满分;缩量下跌给低分
vr_hi=1.2 · vr_lo=0.8
识别「放量上涨」与「缩量下跌」两种最可靠组合
估值(PE/PB)25%PE<15 满分 / <25 得 0.6 / <40 得 0.3;PB<1 满分 / <2 得 0.6 / <4 得 0.3
pe_cheap=15 · pe_ok=25 · pb_cheap=1 · pb_ok=2
绝对阈值不是分位 → 银行股常年满分,这是「扫描全是银行」的主因之一
龙头(市值/成交额)15%总市值排名 + 成交额排名,各取前 10%/30%/50% 分档
top_pct=0.1 · mid_pct=0.3
偏好大市值大成交额 → 天然偏向银行、两桶油这类权重股
低波动10%60 日年化波动率,池内最低的前 10%/30%/50% 分档
top_pct=0.1 · mid_pct=0.3
低波动本身不是收益来源,它只在震荡市里降低回撤
门槛分档: 大盘状态分档门槛:强势 65 / 震荡 72 / 防守 80(防守态门槛更高,宁可不动)
验证成绩:FAIL(项目内部结论:权重建议归零)
区间 2024-01-01 → 2026-10-23(678 交易日,牛市窗口) · 总收益 -34.94% · 同期大盘 +21.23% · 最大回撤 +37.77% · 夏普 -0.47 · 胜率 40.7% · 241 笔
四个参数变体:A 固定65门槛 -34.94%B 状态分档门槛 -34.93%C 状态+冷却5日 -40.53%D 状态+冷却5日+防守空仓 -29.55%

四个变体全部为负,同期基准 +21.23%。说明「六维打分排序」这套逻辑在2024-2026 这段行情里没有信息含量。评分只能当『股票现在的状态体检』看,不能当买入依据——真正通过验证的是 4 因子组合。

想自己改权重试算? 去个股诊断页 ——那边可以逐项调权重,还有「只看技术面 / 只看便宜 / 只做反转」四套预设,实时看分数变化。

均线 + 量能(5 / 10 / 60 日线):验证过了,不能当买点

老板提的这套直觉(5 日线、10 日线快速评判,站上 60 日线买,量能突破选强势股)我们全跑了。 结论很硬:在本池(716 只历史最长的票)它是负 alpha, 18 种突破参数 + 7 种回踩参数 + 7 种闸门 + 5 种卖出纪律 + 5 种指数择时,没有一种能在两个窗口同时跑赢躺着拿。

怎么用逆风窗 2020-23顺风窗 2024-26判定
「站上 60 日线」的未来 20 日超额-0.18%-0.79%追高是负 alpha,与 4 因子的「反转」正好相反
纯均线策略(18 种参数里最好的「破 60 日线才卖」)-29.3%-13.1%同期同池买入持有 +73.4% / +43.6%
趋势内买回踩(7 种参数里最好的「回踩 MA20、破 MA60 出」)-8.1%-13.1%改善明显,但仍不如躺着拿
当闸门加到 4 因子策略上(只要站上 60 日线的票)+244.6% → +236.6%+116.4% → +42.1%把「跌得多才便宜」的票全过滤掉了
当卖出纪律(持仓跌破 MA60 就卖)+244.6% → +11.3%+116.4% → -0.6%反转策略靠「拿住下跌」赚钱,破位卖出等于剪掉收益
拿去管总仓位(沪深300 站上 MA60 才开仓)+244.6% → +165.3%+116.4% → +49.1%回撤略降,收益砍半,不划算

所以它现在的身份是「仪表」,不是「信号」:首页的快速评判给出池内站上 60 日线的比例、 短期多头比例、放量比例;个股诊断页给出这只票相对 5/10/20/60 日线的位置和量能状态。 这些都不产生买入指令,只帮你在 1 秒内看清「现在是趋势内还是趋势外、是放量还是缩量」。 完整实验数据(含每种参数的收益/回撤/交易次数)见仓库 docs/均线量能-W15.md。

数据范围(为什么不同页面股票数量不一样)
用途股票数范围怎么定
今日扫描 / 个股评分864 / 5570stock_daily 里日线 ≥60 根的股票。全库 5570 只,但只有 864 只有足够长的日线历史(其余是快照增量,只有几根)
4因子纸面跟踪861全池:stock_daily 里有真实日线的全部股票(回测/纸面跟踪域)。2026-10-28 起改为全池 + 上市满 250 日闸门;旧的「716 只」按历史长度选池已退化(补齐历史后 581 只行数完全相同,排序等于随机)
估值与龙头快照5575spot_snapshot 最新一期(全市场实时快照,含 PE/PB/市值/成交额)。估值与龙头因子只依赖这个快照

这三个池不是同一个池:扫描用 864 只(有 60 天以上历史),纸面跟踪用 716 只(历史最长的一批,偏中小盘)。 同一只股票在两个池里的排名分母不同,分数会有差异——这是口径问题,不是 bug。

庄家阶段的规则依据(5 条纯量价规则)
阶段触发条件会误判成什么
吸筹20 日振幅 ≤18% + 量比 ≤0.95(缩量)+ |20 日涨幅| ≤10% + ATR 相对 60 日均值 ≤0.9(波动收敛)长期阴跌的僵尸股也符合这三条,会被误判为吸筹
洗盘距 20 日高点回撤 7%~28% + 放量(量比≥阈值)+ 20 日涨幅 > -18%和「砸盘初期」只差一个 28% 回撤线,临界点上会来回跳
拉升放量突破 20 日新高,或 站上 MA20 且 MA20>MA60 + 20 日涨幅 ≥7% + 量能放大 + 处于箱体上沿识别出来时往往已涨了 7% 以上,属于「确认后跟随」而非「提前埋伏」
出货箱体位置 ≥75% + 放量(量比≥1.5)+ 5 日涨幅 ≤3%(滞涨);或 高位放量长上影阴线强势股的正常换手也会命中,误报率较高
砸盘5 日跌幅 ≥8% + 跌破 MA20 + 放量(非洗盘式收复)大盘系统性下跌时全市场同时命中,与个股自身操控无关

没有做过「人工标注真值」的准确率检验——因为「庄家阶段」本身没有公认的客观真值。唯一能验证的是「某个阶段之后 N 日的平均收益」,见 /phases 页的「阶段前瞻收益」表。那张表如果有结构(比如出货后 20 日平均跌),说明规则抓到了东西;如果没结构,就是噪音。

现在这个阶段,能赚的是什么钱

阶段定义(沪深300 是否在 MA60 上 + 池内站上 MA60 的比例)写在 jobs/regime_eval.py,下面的收益是「处在这个阶段之后,未来 60 个交易日」的实测均值,三段行情各跑一遍。 最反直觉的一条:四个阶段的最优动作都是「拿住 4 因子」—— 阶段只告诉你现在值不值得加钱进来,不告诉你换买什么。

阶段池内 60 日
逆/顺/扩
三指数 60 日
逆/顺/扩
胜率
逆/顺/扩
该做不该做
逆风(冰点)
该在场
+5.99 / +13.56 / +9.11+6.24 / +11.44 / +6.2576% / 79% / 64%别空仓、别割肉。这是全系统最强的环境——后面 60 日买什么都赚。不要因为跌得难受就清仓;也不要以为「换个宽基更稳」能多赚。
过热
别加仓
+0.06 / +2.96 / -8.83-2.74 / +4.31 / -8.5751% / 69% / 28%不加仓、不加杠杆,照常持有但别追。尤其不要买宽基指数——三窗两负(−2.74/+4.31/−8.57),扩张窗胜率只有 22.7%。
顺风
主场
+4.12 / +2.84 / +0.69-0.23 / +1.70 / +0.9862% / 63% / 55%照常满仓持 4 因子,这是它最赚钱的环境(顺风窗 +334.93%)。不要为了「顺着行情」去买指数——个股超额 +4.35/+1.14pt,换过去就是送钱。
震荡
别折腾
+2.31 / +0.11 / +1.77-0.47 / +1.29 / +0.5960% / 37% / 55%拿着别动,别指望这一段赚钱。不要因为「没有行情」而频繁调仓——这一段最容易把手续费磨出来。

W21 结论:阶段判断**决定该不该在场,不决定换买什么**。十档资产配置(冰点全换指数 / 半仓换 / 过热半仓现金 / 反向安慰剂)全部实测过,没有任何一档能三窗全胜——换资产的代价(顺风窗少赚 70~130pt)永远大于收益。唯一的正面发现:冰点期不要空仓(三窗胜率 64~79%),过热期不要买宽基(三窗两负)。

为什么要专门验「冰点买宽」:W19 发现冰点后池内 60 日 +5.99/+13.56/+9.11(胜率 64~79%), 但 4 因子在冰点区的超额是负的——说明涨的是整个市场,不是我们挑的那 10 只。 于是拿上证 / 沪深300 / 创业板指数做了十档配置对比:冰点买宽三窗确实全正 (+6.24/+11.44/+6.25),可和继续拿个股几乎一样(+5.99/+13.56/+9.11), 换过去只是波动小一点,顺风窗还要少赚 70~130pt。结论:不换。

2 万本金,到底该拿几只

问题原话:「两万的本金持股 6 支,如此分散怎么能赚到钱?应该是 1-3 支最好吧?」
这是唯一能诚实回答它的实验:选股逻辑一个字不改(同样 4 因子、同样 40 日调仓、 同样 2 万本金、同样股价 ≤25、同样只买主板 743 只),只改「同时持几只」。 三窗各跑一遍,任何差异都只能归因于持仓只数本身。

只数单只权重三窗收益
均值 / 最差窗
最大回撤波动40 日跌超 20%
出现概率
运气极差
随机因子
结论
1 只100%+975% / +9.9%-66.2%48%3.5%221pt数学最优,实战最差:单票全压,回撤 −66%。
2 只50%+422% / -7.4%-54.6%34%2.2%未测账面压过 3 只,但一次停牌锁死一半仓位。
3 只 ★33%+248% / +0.8%-55.6%33%1.6%90pt推荐:唯一三窗都不亏的小仓位数(0.76%)。
4 只25%+156% / -4.5%-47.9%28%1.4%未测分散的边际收益在这附近耗尽。
6 只17%+144% / -15.4%-47.8%24%1.0%59ptW22 原方案:稳妥,但把收益也摊掉了 40%。
10 只10%+122% / -17.5%-47.2%20%0.2%未测2 万买 10 只每只 2000 元,25 元的票连 1 手都买不起。

W23 实测(主板 743 只 · 2 万本金 · 股价≤25 · 4 因子 · 40 日调仓 · 三窗):只数从 10 减到 1,收益均值 122% → 975%,但最大回撤 −47% → −66%、波动 20% → 48%。集中买到的是杠杆,不是选股能力——顺风窗 14 个建仓日里,k=1 选中的那只14 次全部落在 k=3 的三只名单内,只是仓位差 3 倍。真正的分水岭是能否扛住回撤:2 万全仓一只,扩张窗最深亏到 6800,回本要涨 196%。建议区间 3~4 只,且这是「本金 2 万」的专属结论——本金上到 20 万以后,分散的性价比会翻转。

为什么「1 只多赚 6 倍」不能算选股更准:把 k=1 和 k=3 的建仓名单逐期对一遍, 顺风窗 14 个建仓日里,k=1 选中的那只 14 次全部出现在 k=3 的三只名单内—— 是同一份名单,只是仓位差 3 倍。所以集中放大的不是「挑得准」,而是「押得重」; 它真正说明的是:名单里排第 1 的那只确实比第 2、3 只好,把资金摊到后面几名就是纯稀释。但 14 期样本不足以证明「第 1 名永远最强」, 这也是 1 只不能押满的另一个理由。

「运气极差」是怎么来的:在 4 个真因子之外再塞一个纯随机因子当第 5 项(权重相同), 它不携带任何信息,唯一作用是轻微改变选出来的名单——正是实盘里「同样信号这次选 A、下次选 B」 的那点随机性。换 3 个种子看三窗收益差多少:k=1 差 220.8pt, k=3 差 90.2pt,k=6 差 58.9pt。1 只时,你分不清「这只票好」和「这次碰巧」。

一个前提必须说清:以上全部是只买沪深主板 743 只的结果,已剔除创业板(需 10 万+24 月)、 科创板(需 50 万)、北交所(需 50 万)与所有 ST / 银行保险。之前 W22 报告里 「控盘因子在扩张窗 +56.48%(+3.78σ)」是含创业板的池子跑出来的, 主板池里是 −7.48(−1.01σ)——那个优势全部来自创业板, 开不了权限就等于不存在。集中持仓也不会改变这一点。

哪些钱我们不赚(测过、很认真地测过,结论是不做)

这两样是市面上最常见的打法,也是老板点名要验证的。结论都是否决—— 不是因为「听起来不靠谱」,而是按真实成交价、真实手续费、三段时间窗都跑过,跑不出钱。 把它们写在最显眼的地方,是为了不再重复投入。

均线 + 量能趋势(5/10 日快评、站上 60 日线、放量突破)REJECTED · W15

为什么做不到:在本池里方向与 alpha 来源相反:池子的钱来自「买跌得多的」,均线要求「买涨起来的」,两套逻辑硬碰必然互相抵消。

  • 39 种参数组合全部落败,没有一种能三窗为正。
  • 「站上 MA60 就买」未来 20 日超额 −0.18% / −0.79%(两窗)。
  • 「量能突破」最差:20 日超额 −2.31% / −1.94%——放量在本池是出货而非启动。
  • 教科书版(站上 MA60 + 快线多头 + 放量)总收益 −81.70% / −57.43%,免成本 −65.91% → 不是被手续费磨死,是方向就错。
  • 最好的一档「趋势内回踩 MA20、破 MA60 走」也只有 −4.26% / −8.13%。
  • 唯一双窗正收益:用沪深300 站上 MA60 作总开关 +165.27% / +49.12%,但收益只有基线的四成——那是择时降仓,不是选股策略。

留下了什么:均线不当买点,只当「今天市场顺不顺」的温度计(data/ma_state.json)与首页快速评判。

复现代码:backtest/ma_trend.py · jobs/ma_eval.py · 报告:docs/均线量能-W15.md

首板打板(当日涨停、次日开盘抢入、短线兑现)REJECTED · W20

为什么做不到:统计上有微弱超额,交易上做不出来:隔夜跳空 + 高换手成本 + 一字板买不进,三道损耗叠起来把超额吃干净;且 2015-2019 段本身就是负的。

  • W17 事件研究报「20 日超额 +2.53% / +2.43% / +1.95%,三窗全过」——但那个口径用**首板当日收盘价**买入,收盘后才确认的信号现实中买不到。
  • 改用真实可成交价(次日开盘)后,20 日收益从 +1.79%/+5.80%/+0.68% 降到 +0.04%/+3.40%/−1.25%,三窗条件破裂。
  • 隔夜跳空极其稳定地吃掉 1.75~2.40 个百分点;顺风窗 29.6% 的首板次日高开超 5%、17.6% 直接一字板买不进。
  • 12 种组合参数(持有 1/3/5/10/20 日、止损、破 MA5、小盘优先、低换手优先、5 格/8 格、含连板)× 三窗,**没有一个能同时赢过 4 因子基线**。
  • 最好的一档(免成本、持 5 日)逆风 +44.70% / 顺风 +40.16% / 扩张 −74.71%——即便把成本全免,扩张窗也是灾难。
  • 单笔收益中位数三窗全为负(−1.1% ~ −7.5%):多数时候小亏,靠少数大肉,胜率只有 30%~41%。

留下了什么:首板只作「异动提醒」:盘后告诉你今天谁首板了(可观察,不推荐次日抢入)。

复现代码:backtest/firstboard.py · jobs/firstboard_eval.py · 报告:docs/首板-W20.md

一个必须说清的技术细节:W17 一开始算出「首板 20 日超额 +2.53%、三窗全过」, 是因为事件研究默认用首板当天收盘价买入——可首板要收盘后才确认,那个价买不到。 换成次日开盘价后,超额只剩 +0.04% / +3.40% / −1.25%,三窗条件当场破裂。 这类「看起来成立、按真实成交就消失」的结论,是这套系统最需要防的错误。

以上数字全部来自历史纸面回测,含滑点 0.15% / 佣金万 2.5 / 印花税 0.05%,不是实盘收益 · 只提醒不自动下单 · 据此操作风险自负。