Backtrader
以 Cerebro 为调度核心,将数据源、策略、模拟券商和分析器组合的经典回测框架。
为什么值得学
适合从源码理解一根 K 线到达后,指标、策略与订单依次如何更新。
数据与控制流程
- 1Data Feed 推进
- 2Cerebro 调度
- 3Strategy 决策
- 4BackBroker 撮合
- 5通知与分析结果
此流程为教学归纳,便于建立整体认识;完整条件分支与运行细节请对照下方源码。
架构拆解 · 4 个核心模块
每个入口均已核对,点击可阅读源码总调度器
Cerebro 装配数据、策略和券商,推动回测循环与策略运行。
- 输入
- 数据源、策略和运行参数
- 输出
- 完整回测执行过程
backtrader/cerebro.py数据馈送
Feed / DataBase 将不同来源的数据转换成统一时间序列。
- 输入
- 历史数据或数据源
- 输出
- 逐步更新的价格线
backtrader/feed.py策略生命周期
Strategy 定义初始化、逐步执行、订单通知等接口。
- 输入
- 行情、指标和订单通知
- 输出
- 交易指令与策略状态
backtrader/strategy.py模拟券商
BackBroker 维护现金、订单和持仓,并按成交规则处理订单。
- 输入
- 订单、行情与成本模型
- 输出
- 成交、资金和持仓变化
backtrader/brokers/bbroker.py建议阅读顺序
- 先从 Cerebro 的 run 跟踪启动过程
- 读 Strategy 的 next 和订单通知接口
- 检查 BackBroker 对市价和限价单的处理
- 回到 Feed 理解多数据源对齐
动手做一次
实现均线交叉策略,手算并核对前五笔交易。
完成后,检查这些证据
- 列出信号和成交分别使用哪根 K 线
- 手算手续费、现金与持仓
- 比较零成本与有成本的回测结果
适用边界与版本说明
经典框架的旧教程可能依赖已经变化的数据接口;宜用本地固定 CSV 学习引擎,并单独检查安装环境兼容性。
Star 快照:23,525 · 核验日期:2026-10-20 · GitHub 归档标记:未归档
核验默认分支:master · 源码固定提交:b853d7c90b67 ↗
来源:GitHub 仓库与 Star 页面、README及上述源文件。分层、阅读顺序与练习为本站归纳;未逐一安装运行这些框架,源码提交不等于推荐安装版本。