PC28 · ROI 排行榜前 20 名 · 单方案回测

数据来源 roi_ranking.md(75 个方案全网格扫描,O = 9.95,54,178 期 × 3 车道,walk-forward) · 每个方案一个独立页面,参数可调,回测在浏览器本地算、不上传。

数据层状态

正在读取 data/meta.json…
数据走「外置 + 增量拉取」(10 秒级):页面首次打开拉一次全量包(75 KB), 之后每 30 秒只拉 meta.json(约 2 KB),有新期号才拉当天的增量包(约 600 B)。 所以页面上的数据基本是实时的。
榜单走「每日重建」(小时级):roi_scan.py + build_schemes.py 每天跑一次,所以白天的期号可能还没进榜单。 此时页面会显示「数据比榜单新 N 期」—— ⓪ 区对账按榜单口径截取,仍然成立。
当前即离线单文件版(数据已内联,双击可开)—— 不会自动更新;看实时请用上一级的 index.html(需 http 访问)。

先记住这条恒等式

ROI命中率 × O − 1 固定注码、资金不被打穿时恒成立
理论 ROI(p=0.1, O=9.95)−0.00500 每押 1 单位亏 0.005
打平所需命中率10.0503% = 1 / 9.95,比 0.1 高 0.0503 个百分点
命中率噪声 σ√(0.09 / 下注次数) 样本越小越容易冒尖
所以这张排行榜本质上只是在比命中率:名次 = 命中率名次。 点进任一页,第 ⓪ 区「榜单对账」会拿浏览器内重算的数和榜单逐项对一遍。

12 个回测页

按 ROI 从高到低排列。点「进入」打开对应页面;每页都能改信号参数、车道、本金、 注码方式(固定单位 / 本金百分比)、赔率、回测区间,并跑蒙特卡洛与 Kelly 曲线。 同一族里只有某个旋钮不同的方案已合并成一页(不是删掉):页内 ⑥ 区把该旋钮的 全部取值各跑一遍、点一行就切过去,所以 always-d0~d9、 cold2nd-k20/30/40 这类重复入口不再各占一行。 「#」列是连续页序;鼠标悬停方案名可见它(们)在原榜单里的名次 (如 原榜 #8·9·12·14·16),方便回榜单原文核对。 合并行的下注次数 / 命中率 / z 直接给区间—— 这是换档真正会变的量。

#方案族 下注次数命中率z q(FDR)ROI盈亏平衡 O*ROI 95%CI回测页
1streak-fade-c2连出16,2070.10465+1.970.749+0.041239.556[-0.00473, +0.08719]进入 →
2次冷号 cold2nd · k(全 3 档)遗漏1,091 ~ 67,3050.10151 ~ 0.10357+0.39 ~ +1.300.875+0.030579.655[-0.14656, +0.20770]进入 →
3窗口冷号 wcold · w(全 6 档)窗口频率162,285 ~ 162,3750.10090 ~ 0.10234+1.21 ~ +3.150.085+0.018329.771[+0.00380, +0.03284]进入 →
4mod3-r0-w200属性161,9250.10147+1.980.749+0.009669.855[-0.00488, +0.02419]进入 →
5hot-w20窗口频率162,3750.10116+1.560.769+0.006559.885[-0.00797, +0.02107]进入 →
6par-same-w100属性162,2250.10082+1.100.769+0.003139.919[-0.01140, +0.01765]进入 →
7固定号 always · d(全 10 档)基线162,375 ~ 162,3750.10061 ~ 0.10079+0.81 ~ +1.050.769+0.002819.922[-0.01171, +0.01733]进入 →
8emaC-w200指数加权161,9250.10064+0.860.775+0.001369.936[-0.01318, +0.01590]进入 →
9nbor+1跟随162,3750.10059+0.800.775+0.000919.941[-0.01361, +0.01543]进入 →
10动量 mom · wl(sign=-1,ws=50,全 2 档)动量161,325 ~ 161,9250.10055 ~ 0.10059+0.73 ~ +0.780.775+0.000839.942[-0.01374, +0.01539]进入 →
11multi-cold2多号同押323,8500.10057+1.090.769+0.000719.943[-0.00957, +0.01100]进入 →
12hot-w50窗口频率162,3750.10055+0.730.794+0.000429.946[-0.01410, +0.01494]进入 →
「下注次数」按号计(多号同押的方案是单号策略的 k 倍流水), 「命中」按期计(一期最多中一个号)。ROI 95%CI 只要跨过 −0.00500,就不能说该方案优于随机。
回测区间:默认最近 100 天。每个页面左侧「回测区间」默认 = 数据源最近 100 个自然日(39,808 期,2026-07-22 ~ 2026-10-29),按 preDrawTime 的真实日期切, 不是「每天 402 期」的近似。可改成最近 N 天 / 最近 N 期 / 全部样本; 榜单那一行的数是全样本 54,178 期跑出来的,要复现请切到「全部样本(榜单口径)」。

怎么读这些数字

1. 全网格极值校正。在完全随机的 iid 序列上用同样 75 个方案、同样取 max, 重复 10 次:max-ROI 零分布均值 +0.07943、95% 分位 +0.11933;真实第一名 +0.04968 的分位 p = 0.7273(比零分布均值还低)。max-z 零分布均值 2.404、真实最大 z=3.462 → p = 0.0909。 这两个 p 都不显著 —— 第一名是「挑出来的最大值」,不是可复用的规律。
2. 判定能否赚钱只看符号。是「命中率 × O − 1」的符号,不是名次、不是 z、不是 p。 最好的方案 O* = 9.479;赔率一旦低于 9.479,它照样变负。
3. 样本量决定噪声。cold2nd-k40 只有 1912 注,σ ≈ 0.00686, ROI 95%CI 宽到 [−0.114, +0.154] —— 第 2 名这个位置基本是噪声给的。
ROI      = 命中率 × O − 1
盈亏平衡 O* = 1 / 命中率
命中率标准误 se = √(0.09 / n_bet)        z = (命中率 − 0.1) / se
ROI 95%CI = [(命中率 ∓ 1.96·se) × O − 1]
多号同押:每期押 k 个号,单期净收益 = +stake·(O − k) 或 −stake·k