天津网站建设技术支持,网站作品,商城网站开发费用一般是多少,广州的互联网公司文章目录 8. plot 绘制金融图8.1 金融分析曲线8.2 多曲线金融指标8.3 Observers 观测子模块8.4 plot 绘图函数的常用参数8.5 买卖点符号和色彩风格 8. plot 绘制金融图
8.1 金融分析曲线
BackTrader内置的plot绘图函数#xff0c; 通过style参数变量控制不同风格的K线图 通过style参数变量控制不同风格的K线图 默认有以下几种风格
line线条图candle蜡烛图标准 K 线图ohlc美式 K 线图和 bar 参数一样barohlc 曲线图美式 K 线图和 ohlc 参数一样。
将style参数设置为bar或者ohlc 生成的图都是一样的。 如果不设置 style 默认是line线条图或者上一次设置参数。下面使用代码生成四种风格的图表文件名称为Plot.py。
line 线条图 candle 图 OHLC 图 Bar 图 在K线图中 每天的图标信息都包含开盘价、 最高价、 最低价和收盘价四组价格数据 但曲线图通常只有收盘价一组价格。 ohlc美式价格曲线也称为美式K线 每天的图标也包含开盘价、 最高价、 最低价和收盘价四组价格数据 这种格式相对比较少见。
8.2 多曲线金融指标
常见的MACD指标及PivotPoint支撑点 指标都是复杂的多曲线金融指标 包含多组指标曲线。
BackTrader支持复杂的多曲线金融指标曲线的绘制 而且绘制模式非常灵活。
8.3 Observers 观测子模块
在BackTrader量化程序中 自定义买卖点符号的修改调用都是在主流程中通过Observers观测子模块完成的 代码如下
bt.observers.BuySell MyBuySellObservers观测子模块类似于传统的Log日志模块或者后台监控模块 主要用于记录后台交易数据及图信息。
8.4 plot 绘图函数的常用参数
下图为 plot 模块关系属性示意图 从图中可以看出plot 模块主要相关模块有LineBuffer、Cerebro、Strategy 等。
在BackTrader的指标模块Indicators和观测模块Observers中内置了一个plotinfo绘图参数变量 用于控制指标和观测数据的绘制 调用模式如下
sma bt.indicators.SimpleMovingAverage(self.data,period15)
sma.plotinfo.plotname mysmaplotinfo变量采用的是dict字典格式 常用内置参数设置如下
plotinfo dict(plotTrue,subplotTrue,plotname,plotskipFalse,plotaboveFalse,plotlinelabelsFalse,plotlinevaluesTrue,plotvaluetagsTrue,plotymargin0.0,plotyhlines[],plotyticks[],plothlines[],plotforceFalse,plotmasterNone,plotylimitedTrue,)通常 SMA均线指标、 vol成交量和主图价格曲线会叠加显示 其他指标如rsi、 kdj等 都采用独立subplot子图模式 在主图下方显示。
8.5 买卖点符号和色彩风格
买卖点符号是可以自定义的案例代码 PlotExt1.py 演示如何自定义买卖点符号主要代码修改有
class MyBuySell(bt.observers.BuySell):plotlines dict(# buydict(marker$\u21E7$, markersize12.0), #arrow# selldict(marker$\u21E9$, markersize12.0)## buydict(marker$$, markersize12.0),# selldict(marker$--$, markersize12.0)#buydict(marker$✔$, markersize12.0),selldict(marker$✘$, markersize12.0),)... ...
bt.observers.BuySell MyBuySell本案例使用对勾符号√ 表示买入 使用叉符号× 表示卖出 同时这两个符号的尺寸也更大一些。在源码中 “√”和“×”符号需要用两个“$”符号表示 并括住符号代码 因为需要使用UTF代码符号。自定义买卖点符号的修改调用 是在主流程中通过BackTrader的 Observers观测子模块完成的:
bt.observers.BuySell MyBuySell下面再看一下对图表颜色的修改。 相对于修改买卖点符号而言 对颜色进行修改更加简单。 在调用plot绘图函数时 可以直接通过参数传递颜色参数
tq10_corUp, tq10_corDown [#7F7F7F, #17BECF] # plotly
tq09_corUp, tq09_corDown [#B61000, #0061B3]
tq08_corUp, tq08_corDown [#FB3320, #020AF0]
tq07_corUp, tq07_corDown [#B0F76D, #E1440F]
tq06_corUp, tq06_corDown [#FF3333, #47D8D8]
tq05_corUp, tq05_corDown [#FB0200, #007E00]
tq04_corUp, tq04_corDown [#18DEF5, #E38323]
tq03_corUp, tq03_corDown [black, blue]
tq02_corUp, tq02_corDown [red, blue]
tq01_corUp, tq01_corDown [red, lime]
#
tq_ksty01 dict(voluptq01_corUp, voldowntq01_corDown, baruptq01_corUp, bardowntq01_corDown
)
tq_ksty02 dict(voluptq02_corUp, voldowntq02_corDown, baruptq02_corUp, bardowntq02_corDown
)
tq_ksty03 dict(voluptq03_corUp, voldowntq03_corDown, baruptq03_corUp, bardowntq03_corDown
)
tq_ksty04 dict(voluptq04_corUp, voldowntq04_corDown, baruptq04_corUp, bardowntq04_corDown
)
tq_ksty05 dict(voluptq05_corUp, voldowntq05_corDown, baruptq05_corUp, bardowntq05_corDown
)
tq_ksty06 dict(voluptq06_corUp, voldowntq06_corDown, baruptq06_corUp, bardowntq06_corDown
)
tq_ksty07 dict(voluptq07_corUp, voldowntq07_corDown, baruptq07_corUp, bardowntq07_corDown
)
tq_ksty08 dict(voluptq08_corUp, voldowntq08_corDown, baruptq08_corUp, bardowntq08_corDown
)
tq_ksty09 dict(voluptq09_corUp, voldowntq09_corDown, baruptq09_corUp, bardowntq09_corDown
)
tq_ksty10 dict(voluptq10_corUp, voldowntq10_corDown, baruptq10_corUp, bardowntq10_corDown
)......
cerebro.plot(stylecandle, **tq_ksty10)程序代码当中的**tq_ksty10变量参数 两个星号“**”变量是Python的特有语法中字典模式的多变量 这有些类似于C语言的“宏定义”.
barup和bardown是箭头符号颜色 volup和voldown是成交量曲线颜色。 up上涨 、 down下跌 表示价格/成交量的变化。 在K线图中有专门的规定 比如 当天的成交量或者价格超过昨天的 则使用up颜色。 在案例中预设了10种不同风格的颜色组合 大家还可以自己修改其他更多的颜色组合 看看不同参数的绘制效果最终显示效果如下所示