策略回测
用历史数据验证策略表现,支持逐步回测或一次性回测,配合滑点、佣金与成交量填充模型。
backtrader / mementum
backtrader 是基于 Python 的开源交易策略回测库(Python Backtesting library for trading strategies),提供实时交易与回测能力。它把策略开发、数据加载、指标计算、券商模拟与分析报告整理在同一套 Cerebro 引擎里,适合量化研究者、CTA/股票策略开发者与想用 Python 验证交易想法的用户。
项目页面显示约 22.9k Star;该数字会随社区活动变化,采集日期为 2026-08-18。
查看固定版本源码
它把「策略想法 → Python 策略编写 → 历史数据回测 → 指标与报告评估」整理成一条可复现的量化研究链路,让交易策略验证更结构化。
用历史数据验证策略表现,支持逐步回测或一次性回测,配合滑点、佣金与成交量填充模型。
内置 122 个指标(SMA/MACD/RSI 等)与 TimeReturn、Sharpe Ratio、SQN 等分析器,评估风险调整后表现。
支持 csv/pandas/在线数据源,多数据流、多策略与多时间框架,内置重采样与重放。
首页只保留理解所需的三步,详细流程见架构页与策略页。
pip install backtrader 安装后,创建 Cerebro 引擎并注册策略、添加数据与配置券商。
基于 Strategy 编写策略类(如 SmaCross 双均线交叉),通过 Cerebro.run 执行回测。
通过 plot 绘图与分析器查看收益、回撤与风险指标;回测结果不构成收益保证。
同一个研究目标,两种准备成本。完整对比见对比子页。
灵活度高,但环境、数据与指标边界都需要自己维护。
# 1. 安装
pip install backtrader
# 2. 写策略(SmaCross 双均线)
class SmaCross(bt.SignalStrategy):
def __init__(self):
sma1 = bt.ind.SMA(period=10)
sma2 = bt.ind.SMA(period=30)
crossover = bt.ind.CrossOver(sma1, sma2)
self.signal_add(bt.SIGNAL_LONG, crossover)
# 3. 准备数据
data = bt.feeds.YahooFinanceData(
dataname='MSFT', fromdate=..., todate=...)
# 4. 运行回测
cerebro = bt.Cerebro()
cerebro.addstrategy(SmaCross)
cerebro.adddata(data)
cerebro.run()
# 5. 查看结果
cerebro.plot()Skill 的数据源、Token、网络与市场覆盖各不相同;不代表 backtrader 已集成 EasyClaw。
backtrader 是基于 Python 的开源交易策略回测库,提供实时交易与回测能力,通过 Cerebro 引擎组织策略、数据、指标与分析器。
需要。backtrader 是库而非软件,需要用 Python 编写策略类、准备数据并运行脚本,官方文档面向有 Python 与量化经验的用户。
无已证实集成。backtrader 与 EasyClaw 没有官方集成证据;EasyClaw 内置的是量化研究类 Skill(如量化分析、财经数据、选股等),两者是独立路线。
支持 csv/本地文件、pandas、在线数据源(如 Yahoo Finance),以及 Interactive Brokers、Oanda 等实盘数据与交易接口,详见数据页。
回测结果仅代表历史表现,涉及数据、参数与市场环境假设,不构成收益保证或投资建议。