基于python + tushare 的股票盯盘脚本
目录
- 基于python + tushare 实现股票盯盘
- tushare简介
- 设计思路
- 核心代码实现
- 加点细节
- 结束语
基于python + tushare 实现股票盯盘
tushare ID:499871
tushare简介
Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。应一些用户的请求,从0.2.5版本开始,Tushare同时兼容Python 2.x和Python 3.x,对部分代码进行了重构,并优化了一些算法,确保数据获取的高效和稳定。
设计思路
- 输入股票代码
- 调用 tushare 接口获取股票昨日收盘价格、开盘价格、当前价格等数据
- 计算涨跌幅
核心代码实现
通过 tushare 库的 get_realtime_quotes() 接口获取股票实时数据,根据昨日收盘价格和当前价格计算涨跌幅
def startCheck(stock_id):rate = 100while True:stock_info = tushare.get_realtime_quotes(stock_id)current_float_rate = (float(stock_info['price'][0]) - float(stock_info['pre_close'][0])) / float(stock_info['pre_close'][0])current_int_rate = int(current_float_rate*100)if current_int_rate != rate:rate = current_int_ratenotifyWx(stock_id, stock_info)time.sleep(2)else:subject = stock_info['name'][0] + "[" + stock_id + "]"content = "涨幅不明显" + "\n"content = content + "当前涨跌幅:" + str(round(current_float_rate * 100, 2)) + "%"print(subject, "\n", content)time.sleep(10)
加点细节
使用 chinese_calendar 库,判断当前是否处于开盘时间
def isOpenTime():datetime_now = datetime.datetime.now().date()openStatus = 0if is_workday(datetime_now):# 开始时间morning_start_time = datetime.datetime.strptime(str(datetime.datetime.now().date()) + '9:30', '%Y-%m-%d%H:%M')morning_end_time = datetime.datetime.strptime(str(datetime.datetime.now().date()) + '11:30', '%Y-%m-%d%H:%M')afternoon_start_time = datetime.datetime.strptime(str(datetime.datetime.now().date()) + '13:00', '%Y-%m-%d%H:%M')afternoon_end_time = datetime.datetime.strptime(str(datetime.datetime.now().date()) + '15:30', '%Y-%m-%d%H:%M')# 当前时间now_time = datetime.datetime.now()# 判断当前时间是否在范围内if morning_start_time < now_time < morning_end_time or afternoon_start_time < now_time < afternoon_end_time :openStatus = 1return openStatus
配合企业微信应用,做到实时推送通知,具体细节可查看企业微信的文档
def notifyWx(stock_id, stock_info):subject = stock_info['name'][0] + "[" + stock_id + "]"content = ""content = content + "是否开盘:"if isOpenTime():content = content + "是"else:content = content + "否"content = content + "\n" + "昨日收盘价格:" + str(stock_info['pre_close'][0])content = content + "\n" + "开盘价格:" + str(stock_info['open'][0])content = content + "\n" + "当前价格:" + str(stock_info['price'][0])content = content + "\n"current_float_rate = (float(stock_info['price'][0])-float(stock_info['pre_close'][0]))/float(stock_info['pre_close'][0])content = content + "当前涨跌幅:" + str(round(current_float_rate * 100, 2)) + "%"sendTextData(subject, content)
结束语
Tushare运行三年多以来,数据从广度和深度都得到了提升,Pro版正是在此基础上做了更大的改进。数据内容将扩大到包含股票、基金、期货、债券、外汇、行业大数据,同时包括了数字货币行情等区块链数据的全数据品类的金融大数据平台,为各类金融投资和研究人员提供适用的数据和工具。
大家可以注册Tushare Pro账户,获得更丰富的接口支持,学生认证可以免费使用~
链接:https://tushare.pro/register?reg=499871
基于python + tushare 的股票盯盘脚本相关推荐
- 手把手教你写一个基于python+pyqt5的股票盯盘软件
今天教大家基于Python+pyqt5开发一款股票盯盘小软件,里面含有微信推送.策略分析.回测.实时统计持仓盈亏等功能,其实我们也可以把它叫做股票量化小软件.开发这么一款小软件首先得具备Python的 ...
- python 股票盯盘v2.0
python 股票盯盘源码 这里需要填写自己的邮件地址和客户端授权码. #tushare股票价格自动监控 #需求: #1.设置股票的卖出价 #2.买入的价格 #3.程序对价格进行监控 #4.当价格达到 ...
- Python股票盯盘助手
学习股票交易有一段时间了,还未逃脱盯盘的 初级阶段,索性写了一段微信盯盘脚本,将账户信息实时发送到微信助手中 先导入需要的包 import tushare as ts import itchat, t ...
- 用Python做了一个 盯盘机器人,股票价格实时监控,还能邮件通知你!
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 丈夫当为国,破敌如摧山. 前言 P ...
- 基于python的股票程序化交易论文_基于Python工具的股票量化投资策略研究
2019 年第 07 期 20 世 纪 80 年代, 一 些 投 资 者 开 始 利用 计 算 机 研究金 融 数据 , 并 初显 成 效 . 20 世 纪 末 , 投 资 者 把 计 算 机 技术 ...
- 股票盯盘小工具代码梳理
在笔者上一篇文章GUI版本的股票盯盘小工具中,笔者提到了这个小工具如何使用,但没有梳理里面的代码,这次就梳理总结一下它的源码,并根据粉丝的反馈讲一下这个小工具新增的功能.Python源码分为两大部分: ...
- 股票盯盘助手(才152KB),支持悬浮并置顶,支持拖到任务栏,支持更改刷新频率
这里写自定义目录标题 股票盯盘工具(才153KB),非破解版,可以悬浮任意桌面任意位置(包含任务栏) 下载 作品截图 股票盯盘工具(才153KB),非破解版,可以悬浮任意桌面任意位置(包含任务栏) 正 ...
- 左右手桌面股票盯盘软件
一款极简式PC桌面股票盯盘神器,支持A股.美股.港股.外汇.期货等,特别适合上班族.学生族隐蔽式盯盘需求. 版本号:V3.0.0.17678 DesktopStockTracking.exe校验码: ...
- 左右手桌面股票盯盘常见问题解答
各位朋友大家好,左右手桌面股票盯盘小程序自发布以来,经历了多次更新,程序功能也有质的提升.各位朋友在使用过程中,难免有各种问题,在此,我将一些常见的问题进行整理,帮助各位朋友更快的了解本程序的各个功能 ...
最新文章
- jvm虚拟机组成部分讲解、jvm虚拟机参数使用讲解并发编程框架篇
- 开源特训营 - Lesson 6 - 如何提交一个合格的PR
- SpringBoot2.1.9 多数据源Mybatis—JDBC配置
- BugkuCTF-MISC题隐写
- 阿里云服务器Debian11系统安装Linux宝塔面板 搭建WordPress个人博客
- 架构初识之 —— 使用kafka进行商品维度化缓存解决方案
- AudioBufferSourceNode
- 通用easyui查询页面组件
- 【转】outlook 2007 如何设置开机自动启动
- 自增ID有什么坏处?什么样的场景下不使用自增ID?
- UGUI Text组件扩展
- 理解之软件需求说明书
- 数字逻辑电路各种编码
- JavaScript基础教程之flag的用法
- html让video元素居中,CSS实现元素居中的五种方法
- 软件测试:给你一个网站,你如何测试
- Spyder 中 Reloaded modules 错误的解决方法
- jQuery学习笔记(3)之Ajax下
- 字节跳动推出在线医疗App“小荷” 品牌域名或要另辟蹊径?
- JS两个日期之间计算时间差(返回:天数,小时,分钟,秒数)
热门文章
- foreach无法给外部变量赋值(Local variable decimal defined in an enclosing scope must be final or effectively )
- java mvc 实际分层_SpringMVC体系分层模式原理图解
- c# 定位内存快速增长_c#如何避免内存分配瓶颈以提高多线程性能
- windows mobile设置插移动卡没反应_ETC不用时,能不能把卡拔下来
- 7 centos ssh 单机_centos7单机安装kafka
- python一行没写完用什么隔离_在CherryPy中请求隔离是如何工作的。我不明白基本的想法...
- echart 图谱_zrend echart 展示家庭图谱示例代码(类思维导图)
- python之函数内部变量可以直接用name==__main__的变量
- 三维列表转换成数组时,维度却只有二维
- java comparator_Java 中如何指定集合元素的排序策略