BackTrader 中文文档 — 软件快速开始
框架的使用
让我们通过一系列的例子(从几乎什么都没有到完全成熟的策略),在使用backtrader的过程中大致一下解释2个基本概念。
本人录制的教学视频,请大家多多指教,跟着实际上手学习一遍更有效果 《从编程小白到量化宗师之路C02—BackTrader基础》https://edu.csdn.net/course/detail/24721
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,它用于访问当前时刻。
假设在创建策略的过程中,在初始化期间创建具有简单移动平均值的策略:
访问此移动平均线的当前值的最简单方法:
在回测过程中,无需知道已经处理了多少条/分钟/天/月,”0”一直指向当前值。
遵循典型的 Python 传统,用下标 -1 来访问最后一个值:
当然,当然-2、-3下标也是可以照常使用。
从 0 到 100: 示例
基本步骤
让我们继续
执行后输出为:
在这个例子中:
-
引入了 backtrader
- 实例化了Cerebro引擎
- 调用 了cerebro 实例的 run 方法(里面会遍历数据)
- 输出了运行结果
虽然看起来不多,但让我们指出明确显示的内容:
-
Cerebro引擎在后台创建了一个Broker (代理)实例
- 该Broker实例开始会有一些现金
引入 broker 经纪人的概念,可以简化用户的理解和使用。 如果用户未设置代理,则会设置默认的代理。
默认情况线,系统提供了1万块钱来开始交易。
设置起始现金
在金融领域,肯定只有“loser”(失败者)才从1万开始。 让我们多投点钱再次运行这个示例。
执行完毕,结果变成:
任务完成。 让我们来杯咖啡。
加载价格数据
拥有现金很有趣,但所有这一切背后的目的是让一个自动化策略通过操作我们视为数据源的资产来增加现金,
…没有数据流 – >没有乐趣。让我们给程序喂点数据。
执行完后的输出是:
- 加载我们的示例脚本里面价格数据文件的位置,
-
使用datetime来过滤价格数据 的起止范围
第一个策略
钱已经给了 broker (经纪人),价格数据 也已经载入了。万事俱备。
让我们给策略加点代码,让他打印出每天的”收盘价”。
DataSeries (K线类的父类) 能够直接访问到 OHLC (开盘价、最高价、最低价、收盘价) 数据。这使我们打印数据很方便。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!