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 backtraderpip 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:平台中已内置的指标数量
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
