搭建系统|听说backtrader很不错!把它集成到本地GUI回测平台中!

前言

一个完整的量化交易系统离不开人机交互功能的应用,特别是在回测阶段,我们需要不断更改参数因子、更换交易策略以应对当前的市场。因此创建完整的、功能键全的GUI用户界面至关重要。

前几期我们搭建了自定义的量化回测框架:

搭建系统|在线改策略很便捷!试一试本地GUI回测平台动态改策略

搭建系统|多维度下不同股票|周期|除权|复权走势对比界面

搭建系统|行情软件可没有!多股票投资组合用的GUI分析界面

搭建系统|想把聚宽本地化吗?一起来创建GUI版的自定义量化回测平台

搭建系统|wxPython布局管理实现多只股票走势对比界面

搭建系统|比Matplotlib更好用的pyecharts打造GUI股票行情分析界面

这个版本仍然是矢量化回测架构,现在市面上倒是有好些事件型的开源量化框架,其中backtrader就属于功能相对完善的本地版Python量化回测框架。

实现过程概述

关于两种回测方式,我们直接对比方式来看下两者的优缺点。

backtrader框架的使用、回测指标的实现、可视化等等,这些“积木”都在掘金小册课程中,此处我们只是集成起来搭建一个基于backtrader的本地回测系统。

先来看下效果图:

接下来我们概述下这一期我们主要作的一些改动点。

backtrader框架使用起来是蛮方便的,使用方法在官方文档上介绍的挺详细的。大体分为几步:

  • 创建一个策略,创建一个策略类,这个类要继承自backtrader.Strategy,然后就可以自定义里面的方法。

  • 策略类中有一个类属性params,用于定义一些在策略中可调参数值

  • backtrader.indicators内置了许多指标的计算方法,比如移动平均线、MACD、RSI等等,使用时只需要实例化策略中会使用到的技术指标即可

  • next函数中编写交易策略,也就是进入市场和退出市场的逻辑

  • 创建一个策略决策引擎(原文是Cerebro,这里我用决策这个词) 

  • 把定义的策略注入到决策引擎之中

  • 把行情数据注入到决策引擎之中

  • 可视化方式反馈回测结果

此处关于cerebro设置的几个参数,我们通过GUI配置下去,比如手续费、初始资金、交易规模、回测周期等等。

回测的数据格式为PandasData,我们通过API接口下载来后,经过转换后使用。

可视化部分会稍微复杂些,因为我们在wxPython中嵌入了matplotlib,所以后端是更改过的,基本上backtrader的绘图就废了。

话说回来,自带的绘图风格我其实也也不是很喜欢,于是就把回测过程中的一些log信息收集下来,二次制作一个绘图函数。

框架提供的log的信息如下所示。我们可以利用这些日志信息。

初始资金: 10000.00

2019-07-03, Buy Create, 18.68

2019-07-04,买入:价格:18.7,成本:9350.0,手续费:18.7

2019-07-22, Sell Create, 18.47

2019-07-23,卖出:价格:18.62,成本: 9350.0,手续费18.62

2019-07-23,本次操作收益:-77.32

2019-07-31, Buy Create, 19.35

……

2020-06-12,金叉死叉策略10 Ending Value 15724.77

最终资金: 15724.77

回撤指标: AutoOrderedDict([('len', 45), ('drawdown', 7.520719190569519), ('moneydown', 1278.7900000000027), ('max', AutoOrderedDict([('len', 72), ('drawdown', 15.30935358812976), ('moneydown', 1646.7200000000012)]))])

关键的几个集合是:收盘价序列seq_close、收益序列seq_profit、买入信号序列seq_buy、卖出信号序列seq_sell。收集下来后,把seq_close绘制为line;seq_buy和seq_sell为annotate;seq_profit则分成两部分处理,一部分是单次的盈亏用bar表示,另一部分是累积的收益用line表示。

接下来我们展示下效果和操作的方法。

编写策略。在Code_for_strategy.py文件中编写量化策略,编写策略的方法和backtrader一样。写完后要在策略列表接口中定义名称。

点击策略—> 修改策略的N1参数—> 点击保存—> py文件对应更改。如下所示:

点击回测—> 按照最新修改的策略代码执行回测,左侧的表格显示了回测指标数据,这里仅仅提了最终资金、回撤幅度而已,实际上backtrader内置了很多回测指标,都可以扩展到表格中显示。如下所示:

加入知识星球可获取完整代码

更多量化交易内容扫码加入星球!—————————————————元宵大师的量化交易书籍开售!京东、当当、天猫有售!加我QQ或者微信了解详情
微信关注:‘元宵大师带你用Python量化交易’

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值