V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  hdjdjrjjfjdnee  ›  全部回复第 1 页 / 共 1 页
回复总数  5
2022-04-29 16:00:45 +08:00
回复了 hdjdjrjjfjdnee 创建的主题 Python 记录一下:用 pyqt5 画 K 线及信号
我刚试了 画 5000 个 series_, 也还好。。。。不算卡, 买卖信号连线解决了,
下周的问题是: 横坐标目前是 30 个数值, 要改成日期时间
2022-04-29 15:23:16 +08:00
回复了 hdjdjrjjfjdnee 创建的主题 Python 记录一下:用 pyqt5 画 K 线及信号
开平买卖 5000 次, 要写个 5000 个连线, 目前想要不写 5000 个 series_, 不知道卡不卡, 有点不敢试。。。。
正在查 qtchart 有没有 分段的折线 函数
2022-04-29 15:20:10 +08:00
回复了 hdjdjrjjfjdnee 创建的主题 Python 记录一下:用 pyqt5 画 K 线及信号
@ericgui 目前是历史数据, 后续会绑定实盘的实时数据 [估计有点难, 不行就跑路]
2022-04-29 15:19:23 +08:00
回复了 hdjdjrjjfjdnee 创建的主题 Python 记录一下:用 pyqt5 画 K 线及信号
@jones2000 ,h5 不会, 但是感觉 h5 功能控件比较多,但是感觉应该没有 qt 功能强大, 而且我写的是风控模块的部分,后续好扩展
2022-04-29 15:14:58 +08:00
回复了 hdjdjrjjfjdnee 创建的主题 Python 记录一下:用 pyqt5 画 K 线及信号
昨天 v2 上不了,
昨天解决的问题:
数据量上 2w 多跟 K 线的时候超级卡:
1 、series.append(QCandlestickSet(o, h, l, c, ind)) , 导入的 o, h, l, c, ind , 千万不要用 pandas 数据的.iloc 取值,2w 行数据:
o = data.iloc[ind]['o'] 要了 4 秒,
o = data['o'].iloc[ind] 要了 0.47 秒
o = data[ind, 0] 用 numpy 取值只要了 0.0099 秒
2 、第二个图形卡的原因是:
2w 个数据 ,setGridLineVisible 必须设置 False , 不然图像卡死了
chart.axisX().hide() 横坐标最好是隐藏或者设置具体个数在 30 个以内, 不然刷新图形卡死了

自己定义鼠标滚轮事件 wheelEvent , 用来放大缩小图形, 做是做好了, 但是卡死了:因为滚轮每次滚动一下就刷新一次, 但是我们用滚轮滑一下会触发非常多下, 导致 1 秒内会刷新 3 次以上的图形,
1 、解决办法是:找到滚轮结束的时候状态去更新, 这个问题找了一个上午没找到, 放弃了
2 、最后用 setRubberBand , 发现他会跟我现有的鼠标事件 mouseMoveEvent 、mousePressEvent 、mouseReleaseEvent 冲突了。。。。。

昨天的问题:

1 、图都画好了, 卡在了 setRubberBand (橡皮筋控件上),QChartView 这个类没有 RubberBandchange 响应函数,画图选取矩形后 k 线 Y 轴没有跟着曲线变化, 最后曲线扭曲了,于是想从 QGraphicsView 父类自己造个梯子。。。搞了我快一天了, 发现 QGraphicsView 无法叠加在 k 线,放弃了, 最后发现 QChartView 可以自己定义一个自己的 RubberBand , 然后重写鼠标事件就搞定了
self.rb = QRubberBand(QRubberBand.Rectangle, self.chartview) # 橡皮筋控件
2 、十字线及鼠标所在 k 线显示价格信号数据,用 QGraphicsLineItem 这个类定义 2 条直线

现在的问题:
卡在了买卖信号连线。。。已经找了一个上午了。。。。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4285 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 04:09 · PVG 12:09 · LAX 20:09 · JFK 23:09
Developed with CodeLauncher
♥ Do have faith in what you're doing.