backtrader回测框架的特点
特点
实时交易
与盈透证券,OANDA ,VisualChart等外界经纪人通过API进行集成。
[0]
基于索引
[0]当前周期的数据
历史-1
,-2
时刻访问在arrays值(即:负值)时,保持在与Python有一定的不同。- 任何正数都意味着未来时刻(在
event-only
模式下测试你的代码并且会破坏)
事件和Vectorized
- 交易逻辑和代理总是在逐个事件的基础上运行
- 如果可能,指标的计算是矢量化的(源数据可以预加载)
一切都可以在event-only
模式下运行,没有预装数据,就好像如果事情是活的。
数据源(Live Too)
- 内置支持几个来源:CSV,数据库,消息人士透露,YahooFinance,盈透证券,OANDA V1,…
- 任意数量的同时数据馈送(存储器的限制,很明显)可以同时运行
警告!
谨防幸存者的偏见!
- 多重时间周期可以混合运行
- 集成重采样和重放
Broker:
- Order类型:
Market
,Limit
,Stop
,StopLimit
,StopTrail
,
StopTrailLimit
,OCO
,Bracket
,MarketOnClose
- 长短selling
- 类似未来工具的持续现金调整
- 用户定义的佣金计划和信贷利息
- 资金模式
- 批量填充策略
- 自定义滑点
策略 – 交易逻辑
- 操作前自动预热时间计算
- 多策略(针对同一代理)可以并行运行
- 多个订单生成方法(
buy/sell
,order_target_xxx
,自动信号) - 事件通知:传入数据,数据馈送提供商,订单,交易,计时器。
指标
超过122个指标
- 许多均线(
SMA
,EMA
,…),经典:(MACD
,Stochastic
,RSI
,…)和others ta-lib
integration
性能分析仪
内置多种性能分析器(TimeReturns
, TradeAnalyzer
,SharpeRatio
, VWR
, SQN
,…)
绘图(额外)
自动的(定制的)绘制用单个命令。
注意:
对于这项工作,matplotlib
必须安装
分级机
定义和插件智能自动铆合政策
观察员
这将被绘制并可以在系统中看到的一切(通常代理将用来绘制统计)
Miscelanea
- Timers超过time
- Trading Calendars
- Timezone Support
Pure Python
重复动作最强大,且易于使用,编程的一个工作语言。不需要额外的库。
- 使用OO很容易让被安装到每个other.
- Operators拼图的碎片都超载,如果可能的话,提供自然语言语句如:
av_diff = bt.ind.SMA(period=30) - bt.ind.SMA(period=15)
其中
av_diff
将包含简单移动平均线的差的30
和15
periods. - 对于语言结构,不能被覆盖,像
and
,or
,if
,相当于functions提供,以确保没有功能缺失,如av_and = bt.And(av_diff > 0, self.data.close < bt.ind.SMA(period=30))
内容看起来很好,可惜代码框显示为网页源码,哪位知道如何解决吗?
av_and = bt.And(av_diff > 0, self.data.close < bt.ind.SMA(period=30))