Backtrader 中文文档¶
Backtrader 是一个功能丰富的 Python 量化交易框架,支持回测和实盘交易, 提供 50+ 技术指标、20+ 数据源、多种经纪商和全面的分析工具。
为什么选择 Backtrader?¶
📚 易于学习
学习曲线平缓,API 设计直观。 5 分钟即可运行你的第一个策略。
⚡ 高性能
支持向量化 (runonce) 和事件驱动 (runnext)
两种模式,比原版快 45% 以上。
🧩 组件丰富
50+ 指标、17+ 分析器、21+ 数据源 — 开箱即用,满足各种需求。
📊 专业可视化
支持 Plotly、Bokeh、Matplotlib, 一键生成 HTML/PDF/JSON 报告。
🌐 实盘就绪
支持盈透证券 (IB)、 CTP (中国期货) — 回测到实盘无缝切换。
🔧 高度可扩展
自定义指标、分析器、数据源和经纪商。 插件友好的架构设计。
快速开始¶
pip install back-trader-python
import backtrader as bt
class SmaCross(bt.Strategy):
params = (('pfast', 10), ('pslow', 30))
def __init__(self):
sma_fast = bt.indicators.SMA(period=self.p.pfast)
sma_slow = bt.indicators.SMA(period=self.p.pslow)
self.crossover = bt.indicators.CrossOver(sma_fast, sma_slow)
def next(self):
if not self.position and self.crossover > 0:
self.buy() # 金叉买入
elif self.position and self.crossover < 0:
self.close() # 死叉卖出
cerebro = bt.Cerebro()
data = bt.feeds.GenericCSVData(
dataname='data.csv',
datetime=0, open=1, high=2, low=3,
close=4, volume=5, dtformat='%Y-%m-%d')
cerebro.adddata(data)
cerebro.addstrategy(SmaCross)
cerebro.broker.setcash(100000) # 初始资金
cerebro.broker.setcommission(commission=0.001) # 手续费
cerebro.addanalyzer(bt.analyzers.SharpeRatio, _name='sharpe')
cerebro.addanalyzer(bt.analyzers.DrawDown, _name='drawdown')
results = cerebro.run()
strat = results[0]
print(f"夏普比率: {strat.analyzers.sharpe.get_analysis()}")
cerebro.plot(backend='plotly')
源代码¶
GitHub
主仓库 — Issues、Pull Requests、CI/CD。
Gitee (国内镜像)
国内镜像,访问更快速、更稳定。
相关项目¶
Backtrader 是 CloudQuant 量化研究生态的一部分:
⚙️ backtrader
本文档所述的高性能核心引擎 — 覆盖低频、中频、高频的回测与实盘交易。
🤖 backtrader-skills
面向 AI Agent 的离线编写/审查/测试 Skills:本地数据登记、类型化策略 规格、静态审查与隔离子进程回测。
🔌 backtrader-mcp
本地优先的 MCP Server,提供 typed tools、resources 和 prompts, 用于构建和运行可复现的策略。
🤝 backtrader-agent
离线优先的策略编写 Agent 运行时:规范规格、静态审查、哈希绑定审批 与可恢复会话。
🌐 backtrader_web
"AI for Investor":Vue 3 + FastAPI Web 平台,覆盖研究、策略生成、 回测、模拟盘与实盘执行。
📊 fincore
量化绩效与风险分析库:150+ 金融指标、组合优化、蒙特卡洛模拟与 绩效归因。
进阶主题
教程
策略图鉴
- 量化策略图鉴:1,152 个策略的系统化解读
- 均线交叉:从金叉死叉到 Hull 均线的 69 副面孔
- 通道突破进阶:海龟法则的完整版,以及它的近亲们
- MACD 趋势系统:零轴过滤、永远在场,与一个诚实的 A 股回测
- 先问有没有趋势,再问方向:ADX、SuperTrend 与跟踪止损
- 单指标会骗人,确认器会吗?——振荡器与 K 线确认的趋势入场
- 把市场装进状态机:HMM、数字滤波与黄金/宏观/加密主题趋势
- RSI 超买超卖族:Connors RSI2 与它的 67 个变体
- 振荡器反转:Stochastic、CCI、KDJ 与 Blau 的平滑之道
- 布林带与通道回归:squeeze 与触带反转的两种剧本
- K 线反转形态:三只乌鸦、三白兵,与一场四种确认器的对照实验
- 经典量化规则:Double 7s、连跌计数与波动率冲击——把研究论文钉成断言
- 结构回归与 MT5 EA 移植:NRTR 自适应包络、Renko 砖块与价差收敛
- 双动量与时序动量:一个做开关,一个做选择
- 因子动量与轮动:ESG、PCA、低波动与 52 周新高
- K 线形态交易:吞没、晨星、锤子,以及振荡器的第二次投票
- NR7、Darvas 箱体与 Heikin Ashi:当价格结构本身成为信号
- 日历与事件效应:缺口的三种命运,与只出现在隔夜的收益
- 统计度量与组合策略:从凯利公式到 Markowitz,仓位本身就是信号
- 波动率系统与状态切换:让 HMM 听懂市场的心跳
- 多指标共振:当 CCI 遇上 MACD 和 Camel 通道
- 日历效应:Sell in May、换月窗口与 FOMC——给最古老的市场谚语做体检
- 杂项精选:TD Sequential 的衰竭倒数、逢跌买入与"顺带验框架"
- 资产配置:60/40、风险平价与永久组合——赚 beta 的艺术
- 配对交易:金银协整、卡尔曼滤波与 Copula——统计套利六百年谚语的科学化
- 机器学习策略:从 KMeans 聚类到强化学习,回测库偏爱"能断言的 ML"
- 商品货币与宏观:COT 持仓报告、实际利率与三因子外汇
- 风险管理策略:波动率目标、分级回撤保护与危机对冲
- 突破策略:从海龟法则到 Dual Thrust 与 R-Breaker
- 波动率通道:Keltner、SuperTrend 与吊灯止损,ATR 的一百种用法
- 经典单指标策略:威廉、KD、TRIX 与终极振荡器的教科书之旅
- 网格与马丁格尔:均价网格的数学与纪律
- 成交量系统:VWMA 与 Ergodic Tick Volume 的量价实验
- 时段交易:夜盘通道与开盘定价,把时钟当信号
- 定时与数据回放:让回测第一次拥有了"盘中的耐心"
- 特殊策略:ETF 轮动、跨市场套利,与那些"不属于任何流派"的实战代码
- 轮动策略:每月一次的排名,把动量从单标的变成组合游戏
- 枢轴点与斐波那契:全世界的日内交易员,都在看同一组数字
- 订单类型实战:Bracket、OCO 与跟踪止损,把风险管理写进订单簿
- 期权策略:到期周效应与备兑卖出,在别人对赌的地方捡硬币
- 高级功能:参数优化、多数据与信号策略——从写策略到用框架
- 情绪策略:恐贪指数、PCR 与 VIX——巴菲特格言的量化版
- 套息交易:躺着收利差的科学,与 2008 年那场大雨
- 预测策略:ARIMA 与预测振荡器——猜方向的学问
API 参考