量化交易学习(三十九)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 的名称定义中使用
这一篇就到这里啦。欢迎大家点赞、转发、私信。还没有关注我的朋友可以关注 江达小记