Tushare股票数据GUI程序

文章目录

Tushare的简单介绍

“Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。”
以上是官网对tushare的介绍。总之它提供了便捷的各类财经数据和新闻等的接口, 通过它可以方便的获得有质量的各类数据。

主要思路

首先通过Tushare pro的日线行情接口,获得单只股票的行情数据,然后利用PyQt5与qtpandas创建展示股票数据的GUI,然后通过mplfinnace绘制k线图。

使用Qt Designer生成基本的用户界面

Qt Designer是PyQt5的内置的UI制作工具,利用它做出基本的UI界面,然后写py文件处理业务逻辑,实现界面与逻辑的分离。Qt designer 中的使用的控件及生成的页面如下:
UI界面
所使用的控件

逻辑文件的实现

生成基本的界面后,在Qt designer中保存为.UI界面,然后使用命令 pyuic5 -o Ui_stock.py Ui_stock.ui将其转换为py文件。然后新建另一个py文件用于处理控件之间signal and slots。翻译成信号与槽,是Qt的核心机制。举个例子,比如上图中的名称为data_get的按钮对象,当我们按下这个按钮时,它会发出一个信号,然后引起另外的反应,一会调用一个通过tushare接口获得数据的函数,这个按钮的点击信号与函数可以通过下面代码实现

self.dataGet.clicked.connect(self.get_data)

一般地

QObject.signal.connect(slot)

其中QObject是某个对象,signal可以是内置信号,也可以是自定义信号,slot代表槽函数,可以是自定义的函数,也可以是PyQt5中的事件处理函数,如鼠标事件,按键事件等。
通过signal and slots机制就可以实现大部分应用。

tushare pro的使用

import tushare as ts
pro = ts.pro('your token')
df = pro.daily(ts_code, start_date, end_date)

通过以上简单的代码就可以获得一只股票的日线行情,包括,开、收盘价、涨跌幅、成交量等,返回的是DataFrame。tushare还有其他各种不同的财经、新闻等数据,可以去官网详细了解。官网链接: tushare数据接口

k线的绘制

利用金融数据可视化包mplfinnace。
从获取的股票数据中提取出OHLC,即开盘价,最高价,最低价,收盘价,并将日期转换为DatatimeIndex,并作为索引。绘图函数如下,

def plot(self):
        df_tem = self.model.dataFrame()
        daily = df_tem.loc[:,['open','high','low','close','vol','trade_date']]
        columns = ['Open', 'High', 'Low', 'Close', 'Volume','trade_date']
        daily.columns = columns
        daily.set_index(pd.to_datetime(daily['trade_date']), inplace=True) # 将索引转换时间序列索引
        daily.sort_index(inplace=True)
        print(daily.head())
        mpf.plot(daily, type='candle')

即将显示’绘图’的按钮通过上面的connect()连接到plot()函数,当按下绘图按钮时,发出信号,然后调用plot()函数绘图。

结果展示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值