vnpy抽离candle_chart4 - 根据配置实现图形的任意组合显示

配置:

plots:
  -
    max_height: 0
    chart_item:
    -
      file_name: ../../data/ochl.txt
      type: Candle
    -
      file_name: ../../data/EMA5.txt
      type: Line
  -
    max_height: 200
    chart_item:
    -
      file_name: ../../data/MACD12.26.9.txt
      type: Macd
  -
    max_height: 100
    chart_item:
    -
      file_name: ../../data/volume.txt
      type: Volume

1 此配置表示plot画图分三个块,最上面的高度最大,中间的高度为200,最下面的高度为100

2 最上面的图形有两个图层组成,第一层为K线,第二层为EMA5线,中间图形显示macd,最下面的显示成交量

3 数据由file_name提供,画图方式由type类型提供,若为Candle表示画K线,Line表示画曲线图,Volue表示画柱状图,Macd表示画macd图

画图效果:

程序实现:

datas = load_data(conf)实现将数据装载进内存, 这是一个嵌套dict的数据结构,第一层嵌套表示有几个plot组成,即整个图形是分为上中下的还是只是上下或是单个plot图,第二层表示各plot图中是由几层ChartItem图表覆盖的,在我们这里配置的第一层plot0是先画CandleItem,再画LineItem。

通过update_all_history_data将数据分发到各实现模块ChartItem中,需要注意的是

self._manager.update_history_data的调用,由于每个plot图形最终需要确定最高是多少,最低是多少,因此需要知道这个图形中所有的ChartItem中的数据,这儿做统一处理。

留白:

其实内部的逻辑还是有不少需要说的,源自vnpy不过原先的代码基本被干的七七八八了,只保留画图的底层实现,数据逻辑也完全改了,因之前的数据结构太死,程序与数据捆成一拓,无法达成根据配置实现图形的组合显示。后面有时间会把这些数据结构讲一下,当然,这是最基本实现,目的是为了看清楚量化算法中那些图形的细节。

最后直接上代码:klinechart: 股票K线图表 - Gitee.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远的麦田

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值