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

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

数据层状态

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

先记住这条恒等式

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 / 下注次数) 样本越小越容易冒尖
所以这张排行榜本质上只是在比命中率:名次 = 命中率名次。 点进任一页,第 ⓪ 区「榜单对账」会拿浏览器内重算的数和榜单逐项对一遍。

11 个回测页

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

#方案族 下注次数命中率z q(FDR)ROI盈亏平衡 O*ROI 95%CI回测页
1次冷号 cold2nd · k(全 3 档)遗漏1,061 ~ 66,7990.10160 ~ 0.10462+0.50 ~ +1.380.856+0.040959.559[-0.13866, +0.22057]进入 →
2streak-fade-c2连出16,1110.10440+1.860.800+0.038799.578[-0.00731, +0.08488]进入 →
3窗口冷号 wcold · w(全 6 档)窗口频率161,277 ~ 161,3670.10053 ~ 0.10229+0.72 ~ +3.060.087+0.017779.776[+0.00321, +0.03234]进入 →
4mod3-r0-w200属性160,9170.10152+2.040.799+0.010179.850[-0.00442, +0.02475]进入 →
5hot-w20窗口频率161,3670.10111+1.490.800+0.006069.890[-0.00851, +0.02062]进入 →
6固定号 always · d(全 10 档)基线161,367 ~ 161,3670.10053 ~ 0.10078+0.72 ~ +1.040.800+0.002739.923[-0.01184, +0.01729]进入 →
7par-same-w100属性161,2170.10074+0.990.800+0.002369.927[-0.01221, +0.01693]进入 →
8emaC-w200指数加权160,9170.10066+0.880.800+0.001579.934[-0.01301, +0.01616]进入 →
9动量 mom · wl(sign=-1,ws=50,全 2 档)动量160,317 ~ 160,9170.10056 ~ 0.10062+0.74 ~ +0.830.808+0.001149.939[-0.01344, +0.01572]进入 →
10multi-cold2多号同押321,8340.10058+1.100.800+0.000809.942[-0.00951, +0.01111]进入 →
11nbor+1跟随161,3670.10057+0.770.829+0.000699.943[-0.01387, +0.01526]进入 →
「下注次数」按号计(多号同押的方案是单号策略的 k 倍流水), 「命中」按期计(一期最多中一个号)。ROI 95%CI 只要跨过 −0.00500,就不能说该方案优于随机。
回测区间:默认最近 100 天。每个页面左侧「回测区间」默认 = 数据源最近 100 个自然日(40,181 期,2026-07-21 ~ 2026-10-28),按 preDrawTime 的真实日期切, 不是「每天 402 期」的近似。可改成最近 N 天 / 最近 N 期 / 全部样本; 榜单那一行的数是全样本 54,149 期跑出来的,要复现请切到「全部样本(榜单口径)」。

怎么读这些数字

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