python量化分析库 Backtrader入门之一

Bactrader是python中用来做单机量化分析的一个库,使用该库不用借助量化平台就可以进行股市的量化分析和回测。只要自己已经有股票数据,就可以在自己的机器上进行量化分析,摆脱网络平台的束缚和依赖。

框架的使用

首先理解使用backtrader的过程中大致一下解释2个基本概念。

一、 Line

价格数据(Data Feeds)、技术指标(Indicators)和策略(Strategies)都是 Line

“Line” 是由一系列的点组成的。典型的价格数据,通常由以下类别的数据组成:

  • Open, High, Low, Close, Volume, OpenInterest
    开盘价、最高价、最低价、收盘价、成交量、持仓量

价格数据中的所有”Open” (开盘价)按时间组成一条 Line。所以,一组含有以上6个类别的价格数据,共有6条 Line。

如果我们也算上“DateTime”(时间,可以看作是一组数据的主键),一共有7条 Line。

二、下标0

当访问一条 Line 的数据时,会默认指向下标为 0 的数据。

最后一个数据通过下标 -1 来访问。这也设计是为了符合 Python 的迭代器规则(一条 Line 可以被迭代,因此也是iterable)。

在-1之后是索引0,它用于访问当前时刻。

 假设在创建策略的过程中,在初始化期间创建具有简单移动平均值的策略:

self.sma = SimpleMovingAverage(.....)
访问此移动平均线的当前值的最简单方法:
av = self.sma[0]
在回测过程中,无需知道已经处理了多少条/分钟/天/月,”0”一直指向当前值。

遵循典型的 Python 传统,用下标 -1 来访问最后一个值:
previous_value = self.sma[-1]
当然,当然-2、-3下标也是可以照常使用。