量化交易学习(三十九)backtrader文档——绘图(2)线的绘图选项
今天这篇是backtrader文档的学习笔记。主要介绍了绘图。
官方文档链接:https://www.backtrader.com/docu/plotting/plotting/
线的绘图选项
指标/观察者有线条,这些线条的绘制方式可能会受到plotlines对象的影响。大多数plotlines中指定的选项都是在绘图时直接传递给matplotlib的。
重要提示:这些选项是按行指定的。
一些选项由backtrader直接控制。这些都以下划线 (_) 开头:
-
_plotskip( boolean ) 设置为则True跳过特定线的绘制 -
_plotvalue( boolean ) 控制该行的图例是否包含最后绘制的值(默认为True) -
_plotvaluetag( boolean ) 控制是否绘制带有最后一个值的右侧标签(默认为True) -
_name( string ) 更改特定线的绘图名称 -
_skipnan(bool,默认值:False):在绘图时跳过NaN值,并允许例如在指标生成的 2 个远点之间绘制一条线,其中所有中间值均为NaN(新创建的数据点的默认值) -
_samecolor( boolean )这会强制下一行与前一行具有相同的颜色,从而避免了matplotlib为每个新绘制的元素循环使用颜色图的默认机制 -
_method( string ) 选择matplotlib将为元素使用的绘图方法。如果未指定,则将选择最基本plot的方法。
示例来自MACDHisto。 histo线采用业内惯例用条形图绘制。在MACDHisto的定义中可以找到以下定义:
1 |
|
alpha和width是matplotlib的选项
_fill_gt/_fill_lt
允许在给定行和以下内容之间进行填充:
- 另一条线
- 一个数值
参数是由 2 个元素组成的可迭代对象,其中:
- 第一个参数是一个字符串(参考线的名称)或一个数值
将在自身值和另一行的值或某一数值之间完成填充
-
第二个参数是:
- 具有颜色名称(与matplotlib兼容)或十六进制规范的字符串(请参阅matloplit示例)
或者:
- 一个可迭代对象,其中第一个元素是颜色的字符串/十六进制值,第二个元素是指定 alpha 透明度的数值(默认值:
0.20通过fillalpha参数控制)
例子:
1 | # Fill for myline when above other_line with colour red |
将选项传递给未知行
- 使用
name_X,其中X代表从零开始的索引中的数字。这意味着选项适用于线X
一个来自OscillatorMixIn用例:
1 | plotlines = dict(_0=dict(_name='osc')) |
顾名思义,这是一个混合类,旨在用于多重继承方案(特别是在右侧)。mixin不知道来自其他指标的将成为多重继承一部分的的第一条线(索引从零开始)的实际名称。
这就是为什么选项被指定为_0。子类化发生后,生成的类的第一行将在图中具有名称osc。
一些plotlines的示例
BuySell观察者具有以下plotlines:
1 | plotlines = dict( |
buy和sell线具有直接传递给matplotlib来定义marker、markersize、color和fillstyle的选项。所有这些选项都在matplotlib中定义。
Trades观察者具有以下plotlines:
1 | ... |
这里线的名称已被重新定义,例如pnlplus重新定义为Positive。其余选项适用于matplotlib
DrawDown观察者:
1 | lines = ('drawdown', 'maxdrawdown',) |
这定义了两条线,让最终用户不仅可以访问当前drawdown值,还可以访问其最大值 ( maxdrawdown)。但后者没有被绘制,因为_plotskip=True
BollingerBands指标:
1 | plotlines = dict( |
这里的mid线条将具有虚线样式,并且top和bot线条将具有与mid线条相同的颜色。
Stochastic类(在_StochasticBase中定义并继承):
1 | lines = ('percK', 'percD',) |
较慢的线percD以虚线样式绘制。并且线的名称已更改为包含%符号 (%K和%D),这些符号不能在Python 的名称定义中使用
这一篇就到这里啦。欢迎大家点赞、转发、私信。还没有关注我的朋友可以关注 江达小记
