BIL15B r2 局部返修(2026-10-16)
R01:仅修正第12.1节中英错误代码注释及相邻解释。三行例以11入场、以11收盘估值,入场日NAV仍1000,未赚到先前10→11跳空;倒签与错误提前入场仍成立。执行语句和数值不改,根NEW_CASES_CHECK的三行API复现沿用,不重跑历史研究。
本轮只重建两语body PDF;双语Loom和其余未变有效源按r1冻结路径/SHA继承。r1下文的“本批”是r1工作历史,不代表r2重新阅读或重跑。r2的实际输入、版本、检查与未重跑范围见r2 HANDOFF/REPAIR_CHECKS/manifest。完整Notebook/runner、French、历史walk-forward和20seed均未重跑。
BIL15B 第30章来源映射与读取边界
记录日期:2026-10-16。以下先记录本批作者实际工作,再保留分隔线后的A6历史来源记录。历史会话的“已读/实测/版本”不表示本批重读、重跑或当前依赖版本。
本批实际采用与读取
- 完整阅读本批BRIEF、ADOPTED_SCOPE、DISPATCH、133项INPUT及20目标前态、现行协调规则、根ROOT_READER_NOTES、两章工作Markdown/source_notes及双语题答设计所用中文Loom。输入逐项内容/前态核验见同批AUTHOR_INPUT_VERIFICATION.json。
- 接受I3正文及Loom语义为纠错基准,工作Markdown为可编辑文本;C14集中校订是已应用的继承输入。第30章L05保留“先从未舍入JSON计算再显示”:前视1.1490、幸存0.2616;显示数相减的幸存0.2615不是新实验,也不因旧open队列回退。原8张PNG只读,图注区分单股与NAV、第31标签终点19。
- 本批完整读validation.py,定向读取research_protocol.py的TrialLedger/校正接口及backtest.py实际现金/执行/退市字段。I3 Notebook默认路线、RUN_DIR与French跳过由根实读笔记及本批静态定向源码核对承接;不声称本批完整运行或逐格重读两Notebook。
- 第30章复杂收益条件、费用/Jensen及凸根推导,第31章半开支持/可得性、面板gap、两内折及Markov反例由主作者重新逐步推导。根已有20组独立标准库复算仅按相同参数沿用;本批新增检查只覆盖改变的显示代码与新P4构造案例,不重复计数为20项新研究。
- 新编P4-T01–03是60名、3日、显式简化的整合教学扩展;不复刻旧240×96研究,不改成本Exercise1–6编号。两语路由、完整题答和Loom在本批候选中整合,辅助英文草稿由主作者审读,不等于独立接受。
本批执行及未执行
必要的10个改变显示代码块及P4 Fraction/局部API检查记录在build/batches/BIL15B/r1_20261016/;保留首次cash字段错误与修复记录。检查规模、输入、哈希及最终PDF审读以本批AUTHOR_CHECKS、manifest和HANDOFF为准。没有运行完整CLI、Notebook、runner、French、历史walk-forward或20seed。代码/数据/config/Notebook/原PNG不改写。French原始/提取/处理数据不随默认I3包提供,公开可得不等于授权;A10-A/A10-A.1协议不替代G05/A10-B执行授权。
外部文献及URLs只作为继承阅读线索,本批没有网络抓取或重新核读外文献,不能将未核读条目用于优先权断言。真实P4研究仍planned;PIT数据与使用权、借券、交易日历和容量证据仍缺。BIL17消费者及BIL23英语Notebook/便携装配/冷启动/全局链接另行处理。
以下为A6历史记录(保留身份,个别书目/优先权措辞已作标注更正)
第 30 章来源与实际读取范围(Source Notes)
历史记录日期:2026-10-07。执行者:Gemini 作者(A6 阶段第 30 章实现者)。
取得方式:完全基于本地工作区已冻结代码、测试用例与数据文件直接读取与核对。
该历史会话内未进行任何外部网络与 URL 读取(0 次外部网络/URL fetch)。全局 references/sources.json 保持只读。
1. 本地工作区内实际打开并核对的文件清单
1.1 数据文件与数据清单(Data & Manifests)
data/processed/french_10_industries_monthly.csv- 处理后文件 SHA-256:
3b097d810c295d64eedfa1ece7067ff2a0707f5ca90e33935df9949251f70950(用shasum -a 256在该历史会话内实测核对)。 - 包含 Kenneth R. French 10 个行业组合(NoDur, Durbl, Manuf, Enrgy, HiTec, Telcm, Shops, Hlth, Utils, Other)从 1926-07 至 2026-08(共 1202 个月度观测)的价值加权月度收益率。
- 处理后文件 SHA-256:
data/manifests/french_industries_2026-10-05.json- 清单文件 SHA-256:
3b71cd5f781f9790cc380195c22635e03e9c9e27a5f43cd2d0d46fb12efa8271(用shasum -a 256在该历史会话内实测核对)。 - 原始压缩包 SHA-256:
ebd937a4b995d821867aeb956a96f09a666386f38fa82516b7d1767ee4a49ae5。 - 数据源 URL:
https://mba.tuck.dartmouth.edu/pages/faculty/ken.french/ftp/10_Industry_Portfolios_CSV.zip。 - 属性说明:记录数据源、处理口径与
is_point_in_time: 0的非时点历史修订属性(聚合收益率,非个股,不可交易)。
- 清单文件 SHA-256:
data/manifests/french_factors_2026-10-05.json- 清单文件 SHA-256:
597c9703afa623a63b0d5fbf36dc941aac90d00948aeca302f151ed3c854000b(用shasum -a 256在该历史会话内实测核对)。 - 处理后因子文件
data/processed/french_factors_3_monthly.csvSHA-256:c19770a19a0ac47ad1c29074f57234570aeaa9725212cb4fa8146a2846c52814(用shasum -a 256在该历史会话内实测核对)。 - 提供月度无风险利率(RF,美国 1 个月国债收益率),通过
load_industries_and_rf加载。
- 清单文件 SHA-256:
1.2 模块源代码与测试规格(Source Modules & Tests)
src/quant_course/backtest.py:第 29 章冻结账本核心。实际读取全文 1–278 行。核对run_backtest的splits、dividends、delistings输入接口、solve_post_fee_nav扣费后目标净值解析求解器,以及reconcile逐日对账台账分解。src/quant_course/performance.py:实际读取全文 1–160 行。核对cagr、sharpe_ratio、annualized_volatility、drawdown_path函数的接口定义与输入边界。src/quant_course/research_protocol.py:实际读取 1–140 行。核对TrialLedger试验账本类的record、n_trials,以及expected_max_standard_normal、bonferroni_adjust多重检验校正函数。src/quant_course/pit.py:实际读取 1–60 行。核对pit_asof_join时点对齐契约与available_at、ingested_at的双重有效性门槛。src/quant_course/factor_signals.py:实际读取 1–156 行。核对latest_available_values、formation_return的因果截断逻辑。src/quant_course/french_frozen.py:实际读取 1–60 行。核对load_industries_and_rf加载逻辑与哈希自验机制。course/zh/chapters/ch22/content.md:实际读取 1–80 行。核对试验账本(Trial Ledger)、多重检验与研究计划冻结的先修定义与接口。projects/project04/preparation/signal_layer.py:实际读取 1–370 行。核对counterexample_period_end、counterexample_survivorship、counterexample_future_perturbation、counterexample_full_sample_standardization的反例设计模式。code/ch29_backtest_engine.py、tests/test_ch29_workflow.py、qa/a6/claude/notebook_builders/build_ch29.py:实际读取其 CLI 结构、测试断言格式与 Notebook 生成器架构。qa/a6/claude/plan.md、../quant_course_handoffs/2026-10-07_claude_a6/A6_CONTRACT.md、../quant_course_handoffs/2026-10-07_claude_a6/LEARNING_QUALITY_CHECKLIST.md:实际读取 A6 契约中关于第 30 章的 8 种偏差要求、共用构造数据集、未来扰动检验规则与证据链规范。tools/validate_chapters.py、tools/validate_snippets.py:实际读取章节结构验证脚本与代码块独立运行检测器。
1.3 运行环境实际核对
- Python 解释器:工作区
.venv/bin/python(Python 3.14.7,该历史会话内用.venv/bin/python -c "import sys; print(sys.version)"实测核对)。 - 核心库版本(该历史会话内实测核对):
pandas: 3.0.6numpy: 2.5.3matplotlib: 3.11.2scipy: 1.17.0
2. 本章自行推导与构造的结论(本章独立设计,不归属于外部文献)
以下数据生成过程与算法设计为历史作者在本章采用的教学构造,不主张文献优先权,已在 code/ch30_backtest_biases.py 中实现;当前结果位于 qa/a6/codex_resume/ch30/results_v2/ch30_results.json:
- 共用教学构造数据集生成过程(DGP, Seed 20261030):
- 36 只股票(S01–S36),522 个合成周一至周五观测(2024-01-02 至 2025-12-31),不是交易所日历,包含交易所假日 2025-01-01;年化使用约定 252 观测/年。
- 包含市场因子与特质因子的双层收益生成过程,显式植入盘后财报公告日历、2:1 拆股(S05 第 125 日)、现金分红(S08 与 S12 定期派息)以及两家公司的财务困境与退市清算(S35 第 180 日以 2.0 USD 清算,S36 第 350 日以 1.0 USD 清算)。
- 合成示例中的未来扰动不可侵入性检查(限于已实现的策略与数据接口,不宣称普适定理):
- 截止日后扰动标记价、执行价、盈余公告、拆股、股利与未来退市清算现金额;比较截止日前目标权重、成交、持仓、收盘权重和 NAV。v2 固定策略各输出的最大绝对差异为 0.0;故意使用未来全样本选择的 wrong arm 权重差为 0.1,NAV 差为 7,432.50 USD。
- 8 种回测偏差的量化差异与符号实测:
- 前视偏差:公告后下一网格观测日收盘决策、再 lag=1 的因果版本 Sharpe -0.7760,前视版本 0.3730,差异 +1.1490(wrong > fixed)。
- 幸存者偏差:PIT 全样本 Sharpe -0.5565,幸存者版本 -0.2950,差异 +0.2616(wrong > fixed)。
- 选择偏差:动态滚动筛选夏普比率 -0.9108,事后挑选最优 10 只标的夏普比率 0.8164,差异 +1.7272(wrong > fixed)。
- 数据窥探:50 次候选信号尝试的最大夏普比率 -0.0193,中位数 -0.3921,零假设下独立正态最大值期望 2.2763,Bonferroni 校正 p 值 1.0000。
- 过拟合:8 个经济 close-to-close 回报滞后预测下一交易日 open-to-close 毛回报,模型样本内夏普 0.7041,样本外 -0.6788(变化 -1.3829);20 日动量对照样本内 -0.1243,样本外 -1.5639(变化 -1.4396)。两者均未证明可部署的预测能力。
- 公司行动处理错误:未复权账本期末 NAV 为 74,281.57 USD,忽略拆股期末 NAV 为 59,445.09 USD(拆股当日净值虚假下跌 -26.20%),复权价叠加分红期末 NAV 为 76,444.05 USD。对账最大残差
。 - 参数挖掘:训练期选出的 5 日回看期 IS Sharpe 为 1.2443,2025 OOS Sharpe 为 -1.6799(收缩幅度 2.9242;OOS 全参数中位数 -1.2301)。参数只按 IS 选择,OOS 全网格仅为事后描述。
- 成本建模错误:高换手策略在 0、5、10、20、50 bps 单边费率下 CAGR 分别为 -16.23%、-19.76%、-23.15%、-29.50%、-45.58%,Sharpe 分别为 -0.7744、-0.9870、-1.1984、-1.6158、-2.7949。
2.1 v1 历史修订与结果边界(2026-10-07;已由 v2 修订)
- v1 CLI 快照保留在
qa/a6/codex_resume/ch30/results/ch30_results.json,图保留在qa/a6/codex_resume/ch30/figures/。该快照的前视策略时间戳后来被独立审查发现偏早;请以 2.2 的 v2 结果作为当前正文依据,勿覆盖 v1 证据。 - 所有研究特征使用原始账本价格结合拆股、分红及退市现金流推导的逐日经济回报;回测成交和持仓估值仍使用原始价格与公司行动账本。回归目标为信号收盘后下一交易日开盘至收盘的毛回报,不包括成交前的隔夜跳空。
- 20 个附加种子的选择偏差 Sharpe 差均值为
1.2671、标准差0.3014;参数挖掘 OOS 收缩均值0.3974、标准差1.4743、正收缩占比55.0%。多种子结果说明单一随机样本不能推出固定方向或稳健效果。 - 构造数据只有一个两年样本,主要用于展示方法;单次 IS/OOS 切分不构成稳定性或真实市场有效性的证据。Kenneth French 行业组合仍是修订后的非 PIT 聚合序列,不可交易。
2.2 v2 独立审查修订与当前结果(2026-10-07)
- 当前 CLI JSON 为
qa/a6/codex_resume/ch30/results_v2/ch30_results.json,4 张新图在qa/a6/codex_resume/ch30/figures_v2/;v1 结果、QA 图未覆盖,原figures/a6/ch30_*.png快照也已复制到previous_figures_v1/。课程展示图已更新为 v2。v2 JSON SHA-256:49dbc04e1c4b1f4d6c254cafbecc9313a15a26d49fa50e0abb9e9699a0be161c;v1 SHA-256 仍为5bdc59fa7e6fd98080398854533c4d3d1d037b3be474ab2e54d9730e861d98c9。 - 盘后公告 16:30 不属于当日收盘信息集;因果策略使用公告后下一网格观测日收盘信号,lag=1 后下一观测日开盘成交。v2 固定 NAV 为
69300.37USD、Sharpe-0.7760,wrong NAV 为112500.12USD、Sharpe0.3730,差异分别为+43199.74USD 与+1.1490Sharpe。 - 合并拆股/现金股利的账本探针以 10 股 × 100 USD 开始;2:1 拆股后按新股每股 1 USD 派息,参考价为
100 / 2 - 1 = 49,价值为 20 × 49 + 20 = 1,000 USD。新增单测通过。 - C03 后续复核修正:最初 v2 的三个根来自漏掉成交名义金额 z 的旧反例,不适用于正文成本函数。现按 C(z)=c2sigmazsqrt(z/ADV) 使用 w=1, x=50, Vpre=49, c1=0, ADV=1, c2sigma=0.3,得 f(v)=v+0.3*|v-50|^(3/2)-49,两个根为
41.29509609、48.38332833。详见修订记录中的审计更正;该错误数字仅作历史记录。 - French JSON 分开记录清单文件 SHA-256
3b71cd5f781f9790cc380195c22635e03e9c9e27a5f43cd2d0d46fb12efa8271与原始 ZIP SHA-256ebd937a4b995d821867aeb956a96f09a666386f38fa82516b7d1767ee4a49ae5;这两者不是同一个哈希。 - 逐项根因、修复、复算结果及未覆盖边界见
qa/a6/codex_resume/ch30/revision_report_v2.md。代码测试、正文片段与 Notebook 均需由根代理冷执行复验;本报告不代表独立验收。
3. 延伸阅读与未核读文献声明(Further Reading)
在正文第 19 节与第 20 节中提及的外部文献均标注为未核读(not read in this session),仅作为学术沿革与延伸参考线索提供给读者:
- White (2000), "A Reality Check for Data Snooping", Econometrica:未核读。经典数据窥探自助法检验文献。
- Lo & MacKinlay (1990), "Data-Snooping Biases in Tests of Financial Asset Pricing Models", Review of Financial Studies:未核读。资产定价模型中数据窥探偏差的经典理论分析。
- Brown, Goetzmann, Ibbotson, Ross (1992), "Survivorship Bias in Performance Studies", Review of Financial Studies:未核读。基金业绩研究中幸存者偏差的理论与实证基准。
- Harvey, Liu, Zhu (2016), "... and the Cross-Section of Expected Returns", Review of Financial Studies:未核读。多重检验与新因子 t 统计量阈值提升研究。
- Bailey, Borwein, López de Prado, Zhu, "The Probability of Backtest Overfitting", SSRN revised working draft (2015-02-27):未核读。PBO 与 CSCV 理论基础(本批未核读;第32章source_notes记录2015-02-27工作稿,期刊版未读)。