from datetime import datetime import backtrader as bt class SmaCross(bt.SignalStrategy): def __init__(self): sma1, sma2 = bt.ind.SMA(period=10), bt.ind.SMA(period=30) crossover = bt.ind.CrossOver(sma1, sma2) self.signal_add(bt.SIGNAL_LONG, crossover) cerebro = bt.Cerebro() cerebro.addstrategy(SmaCross) data0 = bt.feeds.YahooFinanceData(dataname='MSFT', fromdate=datetime(2011, 1, 1), todate=datetime(2012, 12, 31)) cerebro.adddata(data0) cerebro.run() cerebro.plot()
包括一张功能齐全的图表。试试看!这包含在样本中,作为sigsmacross/sigsmacross2.py
沿着这条路走sigsmacross.py
可以从命令行参数化的
功能:
用Python编写的实时交易和回测平台
- 实时数据馈送和交易
- 互动代理(需求
IbPy
并极大地受益于已安装的pytz
)- 视觉图表)需要一把叉子
comtypes
直到拉入请求集成到版本中并受益于pytz
)- OANDA(需要
oandapy
)(仅限睡觉接口-v20实现时不支持流媒体)- 来自CSV/文件、在线来源或来自的数据馈送熊猫和猛火
- 数据筛选器,如将每日条形图分成块以模拟日内或使用Renko砖块
- 支持多种数据馈送和多种策略
- 一次多个时间范围
- 集成重采样和重放
- 逐步回溯测试或一次性回测(战略评估除外)
- 一体式指示器电池
- Ta-Lib指示器支持(需要pythonTa-lib/检查文档)
- 轻松开发自定义指标
- 分析器(例如:TimeReturn、Sharpe Ratio、SQN)和
pyfolio
集成(已弃用)- 灵活界定佣金计划
- 集成代理模拟与市场,关,限制,停,停止限制,停止轨迹,StopTrailLimit*和*OCO订单、托架订单、滑移、成交量填充策略和未来类工具的持续现金调整
- 用于自动打桩的定尺器
- 关闭时作弊和打开时作弊模式
- 调度程序
- 交易日历
- 打印(需要matplotlib)
文档
博客:
要阅读完整文档,请访问:
内置指示器列表(122)
Python 2/3支持
- Python>=
3.2
- 它还可以与
pypy
和pypy3
(不得图谋-matplotlib
在以下情况下不受支持PyPy)
安装
backtrader
是自包含的,没有外部依赖项(除非您想要打印)
从…琵琶:
pip install backtrader
pip install backtrader[plotting]
如果
matplotlib
未安装,您希望执行一些打印操作
注意事项
matplotlib的最低版本为1.4.1
以下是一个示例IB数据馈送/交易:
IbPy
似乎不在PyPi里。执行以下任一操作:pip install git+https://github.com/blampe/IbPy.git或(如果
git
在您的系统中不可用):pip install https://github.com/blampe/IbPy/archive/master.zip
对于其他功能,如:Visual Chart
,Oanda
,TA-Lib
,请检查文档中的依赖项
来源:
- 将Backtrader在项目内部的源代码中找到的目录
版本编号
X.Y.Z.I
- X:主版本号。应该保持稳定,除非有大的改变,比如大修以使用
numpy
- Y:次要版本号。在添加完整的新功能或(上帝保佑)不兼容的API更改时进行更改
- Z:修订版本号。针对文档更新、小更改、小错误修复进行更改
- i:平台中已内置的指标数量