vnpy抽离candle_chart2 - 实现line
前面写了 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相关推荐
- vnpy抽离candle_chart3 - 实现图形叠加
vnpy抽离candle_chart2 - 实现line_永远的麦田的博客-CSDN博客 前面chart2中实现了line,这次实现图形叠加,为了方便起见,就把candle和line叠加起来. 通过进 ...
- vnpy抽离candle_chart
前面 vnpy试用candle_chart 弄出了一个K线图形,不过那个不是目的.真正的用意是做一个简单的图表,直接将给定的数据用图表显示出来,因此不能依赖vnpy,这个东西有点复杂,需要单纯化. 方 ...
- vnpy抽离candle_chart5 - 增加买卖信号
1 初步设想买卖信号应该和指标数据不一样,是有买卖才进行记录,没有买卖则不标记. 比如某个时间点发生了买卖,将时间记录下来,然后再记下买卖了几手,同时标记一下是开仓还是平仓. 2 买卖信号应该与K线图 ...
- ubuntu18下vnpy1.9.2的安装
本机环境:ubuntu18,anaconda4.3 之前使用米框的rqalpha进行开发,由于其无法实盘,故想改用vnpy.然后就发现了,安装的时候可有无限的坑.这里整理了完整安装+踩坑流程,之所以记 ...
- ib 盈透数据 matlab,请教下怎样$IB盈透里ES的历史数据
好像ES这个品种不行.我试了试EUR-USD,没有找不到合约的错误,报下面这个日期格式错误. ES这个品种有啥特殊的么? Traceback (most recent call last): File ...
- 英语语法检查工具C++
英语语法检查工具,主要检查英语中语谓一致,如第三人称,非第三人称,情态动词,如:should can may must,和there be等. 用句法分析工具首先词形标注,其实句法分析,结果如:(TO ...
- 【图嵌入】Graph Embedding 方法之 LINE 原理解读
LINE 出自论LINE: Large-scale Information Network Embedding,与 DeepWalk 相比,比较明显的区别在于: DeepWalk 使用的深度优先搜索策 ...
- 研究partner determination的逻辑能否抽出来,以API的形式被我们Odata service implementation code里调用?
研究partner determination的逻辑能否抽出来,以API的形式被我们Odata service implementation code里调用? 研究partner determinat ...
- vnpy怎么创建策略并回测_【手把手教你】入门量化回测最强神器backtrader(一)
1 引言 目前基于Python的量化回测框架有很多,开源框架有zipline.vnpy.pyalgotrader和backtrader等,而量化平台有Quantopian(国外).聚宽.万矿.优矿.米 ...
最新文章
- 2021-2027年中国一体化预制泵站行业研究及前瞻分析报告
- 平头哥发布一站式芯片设计平台“无剑”,芯片设计成本降低50%
- DDD理论学习系列(10)-- 聚合
- 中国大学moocpython笔记_用Python玩转数据,中国大学MOOC(慕课)答案公众号搜题
- LeetCode 1102. 得分最高的路径(优先队列BFS/极大极小化 二分查找)
- bootstrap-suggest插件处理复杂对象时的解决方案
- guid主键 oracle_关于ORACLE的GUID主键生成
- 小米无线网卡linux,NanoPi NEO安装小米随身WiFi
- 51单片机 矩阵键盘
- 误差函数erf matlab,matlab求解erf误差函数方法(有详细注释 )
- 嵌入式软件开发成功的 3 个要素
- 给排水科学与工程和计算机选哪个,2021中国给排水科学与工程专业大学排名 最好的高校排行榜...
- win10找回永久删除文件【图文教程】
- 合法的python赋值语句_关于Python赋值语句,以下选项中合法的是??()。
- 2058:简单计算器
- 为什么人人都爱康师傅
- 个人日记-《疯狂的原始人2》动漫电影观后感-20201130
- 阿里云服务器+腾讯域名进行域名解析
- 图论算法 有图有代码 万字总结 向前辈致敬
- MAT之SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对一元函数优化求解
热门文章
- 多传感器融合定位 第六章 惯性导航结算及误差模型
- HTML5期末大作业:景点介绍网站设计——汉中印象景点介绍 (19页) HTML+CSS+JavaScript 学生旅行 游玩 主题住宿网页
- SW、CATIA等主流三维软件可直接使用航空航天标准的CAD模型
- 前端vue显示柱状图_详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)_旧址_前端开发者...
- 应急管理系统 应急指挥管理系统功能
- 敬刚(/即将)踏入社会#127568;️程序猿!
- 1371D 	 Grid-00100
- 老羊摘编自《罗辑思维跨年演讲》分享1--万物有灵
- NetScaler的部署实验之七NetScaler Gateway的配置以及StoreFront集成NetScaler Gateway的配置更改...
- ListView 和 RecyclerView 的使用