用途:Backtrader 是开源 Python 量化回测框架,用于开发量化策略、编写交易逻辑、进行回测分析与参数优化。采用事件驱动架构,核心组件包括 Cerebro(引擎)、Strategy(策略类)、Data Feed(数据源)、Broker(经纪商)、Indicator(内置 100+ 技术指标)、Analyzer(绩效分析)。纯 Python 实现,无外部依赖,适合离线研究。官方文档:https://www.backtrader.com/docu/
安装:pip install backtrader;如需绘图 pip install backtrader[plotting] 或 pip install matplotlib。
主要能力:支持从 Pandas DataFrame、CSV 加载数据,多股票与多周期回测,数据重采样(如分钟线转日线);策略可定义可调参数,支持市价、限价、止损、止损限价单及撤单、目标仓位调整;提供订单与交易回调;内置 SMA、EMA、MACD、RSI、布林带、KDJ、ATR、CrossOver 等指标;可设置初始资金、手续费、滑点与仓位管理器;内置夏普比率、最大回撤、收益率、交易统计、SQN、年化收益等分析器;通过 optstrategy 进行参数网格搜索并支持多核并行。
使用方式:在 init 中定义指标,在 next 中编写交易逻辑;用 self.data.close[0] 访问当前值、[-1] 访问前值;通过 cerebro.addstrategy 添加策略、adddata 加载数据、broker.setcash 设置资金、run 运行、plot 绘图。
适用场景:量化策略研究、回测分析、参数优化与交易逻辑验证。
限制:数据需用户自行准备,可配合 baostock、AKShare、Tushare 等数据源使用;DataFrame 列名须为小写 open、high、low、close、volume,索引须为 DatetimeIndex;数据量不足会导致指标计算报错;绘图需安装 matplotlib;参数优化时 sharpe 可能返回 None,需处理空值。更多进阶策略示例见 references/advanced-strategies.md。