回测有了结果,
还要知道它是怎样算出来的。
18节,从数据身份与时间戳,到独立评价、成交账本与完整复现。
前几章给出了规则与风险限制,这一章把它们放进可核查的研究流程。通过自动演示看清数据如何泄漏、样本如何污染、成交如何失真,再下载完整教学包独立重跑。
18节自学课程
72个自动演示步骤
1个可离线运行的研究包
资料、时间与账本,都可以逐项核对
清洗前后、公司行动、合约拼接、标签区间、未来数据、幸存者偏差、滚动评价、同根双触发和不可成交都有具体演示。下载包含构造数据、规则、代码、逐笔预期与文件哈希。
数据从哪里来,怎样保留原意
01数据源、授权范围与可追溯性
先知道每一列是什么、从哪里来,再把它送进回测。
时间戳、时区、交易日历与夏令时
一条数据发生、结束和被你收到,可能是三个不同时间。
缺失值、异常报价和重复记录
先区分没有交易、没有收到数据和数据损坏,再决定怎样处理。
复权、公司行动与历史成分股
价格序列变化、持有权益变化和当时可选标的,要分别还原。
期货换月、连续合约与拼接方式
连续图是分析序列,实际下单仍发生在具体合约。
多平台报价差异与成交量口径
先对齐产品、时间和单位,再判断差异是否有研究意义。
在当时可知的信息上生成样本
07事件标签、持有期与结果标签
样本起点、结果观察区间与标签何时完整,要一起记录。
手工回测的抽样和标注规范
先决定要看哪些样本,再打开未来结果。
滚动指标、未来数据和信息可用时间
指标算对公式还不够,它必须在决策时已经算得出来。
幸存者偏差与退市标的遗漏
研究对象应是当时可以被选择的集合,而不是今天还留下来的赢家。
隔离研究与评价
11相互重叠的样本和训练测试污染
不同样本ID可能共享同一段未来行情。
按时间划分训练、验证和保留测试区间
先写每个区间允许做什么,再开始调参数。
Walk-forward 的训练窗口和评价窗口
每次向前走,模型只能用当时已经完成的数据。
执行、实验记录与完整复现
14撮合假设、费用、滑点与资金费用
信号收益与可执行净结果之间,需要一份明确的成交模型。
单根 K 线内先止盈还是先止损的歧义
OHLC相同,盘中顺序仍可能不同。
停牌、涨跌停及无流动性时的不可成交处理
价格出现不等于订单有成交对手。
参数搜索记录、代码版本和实验日志
研究结论要能看见试过多少次,而不只是最好的一次。
让他人能够复现同一份回测结果
别人能重跑输入、规则和账本,才算交付完整研究。
本章完成后
提交一份可复现研究包,说明数据口径、规则、成本、时间隔离与完整结果。Python 3.10+标准库离线运行;教学数据不用于宣称策略优势。
下载可复现教学研究包(ZIP)