Backtesting.py / Features

Backtesting.py 功能特性:优化器、热力图、可视化与限制

Backtesting.py 以简洁 API 提供完整回测能力:内置优化器做参数搜索、热力图呈现结果、交互式图表可视化,并以 Series/DataFrame 返回交易结果。

优化器:SAMBO可视化:bokeh结果:Series/DataFrame
optimize参数优化
heatmap热力图
plot交互图
stats统计结果
Backtesting.py 功能特性示意(优化器/热力图/可视化/交易结果),基于官方 README。
Features

功能清单

官方 README 声明的主要能力。

能力说明
简洁 APIBacktest + Strategy 两件套,文档清晰
快速执行逐 bar 迭代,执行速度快
内置优化器基于 SAMBO 的参数优化
参数网格 + 热力图多参数扫描并以热力图呈现
指标库无关BYO,可接 talib/pandas 自定义指标
交互式可视化bokeh 输出交互式图表
交易结果结构化以 Series/DataFrame 返回便于二次分析
Optimizer

内置优化器与热力图

优化器基于 SAMBO 算法,对策略参数做网格搜索,并返回热力图。

参数网格

对策略类属性(如 n1、n2)给出取值范围,自动组合扫描。

目标函数

用 maximize 指定优化目标(如 Equity Final、Sharpe、Return)。

热力图

返回二维热力图,直观比较不同参数组合的表现。

注意:参数优化易过拟合,优化目标是历史回测指标,不构成收益保证;应结合样本外验证。
Visualization

交互式可视化

plot() 基于 bokeh 输出交互式图表。

价格与信号

叠加价格曲线与买卖点标记。

权益曲线

展示账户权益随时间的走势与回撤。

可缩放/悬停

交互式缩放、悬停查看细节,便于复盘。

Results

交易结果与统计

run() 与 optimize() 返回结构化的统计结果。

返回类型内容
bt.run()Series收益、回撤、夏普、胜率、交易次数等统计
bt.optimize()tuple(Series, DataFrame)较优参数统计 + 热力图 DataFrame
说明:交易结果可转 DataFrame 后导出,便于接入 pandas 做进一步分析;字段名称以实际返回为准。
Limitations

限制与边界

选型前需了解的能力边界。

限制影响
不支持多资产组合难以直接做组合级回测,需分别回测或换用其他框架
不支持分数股下单以整股为主,小额资金或分数股场景受限
单标的为主更适合单标的 / CTA 类策略验证
回测结果仅历史表现不构成收益保证或投资建议
结论:Backtesting.py 适合轻量、单标的、可复现的策略回测与参数调优;组合级、多资产需求建议评估其他框架或 EasyClaw 量化研究 Skill。
FAQ

功能特性常见问题

优化器是什么算法?

官方 README 说明内置优化器基于 SAMBO(sequential model-based optimization),并支持参数网格搜索。

热力图怎么看?

optimize 返回的 heatmap 是二维 DataFrame,行列为参数取值、单元格为目标指标值,颜色越深通常代表该参数组合表现越好。

为什么不做多资产组合?

Backtesting.py 的设计聚焦单标的逐 bar 回测,多资产组合与再平衡不在其能力范围内。

可视化能导出吗?

plot() 基于 bokeh,可输出为 HTML 文件保存与分享。

下一步

了解能力与边界后,对比 EasyClaw 量化 Skill 免部署路线,选择适合你的研究方式。