Backtesting.py 是面向 Python 的轻量历史策略回测框架,通过 Strategy 的 init 和 next 方法组织指标与逐根数据逻辑,再由 Backtest 生成统计和交互图表。官方快速入门提供数据与均线交叉样本,便于先理解执行流程。
它适合验证简单规则和检查代码假设,但不会替使用者解决数据质量、前视信息和过拟合。尤其要理解信号产生与订单成交的时点,明确费用、仓位及是否做空,再解释结果中的交易和回撤。
建议先复现官方样本并逐笔检查交易。保持数据和均线参数不变,仅调整一项费用或执行假设,能更清楚地认识回测输出。
Backtesting.py 是面向 Python 的轻量历史策略回测框架,通过 Strategy 的 init 和 next 方法组织指标与逐根数据逻辑,再由 Backtest 生成统计和交互图表。官方快速入门提供数据与均线交叉样本,便于先理解执行流程。
它适合验证简单规则和检查代码假设,但不会替使用者解决数据质量、前视信息和过拟合。尤其要理解信号产生与订单成交的时点,明确费用、仓位及是否做空,再解释结果中的交易和回撤。
| 接口与模块 | 能回答什么 | 实现与验证 |
|---|---|---|
| 数据输入OHLC data | 保证顺序与字段 创建回测前 | 日期索引、价格列、复权和空值 |
| 策略生命周期init / next | 避免偷看未来 写策略时 | 预计算指标与逐根可见数据 |
| 执行参数Backtest | 解释实际模拟 运行前后 | commission、trade_on_close 和仓位 |
用官方 GOOG 示例与 10/20 均线策略,只比较 commission=0 和 0.002 两种假设。
保存库版本、样本日期、策略代码和两个费用参数,保留示例中做多与做空的原始规则。
分别运行并核对信号时间、成交时间和交易记录;检查费用是否也影响可用仓位或成交。
记录交易次数、费用与结果差异,说明不能只把两条曲线之差当成固定成本常数。
应得到两份配置、交易记录和差异解释,能够说明策略、费用与成交模型共同决定模拟结果。
开源库和文档公开可用,可在本地 Python 环境运行;需要自行准备依赖与符合格式的数据。
框架按逐根数据推进可见序列;自行计算的指标或外部数据仍可能引入前视信息。
默认与 trade_on_close 等设置有关,必须按当前 API 的执行规则核对。
需要检查样本外表现、稳定性和成本敏感性,最优历史参数可能只是过拟合。
内容核对于 · 击球区编辑部整理 · 原始资料见本页官方链接
先了解工具,再带着具体问题去使用。功能、数据权限及收费方式以网站官方说明为准。