python 量化交易课程,python 量化交易教程详解

  

  这篇站外文章介绍的是传说中的backtraderbacktrader,属于本地版Python定量回测框架,功能比较齐全。既然业界好评如潮,我们作为量化交易者,应该把所有有用的工具集于一身。我们来体验一下这个框架。   

  

  反向交易者的使用在官方文件中有详细描述。一般分为两步:   

  

  创建一个策略,创建一个继承自backtrader的策略类。策略,然后您可以自定义其中的方法。策略中有一个类属性params,用于定义策略中一些可调参数值backtrader.indicators的计算方法,如均线、MACD、RSI等。使用时只需要实例化策略中会用到的技术指标,这样就可以在下一个函数中编写交易策略了。也就是进出市场的逻辑。创建策略决策引擎(原文是Cerebro,这里我用的是决策这个词)将定义好的策略注入决策引擎,将市场数据注入决策引擎,可视化的反馈测试结果。以上是框架的核心部分。当然,还有许多其他可扩展的功能。   

  

  Backtrader的数据加载非常灵活。这里,我们使用数据帧格式的数据,如下所示:   

  

  '''高开低走收盘成交量openinterestrade _ date 2017-01-03 8.12 8.07 8.07 8.12 179801.01 02017-01-04 8.16 8.09 8.13 8.15 166242.35 02017-01-05 8。3 28.13 8.15 8.17 22902.53 02017-01-06 8.19 8.12 8.18 8.13 128549.96 02017-01-09 8.15 8.08 8 8.13 8.13 136700.04 0 ' '构建策略的类是继承backtrader。__init__、log、notify_order、notify_trade、next等策略。   

  

  关于策略中的指标,backtrader内置了很多类型,可以直接调用。例如,移动平均线:   

  

  self . SMA=Bt . indicators . simplemovingaverage(self . datas 0,period=self . params . map period)由于内置了talib模块,所以也可以这样调用:   

  

  #内置talib模块self . SMA=Bt . talib . SMA(self . data,time period=self . params . mapperiod)在接下来的方法中,我们实现一个简单的双均线策略作为交易的逻辑。比如购买条件是MA5穿MA10;卖的条件是MA10穿MA5。   

  

  关于策略回溯测试,除了向Cerebro添加数据和策略之外,还设置了一些参数。比如经纪人的设置,比如初始资金,交易佣金。您还可以使用addsizer来设置每笔交易中买入的股票数量。   

  

  回测后,交易策略执行过程中累计的资金总额将被返还。这里回测新希望2017年1月1日至2020年1月1日的策略实施效果,最终资金从10000元变为15941.95元。   

  

  由于backtrader内置了Matplotlib,我们也可以将回溯测试的效果可视化如下:   

  

     

  

  一般来说,对高级朋友来说已经足够了,那么满足不了高级玩家的需求呢?继承框架可以自行扩展。   

相关文章