量化交易学习(四十)backtrader文档——绘图(3)
今天这篇是backtrader文档的学习笔记。主要介绍了绘图。
官方文档链接:https://www.backtrader.com/docu/plotting/plotting/
控制绘图的方法
在处理指标和观察者时,支持以下方法来进一步控制绘图:
_plotlabel(self)
它应该返回一个列表,以符合标签,这些标签将放置在指标或观察者名称后面的括号之间
RSI指标示例:
1 | def _plotlabel(self): |
可以看出该方法返回:
- 返回一个表示RSI的周期的
int
变量,以及如果默认移动平均线已变化,返回对应的类
在后台,两者都将转换为字符串。对于类,将努力只打印类的名称而不是完整的module.name
组合。
_plotinit(self)
在绘图开始时调用它来执行指标可能需要的任何特定初始化。再用RSI举一个例子:
1 | def _plotinit(self): |
这里,代码给plotyhlines
赋值,以在特定y
值处绘制水平线(hlines
部分)。
参数值upperband
和lowerband
用于此目的,无法提前知道,因为参数可以由最终用户更改
系统范围的绘图选项
首先是cerebro
内的签名:plot
1 | def plot(self, plotter=None, numfigs=1, iplot=True, **kwargs): |
简单介绍下:
plotter
:一个对象/类,属性包含控制系统范围绘图的选项
如果设为None
,则一个默认的PlotScheme
对象(见下文)将被实例化
numfigs
:一个图必须被分成多少个独立图表进行绘制
有时,图表包含太多条形图,如果都在单个图中绘制,则不容易阅读。这会根据要求将其分解为指定份数。
-
iplot
:如果在 Jupyter Notebook 中运行,则自动绘制内联图 -
**kwargs
: 这些参数将用于更改plotter
的属性值,如果没有plotter
传入,则创建默认的PlotScheme
对象。
PlotScheme
类
该对象包含控制系统范围绘图的所有选项。这些选项记录在代码中:
1 | class PlotScheme(object): |
PlotScheme 中的颜色
PlotScheme
类定义了一个可以在子类中重写的方法,该方法返回要使用的下一个颜色:
1 | def color(self, idx) |
idx
是当前正在被绘制在单独子图上的线对象的索引。 例如,MACD
绘制了 3 条线,因此idx
变量将只有以下值:0
、1
和2
。下一个图表(可能是另一个指标)将在0
索引再次开始计数。
backtrader默认使用的配色方案(如上所示)是索引按下面修改的Tableau 10 Color Palette
:
1 | tab10_index = [3, 0, 2, 1, 2, 4, 5, 6, 7, 8, 9] |
通过重写color
方法或将lcolors
变量传递给plot
(或在PlotScheme
的子类中),可以完全更改颜色。
源代码中还包含Tableau 10 Light
和Tableau 20
调色板的定义。
这一篇就到这里啦。欢迎大家点赞、转发、私信。还没有关注我的朋友可以关注 江达小记