前面写了  vnpy抽离candle_chart_永远的麦田的博客-CSDN博客

基本完成了脱离vnpy形成K线图,存在几个问题:

1、使用的vnpy的数据结构,这一点没啥不好,主要是灵活度太低

2、只有K线和成交量,弄这个主要想将算法图呈现出来,类型缺少

3、增加一个plot做成三格而不是两格时发现其中无法做成,细查是由于数据结构是dict引发,把item与plot互相完全绑死。

4、指标如何叠加,这一点看起来没有实现,看到有个人写了相应方法,贴了图一堆人要但没有对应的代码

由于目标就是算法图形化,因此上面的问题解决了和我要的东西就基本接近了:

1.一组数据显示一个图形,如果增加了一组数据,直接增加对应的图形就好了

2.不同的数据根据其类型显示成不同的形状,K线,线型,柱状图

3.不同类型的图可以叠加,就像在不同图层上画图一样,可以一层一层叠罗汉

4.数据结构松散化,没有就不画,数据通过外层类型控制,相同的数据表示类型是K线,则画K线,如果表示类型是柱状,则生成柱状,如果是线型,则生成曲线

由于当前的数据结构绑死在一起,一轮大的改动不太现实,先实现一个极小的功能,线形

方法很简单klinechart.klinechart.chart.item.py中有实现的candle和volume的功能,仿照volume的实现即可,另外由于曲线的话肯定是从前一个画到后一个,所以这儿

_draw_bar_picture函数

原先是画的每一个item,现在得有所改变,每次画的时候需要知道前一个item,方法也很简单,直接增加一个参数

def _draw_bar_picture(self, ix: int, old_bar: BarData, bar: BarData) -> QtGui.QPicture:

所有用到这个函数的一起改了

然后在

_draw_item_picture

增加相应代码:

附上LineItem的实现代码:


class LineItem(ChartItem):"""线图"""def __init__(self, manager: BarManager):""""""super().__init__(manager)def _draw_bar_picture(self, ix: int, old_bar: BarData, bar: BarData) -> QtGui.QPicture:""""""# Create objectsline_picture = QtGui.QPicture()painter = QtGui.QPainter(line_picture)line = QtCore.QLine(ix-1, old_bar.close_price, ix, bar.close_price)painter.drawLine(line)# Finishpainter.end()return line_picturedef boundingRect(self) -> QtCore.QRectF:""""""min_price, max_price = self._manager.get_price_range()rect = QtCore.QRectF(0,min_price,len(self._bar_picutures),max_price - min_price)return rectdef get_y_range(self, min_ix: int = None, max_ix: int = None) -> Tuple[float, float]:"""Get range of y-axis with given x-axis range.If min_ix and max_ix not specified, then return range with whole data set."""min_price, max_price = self._manager.get_price_range(min_ix, max_ix)return min_price, max_pricedef get_info_text(self, ix: int) -> str:"""Get information text to show by cursor."""bar = self._manager.get_bar(ix)if bar:text = f"Volume {bar.volume}"else:text = ""return text

然后贴出main中相应代码的修改:

最后展示效果图:

图很粗糙,不过意思图已经达到,至于加粗或是换色后面可以进一步细化

最后还是附上gitee上的工程:klinechart: 股票K线图表 - Gitee.com

vnpy抽离candle_chart2 - 实现line相关推荐

  1. vnpy抽离candle_chart3 - 实现图形叠加

    vnpy抽离candle_chart2 - 实现line_永远的麦田的博客-CSDN博客 前面chart2中实现了line,这次实现图形叠加,为了方便起见,就把candle和line叠加起来. 通过进 ...

  2. vnpy抽离candle_chart

    前面 vnpy试用candle_chart 弄出了一个K线图形,不过那个不是目的.真正的用意是做一个简单的图表,直接将给定的数据用图表显示出来,因此不能依赖vnpy,这个东西有点复杂,需要单纯化. 方 ...

  3. vnpy抽离candle_chart5 - 增加买卖信号

    1 初步设想买卖信号应该和指标数据不一样,是有买卖才进行记录,没有买卖则不标记. 比如某个时间点发生了买卖,将时间记录下来,然后再记下买卖了几手,同时标记一下是开仓还是平仓. 2 买卖信号应该与K线图 ...

  4. ubuntu18下vnpy1.9.2的安装

    本机环境:ubuntu18,anaconda4.3 之前使用米框的rqalpha进行开发,由于其无法实盘,故想改用vnpy.然后就发现了,安装的时候可有无限的坑.这里整理了完整安装+踩坑流程,之所以记 ...

  5. ib 盈透数据 matlab,请教下怎样$IB盈透里ES的历史数据

    好像ES这个品种不行.我试了试EUR-USD,没有找不到合约的错误,报下面这个日期格式错误. ES这个品种有啥特殊的么? Traceback (most recent call last): File ...

  6. 英语语法检查工具C++

    英语语法检查工具,主要检查英语中语谓一致,如第三人称,非第三人称,情态动词,如:should can may must,和there be等. 用句法分析工具首先词形标注,其实句法分析,结果如:(TO ...

  7. 【图嵌入】Graph Embedding 方法之 LINE 原理解读

    LINE 出自论LINE: Large-scale Information Network Embedding,与 DeepWalk 相比,比较明显的区别在于: DeepWalk 使用的深度优先搜索策 ...

  8. 研究partner determination的逻辑能否抽出来,以API的形式被我们Odata service implementation code里调用?

    研究partner determination的逻辑能否抽出来,以API的形式被我们Odata service implementation code里调用? 研究partner determinat ...

  9. vnpy怎么创建策略并回测_【手把手教你】入门量化回测最强神器backtrader(一)

    1 引言 目前基于Python的量化回测框架有很多,开源框架有zipline.vnpy.pyalgotrader和backtrader等,而量化平台有Quantopian(国外).聚宽.万矿.优矿.米 ...

最新文章

  1. 2021-2027年中国一体化预制泵站行业研究及前瞻分析报告
  2. 平头哥发布一站式芯片设计平台“无剑”,芯片设计成本降低50%
  3. DDD理论学习系列(10)-- 聚合
  4. 中国大学moocpython笔记_用Python玩转数据,中国大学MOOC(慕课)答案公众号搜题
  5. LeetCode 1102. 得分最高的路径(优先队列BFS/极大极小化 二分查找)
  6. bootstrap-suggest插件处理复杂对象时的解决方案
  7. guid主键 oracle_关于ORACLE的GUID主键生成
  8. 小米无线网卡linux,NanoPi NEO安装小米随身WiFi
  9. 51单片机 矩阵键盘
  10. 误差函数erf matlab,matlab求解erf误差函数方法(有详细注释 )
  11. 嵌入式软件开发成功的 3 个要素
  12. 给排水科学与工程和计算机选哪个,2021中国给排水科学与工程专业大学排名 最好的高校排行榜...
  13. win10找回永久删除文件【图文教程】
  14. 合法的python赋值语句_关于Python赋值语句,以下选项中合法的是??()。
  15. 2058:简单计算器
  16. 为什么人人都爱康师傅
  17. 个人日记-《疯狂的原始人2》动漫电影观后感-20201130
  18. 阿里云服务器+腾讯域名进行域名解析
  19. 图论算法 有图有代码 万字总结 向前辈致敬
  20. MAT之SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对一元函数优化求解

热门文章

  1. 多传感器融合定位 第六章 惯性导航结算及误差模型
  2. HTML5期末大作业:景点介绍网站设计——汉中印象景点介绍 (19页) HTML+CSS+JavaScript 学生旅行 游玩 主题住宿网页
  3. SW、CATIA等主流三维软件可直接使用航空航天标准的CAD模型
  4. 前端vue显示柱状图_详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)_旧址_前端开发者...
  5. 应急管理系统 应急指挥管理系统功能
  6. 敬刚(/即将)踏入社会#127568;️程序猿!
  7. 1371D Grid-00100
  8. 老羊摘编自《罗辑思维跨年演讲》分享1--万物有灵
  9. NetScaler的部署实验之七NetScaler Gateway的配置以及StoreFront集成NetScaler Gateway的配置更改...
  10. ListView 和 RecyclerView 的使用