Python量化投资——mplfinance最佳实践:动态交互式高级K线图(蜡烛图)【源码+详解】

用mplfinance实现全功能动态交互式K线图

  • 手把手用`python`+mplfinance实现高级K线图
    • ` mplfinance`的基本K线图
    • 目标
    • 实现自定义风格和颜色
    • 图表尺寸调整、相关信息的显示
    • 添加完整移动平均线
    • 添加指标MACD
    • 实现鼠标拖动平移交互功能
    • 实现鼠标滚轮缩放
    • 实现双击切换指标
    • 使用键盘方向键平移缩放K线图及切换指标
      • 这一段代码感谢 @szFoxtech 的贡献!
    • 完整代码

手把手用+mplfinance实现高级K线图

特别鸣谢:@szFoxtech 同学热心提供了通过键盘操作平移和缩放K线图的代码!!

的基本K线图

在我的另一篇文章《七行代码利用tushare和mplfinance生成K线图》中,我介绍了两个非常好用的python库,结合起来可以非常方便容易地生成股票的K线图,对于使用python进行量化投资研究的朋友可谓是必备良方。如下图所示,仅仅几行代码,就能生成下面这张K线图:

Python量化投资——mplfinance最佳实践:动态交互式高级K线图(蜡烛图)【源码+详解】

下面,我们就一步步地实现并扩充基本的K线图,使它成为一个具备基本实用性的股票价格可视化工具,成为一个真正的动态可交互K线蜡烛图。

目标

在开始实际工作之前,需要确定我们需要达到的目标,以便一步步实现:

  • 符合中国习惯的配色风格——红涨绿跌自然是必须实现的第一步
  • 图表上要能显示股票代码和股票名称、以及价格信息
  • 图表上要显示完整的移动平均线
  • 在交易量的下方显示第三张图表,同步显示相关指标如MACD等
  • 在图表上用鼠标单击拖动,可以平移K线图以显示更早或更晚的K线
  • 在图表上是用鼠标滚轮缩放,可以实现放大或缩小所显示的K线的范围
  • 在图表上双击,可以循环切换移动平均线和布林带线
  • 在指标图上双击,可以循环切换不同的指标类型如MACD/DEMA/RSI等等

下面我们就来一一实现上面的功能,随着本文的逐步完善,已经实现的功能会打上勾,如果朋友们有新的想法,也可以给我留言,我会把有价值的点子添加进来,逐步尝试实现。

为了简单起见,我们使用提前准备好的K线数据,包含OHLC、交易量、移动平均价格以及MACD指标数据,需要的朋友可以在这里下载

实现自定义风格和颜色

这肯定是上面的所有功能中最容易实现的一个。提供了两个相关的函数: 以及。示例如下:

在函数中,几个不同的参数主要用于设置K线的颜色, 和都很明显,用于分别指定上涨K线和下跌K线的颜色。因此根据国内习惯自然应该设置也就是red红色,自然就是也就是绿色。不过需要注意的是这里仅仅设置K线的柱子的内部填充色,如果不指定边框、上下影线的颜色,他们都会是黑色,显示的效果就是黑色的边框、黑色的上下影线,挺难看的,因此还需要设置边框的颜色。此处设置为或代表“使用主配色“。也就是说,阳线(上涨)的柱子外框线跟阳线的内部填充色一致,那么如果阳线的颜色为红色,边框的颜色也是红色,如果阳线是绿色,则边框也是绿色。阴线也一样。
设置的就是上下影线的颜色,这里为了显眼,同样设置为。
类似的,设置的是交易量柱子的颜色,也设置为就可以了。

有朋友可能想问,如果我不喜欢标准的红绿色配色,觉得太鲜艳了,想改成自定义的RGB配色可不可以,当然可以,不过需要注意的是,在标准的中,可以传入一个元组表示RGB配色,例如然而不能直接传递元组作为颜色代码,但可以接受一个表示元组的字符串,如上面代码中的。

make_mpf_style()函数接受上面的参数,将所有的配置都存储在一个字典中,然后使用mpf的基本绘图方法,就可以生成一张符合中国股市习惯的K线图了:

Python量化投资——mplfinance最佳实践:动态交互式高级K线图(蜡烛图)【源码+详解】

在模式下,由于我们手动创建了几个对象(这也就是的由来),调用函数,注意调用的方式跟上一节不同,这里需要指定,将K线图显示在中,交易量显示在中。
通过运行上面的代码得到下面的图表:

Python量化投资——mplfinance最佳实践:动态交互式高级K线图(蜡烛图)【源码+详解】
可以看到,图表的格式和数量都正确了,三个

来源:Shepherdppz

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月12日
下一篇 2022年9月13日

相关推荐