backtrader / First run

backtrader 首次运行:SmaCross 双均线回测示例

安装完成后,用官方 README 的 SmaCross(双均线交叉)示例跑通第一个回测:创建 Cerebro、添加数据、运行回测并绘图。这是理解 backtrader 工作流最快的入口。

入口:SmaCross 双均线流程:Cerebro → run → plot基于官方 README 示例
安装pip install backtrader
写策略SmaCross 双均线交叉
运行cerebro.run()
结果cerebro.plot()
backtrader 首次运行流程示意(安装 → SmaCross 策略 → run → 绘图),基于官方 README 快速开始。
Official example

官方快速开始示例(SmaCross)

以下为官方 README 的 SmaCross 示例,实现双均线交叉买入信号。

from datetime import datetime
import backtrader as bt

class SmaCross(bt.SignalStrategy):
    def __init__(self):
        sma1, sma2 = bt.ind.SMA(period=10), bt.ind.SMA(period=30)
        crossover = bt.ind.CrossOver(sma1, sma2)
        self.signal_add(bt.SIGNAL_LONG, crossover)

cerebro = bt.Cerebro()
cerebro.addstrategy(SmaCross)

data0 = bt.feeds.YahooFinanceData(dataname='MSFT', fromdate=datetime(2011, 1, 1),
                                  todate=datetime(2012, 12, 31))
cerebro.adddata(data0)

cerebro.run()
cerebro.plot()
示例边界:以上为官方 README 代码示例(2026-08 核验),未在本机运行验证;Yahoo Finance 数据源可用性随网络/地区变化。回测结果仅代表历史表现,不构成收益保证或投资建议。
Steps

分步理解

把官方示例拆成四步,对应 backtrader 的核心工作流。

1. 定义策略SmaCross 继承 SignalStrategy,SMA(10) 上穿 SMA(30) 触发买入信号。
2. 创建引擎Cerebro 实例化,通过 addstrategy 注册策略。
3. 添加数据用 YahooFinanceData 添加 MSFT 历史数据(2011-2012)。
4. 运行与绘图cerebro.run() 执行回测,cerebro.plot() 输出图表(需 matplotlib)。

跑通第一个回测之后?

继续了解策略开发、数据源或功能特性;如果不想维护 Python 环境,可对比 EasyClaw 量化 Skill 路线。