参数网格
对策略类属性(如 n1、n2)给出取值范围,自动组合扫描。
官方 README 声明的主要能力。
| 能力 | 说明 |
|---|---|
| 简洁 API | Backtest + Strategy 两件套,文档清晰 |
| 快速执行 | 逐 bar 迭代,执行速度快 |
| 内置优化器 | 基于 SAMBO 的参数优化 |
| 参数网格 + 热力图 | 多参数扫描并以热力图呈现 |
| 指标库无关 | BYO,可接 talib/pandas 自定义指标 |
| 交互式可视化 | bokeh 输出交互式图表 |
| 交易结果结构化 | 以 Series/DataFrame 返回便于二次分析 |
优化器基于 SAMBO 算法,对策略参数做网格搜索,并返回热力图。
对策略类属性(如 n1、n2)给出取值范围,自动组合扫描。
用 maximize 指定优化目标(如 Equity Final、Sharpe、Return)。
返回二维热力图,直观比较不同参数组合的表现。
plot() 基于 bokeh 输出交互式图表。
叠加价格曲线与买卖点标记。
展示账户权益随时间的走势与回撤。
交互式缩放、悬停查看细节,便于复盘。
run() 与 optimize() 返回结构化的统计结果。
| 返回 | 类型 | 内容 |
|---|---|---|
bt.run() | Series | 收益、回撤、夏普、胜率、交易次数等统计 |
bt.optimize() | tuple(Series, DataFrame) | 较优参数统计 + 热力图 DataFrame |
选型前需了解的能力边界。
| 限制 | 影响 |
|---|---|
| 不支持多资产组合 | 难以直接做组合级回测,需分别回测或换用其他框架 |
| 不支持分数股 | 下单以整股为主,小额资金或分数股场景受限 |
| 单标的为主 | 更适合单标的 / CTA 类策略验证 |
| 回测结果仅历史表现 | 不构成收益保证或投资建议 |
官方 README 说明内置优化器基于 SAMBO(sequential model-based optimization),并支持参数网格搜索。
optimize 返回的 heatmap 是二维 DataFrame,行列为参数取值、单元格为目标指标值,颜色越深通常代表该参数组合表现越好。
Backtesting.py 的设计聚焦单标的逐 bar 回测,多资产组合与再平衡不在其能力范围内。
plot() 基于 bokeh,可输出为 HTML 文件保存与分享。