| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> Python知识库 -> vnpy抽离candle_chart5 - 增加买卖信号 -> 正文阅读 |
|
|
[Python知识库]vnpy抽离candle_chart5 - 增加买卖信号 |
|
1 初步设想买卖信号应该和指标数据不一样,是有买卖才进行记录,没有买卖则不标记。 比如某个时间点发生了买卖,将时间记录下来,然后再记下买卖了几手,同时标记一下是开仓还是平仓。 2 买卖信号应该与K线图叠加,在K线的下方标记一个小三角,箭头向上表示开仓,红色表示做多,绿色表示做空。箭头向下表示平仓。 3 由于上一节我们已经完成了多种图表的叠加,因此买卖信号相当于是买卖图表与K线图表的叠加。 买卖信号的图形是箭头,我们可以画三角形,应该用到函数: painter.drawPolygon(points) 对于向上的箭头: points = QPolygonF([
QPointF(ix, min_value + (max_value-min_value)*0.03),
QPointF(ix - BAR_WIDTH, min_value),
QPointF(ix + BAR_WIDTH, min_value)
])
向下的箭头: points = QPolygonF([
QPointF(ix, min_value),
QPointF(ix - BAR_WIDTH, min_value + (max_value-min_value)*0.03),
QPointF(ix + BAR_WIDTH, min_value + (max_value-min_value)*0.03)
])
对应需要引用的模块: from PySide6.QtCore import QPointF from PySide6.QtGui import QPolygonF 其它的应该与其它的ChartItem类似,我们新建一个类 class ArrowItem(ChartItem)用来实现这个向上的箭头和向下的箭头 至此,画出买卖信号的关键代码就完成了。 在代码完成前还需要注意一点,ArrowItem相比CandleItem或是其他的图表类而言,它里面的数值是不能参与到plot页面大小的设定的,因为里面的数据并不包含对应的股票价格,甚至可能没有一条买卖信号。因此,在get_layout_range中,需要针对这种类型的数据进行屏蔽:
附上ArrowItem的实现代码:
再附上实现的效果图:
?最后贴上gitee的地址:klinechart: 股票K线图表 - Gitee.com |
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年10日历 | -2025/10/26 3:21:56- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |