Skip to content

feat(research_stats): RS-02 PBO via CSCV (research-only, fail-closed) - #660

Merged
Pigbibi merged 1 commit into
mainfrom
rebuild/rs02-pbo-cscv
Oct 10, 2026
Merged

Pigbibi merged 1 commit into
mainfrom
rebuild/rs02-pbo-cscv

Conversation

@Pigbibi

@Pigbibi Pigbibi commented Oct 10, 2026

Copy link
Copy Markdown
Contributor

RS-02(QPK 部分):PBO / CSCV(research-only)

在 quant_platform_kit.research_stats 新增 probability_of_backtest_overfitting(Bailey, Borwein, López de Prado, Zhu 2017,CSCV)。

  • 输入:同一日期上全部试验的单期收益(mapping 或序列),按时间切成 S 个等长连续块(S 为偶数且 ≤ 16);不能整除时只丢弃最早的行并在 rows_dropped_leading 报告。
  • 枚举 C(S, S/2) 种 IS/OOS 组合,IS 最优者在 OOS 的相对名次 ω = rank/(N+1)(并列取平均名次),λ = logit(ω),PBO = λ ≤ 0 的比例。指标可选 sharpe(单期,ddof=1)或 mean_log_growth。IS 并列取输入顺序第一个,并在 is_best_ties 计数。
  • Fail-closed:试验 < 2、长度不一致、块数非法、每块行数不足、任一块指标无定义 → UNCOMPUTABLE,value=None。
  • 仅标准库;不 import QPK 其他模块(沿用 RS-01 边界测试)。
  • 测试全部为合成数据:持续优势 → 0;反转 → 1;与独立暴力实现逐组合比对一致;确定性;各失败路径。
  • 不改现有共享指标函数,不改 QPK_PIN,不升级任何下游 pin。

- probability_of_backtest_overfitting: CSCV over aligned T x N trial returns,
  sharpe or mean_log_growth metric, S even <= 16, leading remainder rows
  dropped and reported.
- UNCOMPUTABLE (value=None) for <2 trials, misaligned columns, odd/too many
  splits, short blocks or any undefined block metric.
- Synthetic tests incl. independent brute-force CSCV cross-check.
@Pigbibi

Pigbibi commented Oct 10, 2026

Copy link
Copy Markdown
Contributor Author

Self-review(rebuild):CSCV 实现与测试内独立暴力实现逐组合比对一致;持续优势→0、反转→1;试验<2、长度不齐、块数非法/不足、零方差块均为 UNCOMPUTABLE 且 value=None;最早余数行丢弃并在 details 报告;仅标准库、不 import QPK 其他模块(RS-01 边界测试覆盖);合成数据、无真实数字;未改 QPK_PIN/共享指标。UES 侧以本分支覆盖安装验证真实调用路径通过。CI 绿,squash 合并。

@Pigbibi
Pigbibi merged commit 442b729 into main Oct 10, 2026
1 check passed
@Pigbibi
Pigbibi deleted the rebuild/rs02-pbo-cscv branch October 10, 2026 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant