# 前缀一致性小实验

版本 prefix-check-v1，2026-10-31。AI辅助方法实验，8个虚构已完成观测。
不接行情、不访问网络、不下单，不计算策略收益；不是Freqtrade或pandas的运行结果。

## 运行

代码面向Python 3.10+，实际验证Python 3.12.2和3.14.7。只使用标准库，无第三方依赖。
解压后在本目录执行：

```bash
python3 check_prefix.py --out run-01
python3 -m unittest discover -p test_prefix.py -v
```

输出目录必须是新名字，已有目录会拒绝覆盖。默认使用脚本同目录fixture.csv。
自行换数据：`python3 check_prefix.py --input your-fixture.csv --out run-02`。
CSV必须只有step,close两列，step从1连续递增；close必须有限且大于0。

## 结果与规则

- next_close：差异步骤1–7，7/7比较，双空跳过1。
- centered_mean3：差异步骤2–7，6/6比较，双空跳过2。
- full_sample_demean：差异步骤1–7，7/8比较，双空跳过0。
- trailing_mean3：无差异，0/6比较，双空跳过2。

报告run-01/report.json含逐点结果、输入/脚本SHA-256、Python版本、容差。
expected-results.json是Python 3.14.7的已跑报告，不是每种数据的预期结果。
双侧None不计比较或通过；单侧None计差异；数值abs/rel容差均1e-12。
测试另包含未来扰动、手算点、常数样本漏检、无效输入/输出等7项行为检查。

## 局限

要求函数确定、无外部状态，每个片段从同一起点开始。逐点重复运算只为教学，不适合大规模全市场直接运行。
常数序列能使故意前瞻的全样本去均值函数出现零差异。
本检查不证明没有偏差，不审核函数外训练、数据发布/修订时点、跨标数据、初始化长度或订单成交时点。
SHA清单只验证文件完整性，不证明方法或交易有效。

官方参考：

- https://www.freqtrade.io/en/stable/lookahead-analysis/
- https://www.freqtrade.io/en/stable/recursive-analysis/
- https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rolling.html
