策略与回测进阶

Backtrader

以 Cerebro 为调度核心,将数据源、策略、模拟券商和分析器组合的经典回测框架。

★ 23,525mementum/backtrader核验 2026-10-20
Python事件驱动时间序列

为什么值得学

适合从源码理解一根 K 线到达后,指标、策略与订单依次如何更新。

需要的基础

  • Python 类
  • OHLCV
  • 订单与手续费

涉及哪些内容

事件回测多数据源策略生命周期模拟撮合

数据与控制流程

  1. 1Data Feed 推进
  2. 2Cerebro 调度
  3. 3Strategy 决策
  4. 4BackBroker 撮合
  5. 5通知与分析结果

此流程为教学归纳,便于建立整体认识;完整条件分支与运行细节请对照下方源码。

架构拆解 · 4 个核心模块

每个入口均已核对,点击可阅读源码
MODULE 01

总调度器

Cerebro 装配数据、策略和券商,推动回测循环与策略运行。

输入
数据源、策略和运行参数
输出
完整回测执行过程
源码入口 ↗backtrader/cerebro.py
MODULE 02

数据馈送

Feed / DataBase 将不同来源的数据转换成统一时间序列。

输入
历史数据或数据源
输出
逐步更新的价格线
源码入口 ↗backtrader/feed.py
MODULE 03

策略生命周期

Strategy 定义初始化、逐步执行、订单通知等接口。

输入
行情、指标和订单通知
输出
交易指令与策略状态
源码入口 ↗backtrader/strategy.py
MODULE 04

模拟券商

BackBroker 维护现金、订单和持仓,并按成交规则处理订单。

输入
订单、行情与成本模型
输出
成交、资金和持仓变化
源码入口 ↗backtrader/brokers/bbroker.py

建议阅读顺序

  1. 先从 Cerebro 的 run 跟踪启动过程
  2. 读 Strategy 的 next 和订单通知接口
  3. 检查 BackBroker 对市价和限价单的处理
  4. 回到 Feed 理解多数据源对齐
本站设计的学习练习

动手做一次

实现均线交叉策略,手算并核对前五笔交易。

完成后,检查这些证据

  • 列出信号和成交分别使用哪根 K 线
  • 手算手续费、现金与持仓
  • 比较零成本与有成本的回测结果

适用边界与版本说明

经典框架的旧教程可能依赖已经变化的数据接口;宜用本地固定 CSV 学习引擎,并单独检查安装环境兼容性。

Star 快照:23,525 · 核验日期:2026-10-20 · GitHub 归档标记:未归档

核验默认分支:master · 源码固定提交:b853d7c90b67 ↗

来源:GitHub 仓库与 Star 页面、README及上述源文件。分层、阅读顺序与练习为本站归纳;未逐一安装运行这些框架,源码提交不等于推荐安装版本。

同方向继续比较