Python股票实时查看告警工具
需求设计
源码地址:https://github.com/programluo/stock_tool
股票实时查看告警工具
需求
每次想看股票的时候都要拿出手机,或者打开股票软件,这个过程一般都比较长,很容易打断连贯的代码思路,并且股票软件都有太多广告信息,诱惑信息,让人忍不住去点,浪费很长时间,同时也杂多的信息,容易让人陷入FOLO的心态,活生生成了韭菜。第二个需要一个告警通知,某某股票到了我设定的告警值,我可以加仓或者斩仓了。
功能
- 查看实时自选股票价格
- 股票阀值告警
实时自选股票价格
终端输入指定命令:stock
显示自选股票信息
name - now - max_today - min_today
中兴 - 32.14 - 33.41 32
标题空格6个
值第二个间隔4个空格,第三个间隔9个空格
标题空格的10-name.length
阀值告警
调用mac系统通知,右上角
解决方案
决定使用Python语言来完成这些功能,原因是python简单,易用,包多,适合做个人语言。
实时自选股票价格
http去请求股票实时接口,解析返回体,在终端格式化输出。并设置自定义命令去执行这个python文件。
采用urllib来做http请求,方式
urllib.request.urlopen("http://xxxxx.com")
配置mac的自定义命令方式,将以下代码放入到~/bash_profile
中
alias stock = 'python3 /Users/marx_luo/xx/stock.py'
股票实时接口调用新浪的http://hq.sinajs.cn/list=sz000063
,解析如下信息
var hq_str_sh601006="大秦铁路, 27.55, 27.25, 26.91, 27.55, 26.20, 26.91, 26.92,
22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89, 14300,
26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150, 26.95, 15220, 26.96, 2008-01-11, 15:05:32";
0:”大秦铁路”,股票名字;
1:”27.55″,今日开盘价;
2:”27.25″,昨日收盘价;
3:”26.91″,当前价格;
4:”27.55″,今日最高价;
5:”26.20″,今日最低价;
6:”26.91″,竞买价,即“买一”报价;
7:”26.92″,竞卖价,即“卖一”报价;
8:”22114263″,成交的股票数,由于股票交易以一百股为基本单位,所以在使用时,通常把该值除以一百;
9:”589824680″,成交金额,单位为“元”,为了一目了然,通常以“万元”为成交金额的单位,所以通常把该值除以一万;
10:”4695″,“买一”申请4695股,即47手;
11:”26.91″,“买一”报价;
12:”57590″,“买二”
13:”26.90″,“买二”
14:”14700″,“买三”
15:”26.89″,“买三”
16:”14300″,“买四”
17:”26.88″,“买四”
18:”15100″,“买五”
19:”26.87″,“买五”
20:”3100″,“卖一”申报3100股,即31手;
21:”26.92″,“卖一”报价
(22, 23), (24, 25), (26,27), (28, 29)分别为“卖二”至“卖四的情况”
30:”2008-01-11″,日期;
31:”15:05:32″,时间;
阀值告警
定时2分钟请求接口,判断是否超过阀值,如果超过,使用pync做系统通知,定时器使用linux自带的
具体实现
实时自选股票
- 编写一个python文件,通过
urllib
调用新浪股票数据接口并解析,规则打印。 - 设置mac命令别名
alias
,stock=python3 /…/stock_show.py
代码
import urllib.requeststockNos = ["sz000063","sh000016"]
stockNames = ["中兴通讯","上证50"]
print("name - now - max_today - min_today")
for ind, stockNo in enumerate(stockNos):response = str(urllib.request.urlopen(f"http://hq.sinajs.cn/list={stockNo}").read())stockData = response.split("\"")[1].split(",")stockName = stockData[0]openPrice = stockData[1]openPriceYesterday = stockData[2]priceNow = stockData[3]priceHighest = stockData[4]priceLowest = stockData[5]print(f"{stockNames[ind]} {priceNow} {priceHighest} {priceLowest}")
当终端输入stock
时,结果打印
MacBook-Pro:stock$ stock
name - now - max_today - min_today
中兴通讯 29.980 30.300 29.500
上证50 2951.9848 2959.5898 2921.2037
系统阀值通知
- 通过
urllib
调用新浪实时接口并获得当前报价,判断报价是否高于/低于警戒值,如果是,调用pync
完成mac系统通知调用。 - 使用mac系统定时任务
crontab
设置告警通知的执行时间。
crontab
设置过程
- 输入
crontab -e
进入设置文本。 - 填写
*/3 9-12,13-15 * * 1-5 /usr/local/bin/python3 /Users/marx_luo/PythonWorkspace/stock/stock_alarm.py
,即周一到周五,上午9点到12点,下午1点到3点,每三分钟执行阀值告警。
代码
import urllib.request
import pyncstocks = [{"code":"sz000063","name":"中兴通讯","min_threshold":"26","max_threshold":"38"},{"code":"sh000016","name":"上证50"}]for ind, stock in enumerate(stocks):response = str(urllib.request.urlopen(f"http://hq.sinajs.cn/list={stock['code']}").read())stockData = response.split("\"")[1].split(",")priceNow = stockData[3]if stock.__contains__('min_threshold') and stock.__contains__('max_threshold'):if stock['min_threshold'] > priceNow:pync.notify(f'{stock["name"]}当前价格{priceNow}', title=f'{stock["name"]}股票已低于设定值{stock["min_threshold"]}')if stock['max_threshold'] < priceNow:pync.notify(f'{stock["name"]}当前价格{priceNow}', title=f'{stock["name"]}股票已高于设定值{stock["max_threshold"]}')
crontab踩坑说明
crontab -e
会生成一个基于当前用户的临时的定时任务文件,重启之后也会存在,重启之后自动执行。
crontab中的命令,必须使用全路径,它是拿不到系统的环境配置的。比如我在.bash_profile中自定义了一个命令,在crontab中是不能执行的。包括python3
也是不能执行的,因为拿不到系统环境,必须使用python3的全路径。
如何找到python3这个执行文件在哪里,通过which查找
which python3
有时候,可能因为crontab的任务写错了,导致没有执行成功,去哪里看日志呢?
crontab会把每次执行错误的情况发到本地邮件,去本地邮件可以查看执行错误原因
mail
打开邮件列表,输入邮件编号就能看到邮件内容。
mail
存在/var/mail/$user
文件下,vim /var/mail/$user
就可以看到所有邮件内容,删除文件就可以清空邮件
Python股票实时查看告警工具相关推荐
- python 股票实时数据接口_获取股票实时数据的接口
记录下获取股票实时数据的接口,记录下. 以基金兴和500018为例 ****************************** 新浪的接口: http://hq.sinajs.cn/list=sh5 ...
- python中实时查看GPU状况 GPUtil
我在Colab中找不到可以直接实时使用watch -n 1 nvidia-smi的地方,所以可以在python中实时输出使用gputil pip install gputil GPUtil.showU ...
- 如何使用python股票实时接口查出股票信息?
如何使用Python查出某只股票的这些信息呢?答案是使用Python的baostock接口,示例代码如下: import baostock as bs import pandas as pd # 登陆 ...
- 安装实时查看日志工具 log.io
官网:http://logio.org/ 一.环境 [root@centos ~]# cat /etc/system-release CentOS release 6.5 (Final) [root@ ...
- 远端服务器日志实时查看工具 Web-tailf
tailf 一个类似linux tail的web版本日志滚动查看工具 码云(https://gitee.com/aqu415/tailf) CSDN(https://blog.csdn.net/Aqu ...
- 浏览器实时查看日志log.io
前言 最近找到了一个可以实时查看日志工具 操作如下 CentOS安装log.io http://logio.org/ log.io是运行在node.js之上的 可通过浏览器访问服务器日志 类似于tai ...
- python爬取股票大单历史记录_python爬取股票实时数据,python爬虫与股票分析
内容导航: Q1:怎么学python爬取财经信息 本程序使用Python 2.7.6编写,扩展了Python自带的HTMLParser,自动根据预设的股票代码列表,从Yahoo Finance抓取列表 ...
- 使用C#编写一个读取和判断股票实时成交数据的小工具
使用vs2019预览版,.net4.5进行编写,定位为一个数据分析的小工具,对个股的每笔成交进行分析判断,目前想到的就这些功能,并且还存在很多问题,不断完善中. 本身不是专业写程序的,只是处于爱好在闲 ...
- 用python读取股票价格_借助Python获取股票实时价格的操作方法
今天和大家分享一下使用Python获取股票实时价格的操作方法. 工具/原料 Python软件 可以联网的电脑 方法/步骤 1 要想获取股票数据,我们需要借助第三方模块.我们首先需要打开开始菜单. 2 ...
最新文章
- C++ string字符串的比较是否相等
- 超声波传感器特性测量:发送与接收传感器之间的差异
- mysql条件填充命令_mysql的简单命令
- 在VS中如保快速查看DLL或exe的已导出的函数
- Duplicate entry ‘211‘ for key ‘PRIMARY‘异常解决
- 信用评分卡—信贷准入A卡(逻辑回归)
- Java路径问题最终解决方案使用演示
- Linux简单命令集——head
- 手机客户端和服务器端通信
- java学习避免死锁
- 部署Ceph分布式高可用集群中篇
- It was in 2006, and as a desktop computer
- 统计学中RR OR AR HR的区别
- 红帽Red Hat Linux镜像下载
- 2021年1月PMP考试改版
- linux多媒体音频架构
- Mat 转 IplImage
- 大屏可视化之适配和布局
- OJ一元二次方程的根*易错点
- Unity URP Reflection