python股票交易接口实现股票分时图K线图及抓取level2行情的开发程序分析
大家对股票交易接口并不陌生,那么要想获取股票数据获取,也是可以通过python股票交易接口实现股票分时图K线图及抓取level2行情的开发程序分析如下:
import sys
from PyQt5 import QtCore, QtGui
from PyQt5.QtWidgets import QWidget, QApplication,QMainWindow
from Public.RequestUtils import StocksRequest
# 绘制行情类
class 分时画图工具类(QWidget):
# 设置grid的上下左右补丁边距
左侧补丁边距 = 45
右侧补丁边距 = 245
顶部补丁边距 = 25
底部补丁边距 = 17
总宽 = 左侧补丁边距 + 右侧补丁边距
总高 = 顶部补丁边距 + 底部补丁边距
主窗宽 = 0
表格高度 = 0
表格宽度 = 0
def __init__(self, parent):
# 初始化
super(分时画图工具类, self).__init__()
self.parent = parent
self.paint = QtGui.QPainter()
# 度量尺对象
self.metrics = self.paint.fontMetrics()
# 设置字体库
self.字体库 = dict()
self.字体库['默认字体'] = QtGui.QFont('Serif', 9, QtGui.QFont.Light)
self.字体库['雅黑加粗字体'] = QtGui.QFont('Serif', 12, QtGui.QFont.Bold)
self.字体库['雅黑字体'] = QtGui.QFont('Serif', 12, QtGui.QFont.Light)
self.设置当前字体('默认字体')
# 设置笔刷样式库
self.笔刷样式库 = dict()
# 红色 1px粗 1px点 2px距 线条
self.笔刷样式库['红色1px虚线'] = QtGui.QPen(QtCore.Qt.red, 1, QtCore.Qt.DashLine)
self.笔刷样式库['红色1px虚线'].setDashPattern([1, 2])
self.笔刷样式库['红色1px线'] = QtGui.QPen(QtCore.Qt.red, 1, QtCore.Qt.SolidLine)
self.笔刷样式库['红色2px线'] = QtGui.QPen(QtCore.Qt.red, 2, QtCore.Qt.SolidLine)
self.笔刷样式库['红色3px线'] = QtGui.QPen(QtCore.Qt.red, 3, QtCore.Qt.SolidLine)
self.笔刷样式库['黄色1px线'] = QtGui.QPen(QtCore.Qt.yellow, 1, QtCore.Qt.SolidLine)
self.笔刷样式库['白色1px线'] = QtGui.QPen(QtCore.Qt.white, 1, QtCore.Qt.SolidLine)
self.笔刷样式库['灰色1px线'] = QtGui.QPen(QtCore.Qt.gray, 1, QtCore.Qt.SolidLine)
self.笔刷样式库['绿色1px线'] = QtGui.QPen(QtCore.Qt.green, 1, QtCore.Qt.SolidLine)
self.笔刷样式库['绿色2px线'] = QtGui.QPen(QtCore.Qt.green, 2, QtCore.Qt.SolidLine)
self.笔刷样式库['亮蓝1px虚线'] = QtGui.QPen(QtCore.Qt.cyan, 1, QtCore.Qt.DashLine)
self.笔刷样式库['亮蓝1px虚线'].setDashPattern([3, 2])
def 开始绘制(self):
self.绘制表格()
self.绘制左右侧的价格刻度()
self.绘制时间轴刻度()
self.绘制表格上方的股票信息()
self.绘制股价走势()
self.绘制成交量走势表格()
self.绘制成交量()
self.绘制盘口()
def redraw(self):
self.repaint()
def paintEvent(self, event):
# 获得窗口的长和宽
主窗口大小 = self.parent.size()
self.主窗宽 = 主窗口大小.width()
self.主窗高 = 主窗口大小.height()
self.表格高度 = self.主窗高 - self.顶部补丁边距
self.表格宽度 = self.主窗宽 - self.总宽 - 2
self.paint.begin(self)
self.开始绘制()
self.paint.end() # 结束
def 设置当前字体(self, code='默认字体'):
self.paint.setFont(self.字体库[code])
'''设置使用的笔刷'''
def 设置当前笔刷(self, code='default'):
self.paint.setPen(self.笔刷样式库[code])
def 绘制表格(self):
self.设置当前笔刷('红色1px线')
self.paint.setBrush(QtCore.Qt.NoBrush)
# 画分主边框
self.paint.drawRect(0, 0,self.主窗宽 - 1,self.主窗高-1)
self.paint.drawRect(self.左侧补丁边距, self.顶部补丁边距,self.主窗宽 - self.总宽, self.主窗高 )
# 成交量和走势的分界线(成交量和走势三七割)
self.paint.drawLine(self.左侧补丁边距, self.表格高度 * 0.7 + self.顶部补丁边距,self.主窗宽 - self.右侧补丁边距, self.表格高度 * 0.7 + self.顶部补丁边距)
self.paint.drawLine(self.左侧补丁边距, self.表格高度 * 0.7 + self.顶部补丁边距+self.底部补丁边距, self.主窗宽 - self.右侧补丁边距,self.表格高度 * 0.7+ self.顶部补丁边距+self.底部补丁边距)
# 股票昨收中间线走势
self.paint.drawLine(self.左侧补丁边距 + 1, self.表格高度 * 0.35 + self.顶部补丁边距,self.主窗宽 - self.右侧补丁边距, self.表格高度 * 0.35 + self.顶部补丁边距)
# 其他线条
#self.paint.drawLine(0, self.主窗高 - self.底部补丁边距, self.主窗宽 - self.右侧补丁边距 + 44,self.主窗高 - self.底部补丁边距)
#self.paint.drawLine(0, self.主窗高 - self.底部补丁边距 + 16, self.主窗宽, self.主窗高 - self.底部补丁边距 + 16)
self.paint.drawLine(self.主窗宽 - self.右侧补丁边距 + 44, 0,self.主窗宽 - self.右侧补丁边距 + 44, self.主窗高 - self.底部补丁边距 + 16)
def 绘制表格上方的股票信息(self):
self.设置当前笔刷('黄色1px线')
self.paint.drawText(4 + self.左侧补丁边距, self.顶部补丁边距 - 4, str(self.parent.股票数据['股票名称'])) # 股票名称
self.paint.drawText(4 + self.左侧补丁边距 + 140, self.顶部补丁边距 - 4 , str('均价线:')) # 均价线
上一个交易日收盘价 = self.parent.股票数据['上一个交易日收盘价']
今收 = self.parent.股票数据['当前价']
均价 = self.parent.股票数据['分时数据']['均价'][-1]
if 上一个交易日收盘价 > 今收:
self.设置当前笔刷('绿色1px线')
str_1 = '%.2f -%.2f' % (今收, 上一个交易日收盘价 - 今收)
if 上一个交易日收盘价 == 今收:
self.设置当前笔刷('白色1px线')
str_1 = '%.2f +%.2f' % (今收, 0.00)
if 上一个交易日收盘价 < 今收:
self.设置当前笔刷('红色1px虚线')
str_1 = '%.2f +%.2f' % (今收, 今收 - 上一个交易日收盘价)
self.paint.drawText(4 + self.左侧补丁边距 + 60, self.顶部补丁边距 - 4, str(str_1))
self.paint.drawText(4 + self.左侧补丁边距 + 185, self.顶部补丁边距 - 4, str('%.2f' % 均价)) #
# 涨停价
self.设置当前笔刷('红色1px虚线')
self.paint.drawText(4 + self.左侧补丁边距 + 230, self.顶部补丁边距 - 4,
str('涨停价:%.2f' % (self.parent.股票数据['涨停价']))) # 均价
# 跌停价
self.设置当前笔刷('绿色1px线')
self.paint.drawText(4 + self.左侧补丁边距 + 310, self.顶部补丁边距 - 4,
str('跌停价:%.2f' % (self.parent.股票数据['跌停价']))) # 均价
def 绘制成交量走势表格(self):
当日最高成交量 = self.parent.股票数据['当前最高成交量']
间隔偏移 = 当日最高成交量 / (self.表格高度 * 0.3)
self.设置当前笔刷('红色1px线')
grid_num = 6
x = grid_num
cnt = self.表格高度 * 0.3 / grid_num
for i in range(1, grid_num):
self.设置当前笔刷('红色1px虚线')
# 计算坐标
y1 = self.顶部补丁边距 + (self.表格高度 * 0.7) + i * cnt
x1 = self.左侧补丁边距
x2 = self.左侧补丁边距 + self.主窗宽 - self.总宽
self.paint.drawLine(x1, y1, x2, y1) # 画价位虚线
vol_int = int(cnt * x * 间隔偏移)
vol_str = str(vol_int)
fw = self.metrics.width(vol_str) # 获得文字宽度
fh = self.metrics.height() /
python股票交易接口实现股票分时图K线图及抓取level2行情的开发程序分析相关推荐
- 简单的股票交易接口易语言怎么获取K线图?
像平时交易大家看到的股票数据图就是经常用K线图来获取股票数据,接下来股票交易接口易语言也可以很快的获取K线图,给大家举个例子,比如按照下图输入: 返回的结果就是周K线图字节数组: R0lGODlhIQ ...
- 用AnyStock和LightningChart打造炫酷的制作股票、金融业K线图工具产品
近年来资本市场风起云涌,如何通过数字化.图形化手段分析金融产品是一个将经验工具化的手段,那么今天我们来聊一聊如何打造一款图形化金融工具--股票交易图(K线图). 最近小编在多个开发控件产品群看到有一群 ...
- 一步一步教你写股票走势图——K线图二(图表联动)
目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...
- 一步一步教你写股票走势图——K线图四(高亮联动一)
目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...
- 股票图,K线图,蜡烛图,高仿雪球股票
股票图,K线图,蜡烛图,高仿雪球股票,教你一步步实现股票图 项目地址 讲K线图之前,先来一个引言. 作为Android开发者需要立即提升的三项技能: 分别是:UI,网络,线程,而UI又分:布局,绘制, ...
- 一步一步教你写股票走势图——K线图三(添加均线)
目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...
- 一步一步教你写股票走势图——K线图五(高亮联动二)
目录 一步一步教你写股票走势图--分时图一(概述) 一步一步教你写股票走势图--分时图二(自定义xy轴) 一步一步教你写股票走势图--分时图三(对齐图表.自定义柱状图高亮) 一步一步教你写股票走势图- ...
- 一步步教你画股票图,K线图,高仿雪球股票
股票图,K线图,蜡烛图,高仿雪球股票,教你一步步实现股票图 项目地址 _005.gif _006.gif 讲K线图之前,先来一个引言. 前两天听了朱凯大神的知乎live,其中说到一点,作为Androi ...
- StockChart Android股票图/K线图开发库
项目地址:GitHub 一.介绍 StockChart 一款适用于Android的高扩展性.高性能股票图/K线图开发库,支持多图组合,除了使用内置子图还支持定制子图满足复杂的业务需求. 特点 内置子图 ...
最新文章
- Please do not register multiple Pages in pages/buildhelp/buildhelp.js
- module 'thread' has no attribute
- HDU 1556 前缀和 树状数组 线段树
- WindowsPhone 7.8 Tiles 1 : WideTile
- 全国计算机技术与软件专业技术资格(水平)考试徽标
- java单例模式的七种写法_Java设计模式之单例模式的七种写法
- C#中增量类功能的方式之 继承与扩展
- mysql十万条数据_2秒内向数据库中插入十万条数据?
- Java 线程详解(一)线程的基础
- 金三银四大厂面经总结,淘汰了80%的Java面试者
- Error creating bean with name 解决办法
- 【SRM-07 D】天才麻将少女KPM
- Group By和Order By的总结
- 淘宝/天猫API接口,item_sku - 淘宝商品SKU详细信息查询,淘宝/天猫获取sku详细信息 API 返回值说明
- 不撞南墙不回头——浅谈深度优先搜索(DFS)
- 织梦5.7登陆注册实现
- 【Linux网络编程】域名转IP后的一些深层(计算机底层)的思考
- 爬取网易云某歌曲所有评论,并输出词云图
- MX25上SD卡的插拨检测机制
- DNS_PROBE_FINISHED_NXDOMAIN完美解决办法
热门文章
- Mac、Xcode、模拟器等常用快捷键汇总
- OpenDaylight安装
- python 粒子动画_python-pygame-粒子效果
- Python Turtle 绘制勾股树
- 纯Java+eclipse+Asix2+Tomcat8+SQLite (搭建本地服务器)
- SAP S4 HANA 信贷管理之共享信贷如何配置
- 干货 | 专利怎么检索?手把手教授指南来了
- 浅析 Linux 系统调用
- 兼阅万分享:互联网新人必看,让你少走弯路
- http://www.cnblogs.com/procoder/