Backtesting.py / kernc

Backtesting.py:轻量 Python 回测库介绍与安装运行教程

Backtesting.py 是一个用 Python 回测交易策略的开源库(Backtest trading strategies in Python)。它把「策略编写、历史数据回测、参数优化与可视化」整理成一套简洁 API,适合量化研究者、单标的策略开发者与想快速验证交易想法的用户。

用途:交易策略回测与参数优化架构:Backtest + Strategy 两件套基于官方 README / PyPI 证据

项目来源

项目页面显示约 8.9k Star / 1.5k fork;该数字会随社区活动变化,采集日期为 2026-09-08。

kernc/backtesting.py GitHub 仓库页面截图:文件列表与 About 信息(8.9k stars / 1.5k forks) 查看固定版本源码
开源回测库AGPL-3.0,GitHub 约 8.9k stars
简洁 APIBacktest + Strategy 两件套
内置优化器参数网格 + 热力图
官方证据仓库 README / PyPI(2026-09 核验)
What it solves

Backtesting.py 能解决什么问题?

它把「策略想法 → Python 策略类 → 历史数据回测 → 参数优化与结果评估」整理成一条可复现的量化研究链路,让单标的策略验证更轻量。

快速策略回测

用历史 OHLCV 数据验证策略表现,支持现金、佣金与订单撮合参数,回测速度快。

参数优化

内置优化器(基于 SAMBO),对策略参数做网格搜索,并用热力图直观呈现结果。

交互式可视化

基于 bokeh 输出交互式图表,交易结果以 Series/DataFrame 返回便于二次分析。

How it works

三步理解:从策略到回测

首页只保留理解所需的三步,详细流程见架构页与首次运行页。

1. 安装并准备数据

pip install backtesting 安装后,准备一个 Open/High/Low/Close/Volume 列的 DataFrame。

2. 编写并运行策略

继承 Strategy 类,在 init 计算指标、在 next 写买卖逻辑,用 Backtest.run 执行回测。

3. 查看结果与优化

通过 plot 看交互图、通过 stats 看收益/回撤等指标,再用 optimize 做参数优化;回测结果不构成收益保证。

Setup and route

自建 Backtesting.py 还是用 EasyClaw 量化 Skill 路线?

同一个研究目标,两种准备成本。完整对比见对比子页。

Backtesting.py 自建适合开发者与可复现回测管道
安装 backtesting写策略备数据回测验证

灵活度高,但环境、数据与指标都需要自己维护。

# 1. 安装
pip install backtesting

# 2. 写策略(SmaCross 双均线)
class SmaCross(Strategy):
    def init(self):
        self.ma1 = self.I(SMA, self.data.Close, 10)
        self.ma2 = self.I(SMA, self.data.Close, 20)
    def next(self):
        if crossover(self.ma1, self.ma2):
            self.buy()
        elif crossover(self.ma2, self.ma1):
            self.sell()

# 3. 回测
bt = Backtest(GOOG, SmaCross, cash=10_000, commission=.002)
stats = bt.run()

# 4. 查看结果
bt.plot()
Backtesting.py 自建路线:安装、写策略、备数据、回测、绘图都要自行编写 Python 代码并维护环境(官方 Quickstart SmaCross 示意,2026-09 核验)。
EasyClaw 量化 Skill适合直接提出一个研究任务
安装 EasyClaw一句话提问

Skill 的数据源、Token、网络与市场覆盖各不相同;不代表 Backtesting.py 已集成 EasyClaw。

边界:EasyClaw 提供量化分析、财经数据、选股、技术分析等 Skill,可免去环境搭建直接发起研究;Backtesting.py 与 EasyClaw 无已证实集成。
EasyClaw 对话截图:一句话发起贵州茅台 600519 近 60 个交易日行情分析,AI 返回现价、涨跌幅、均线与 MACD 状态
EasyClaw 便捷性实拍:一句话发起量化行情分析(贵州茅台 600519),AI 自动调用行情与技术分析 Skill 返回带数字的简要报告;所用 Skill 与前置条件以实际账号为准,不代表 Backtesting.py 已集成 EasyClaw。
FAQ

常见问题

Backtesting.py 是什么?

Backtesting.py 是基于 Python 的开源交易策略回测库,通过 Backtest 与 Strategy 两个核心类组织回测、参数优化与可视化。

Backtesting.py 需要编程基础吗?

需要。它是库而非软件,需用 Python 继承 Strategy 类编写策略、准备数据并运行脚本,面向有 Python 与量化经验的用户。

Backtesting.py 在 EasyClaw 中能用吗?

无已证实集成。Backtesting.py 与 EasyClaw 没有官方集成证据;EasyClaw 内置的是量化研究类 Skill(量化分析、财经数据、选股、技术分析等),两者是独立路线。

Backtesting.py 支持哪些数据?

支持任意 OHLC(V) 蜡烛数据(Open/High/Low/Close/Volume 列),内置示例数据 GOOG,也可接入 pandas/tushare 等数据源,详见数据页。

Backtesting.py 回测结果可信吗?

回测结果仅代表历史表现,涉及数据、参数与市场环境假设,不构成收益保证或投资建议。

先明确你的回测目标

要自建 Python 策略回测管道走 Backtesting.py 自托管;想直接用一句话发起行情/选股/量化分析研究可看 EasyClaw 量化 Skill 路线。先看对比页再决定,避免装错工具。