Python量化交易学习笔记(3)——第一个策略回测程序v1

上一篇文章已经完成A股日线数据的下载,本文主要记录如何使用下载好的数据,利用回测框架,对策略进行验证。

回测和交易框架有多种选择,可参见链接:https://zhuanlan.zhihu.com/p/26983703。这篇文章还对其他量化“利器”进行了介绍。极宽在这些框架中选择了Backtrader,给出的说明为:“新一代TopQuant(TQ)极宽量化系统,将完全基于backtrader:类似小米与原生安卓的关系,在backtrader系统之上,增加多种本地化,和高效化的辅助工具。TQ极宽优化版,会进行极简化的二次封装,就一个TQ2019.py函数文件,超级简单。”

为了快速上手,体验跑通程序的快感,这里先直接使用Backtrader,借助其Quickstart中所展示的例子(https://www.backtrader.com/docu/quickstart/quickstart/),在A股数据上实现对策略的回测。至于极宽对Backtrader的封装,后面再做研究。

在VSCode中选择新建文件,然后保存到“D:\zwPython\zwrk”目录下,添加代码,开始开发测试。

整个例子比较长,一篇文章写完,笔者头大,读者也头大。因此,后续每篇文章提供一个版本的程序,在前一版本程序上添加一个小功能。

先来看第一版程序v1-基础设置:

from __future__ import (absolute_import, division, print_function,
unicode_literals)
import backtrader as bt
cerebro = bt.Cerebro()
print('Starting Portfolio Value: %.2f' % cerebro.broker.getvalue())
cerebro.run()
print('Final Portfolio Value: %.2f' % cerebro.broker.getvalue())

v1输出为:

Starting Portfolio Value: 10000.00
Final Portfolio Value: 10000.00

在v1中,主要做了以下工作:

  • 引入backtrader
  • 实例化Cerebro引擎(Cerebro西班牙语中大脑的意思)
  • cerebro在数据上循环执行
  • 打印输出结果

v1的代码很简单,但是展示了以下内容:

  • Cerebro引擎在后台创建了一个代理(broker)实例
  • 代理已经手握一笔资金准备进行交易

Backtrader平台总会为用户创建一个代理来进行交易,如果用户没有指定特定代理,平台也会给用户设置一个默认的代理。

为了便于相互交流学习,新建了微信群,感兴趣的读者请加微信。
在这里插入图片描述

你可能感兴趣的:(Python量化交易,python,backtrader,量化交易)