python 股票行情_Python结合钉钉实时自动监控股票行情,上班炒股再也不怕老板发现...

最近全球股市开始回暖,之前清仓的股民现在又陆续开始建仓。股市交易时间,一般也是上班时间,频繁的查看股票软件不仅会影响工作效率,也容易被老板以为工作不饱和。所以,我们就借助python的强大功能,把提前设置好的股票信息推送到「钉钉」上,毕竟钉钉是一个办公软件,老板看见了还会以为你在认真工作。

1、通过接口获取股市实时信息

我们使用的是新浪股市提供的接口,这个接口是这样的:

http://hq.sinajs.cn/list=sz300287

等于号后面的就是我们想要监控的股票代码,如果是上海交易所的股票就是「sh+股票代码」,如果是深圳交易所的股票就是「sz+股票代码」,通过python的requests模块可以获取信息:

import requests

r = requests.get('http://hq.sinajs.cn/list=sz300287')

res = r.text

print(res)

得到的结果是这样的:

var hq_str_sz300287="飞利信,4.320,4.320,4.430,4.470,4.320,4.420,4.430,50815817,

224559304.490,1717400,4.420,374700,4.410,537700,4.400,110400,4.390,258800,

4.380,176600,4.430,364100,4.440,344900,4.450,198600,

4.460,360547,4.470,2020-04-30,15:00:03,00";

上面这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,我们按照顺序号从0开始,看一下各个字符串的意义:

0:”飞利信”,股票名字;

1:”4.320″,今日开盘价;

2:”4.320″,昨日收盘价;

3:”4.430″,当前价格;

4:”4.470″,今日最高价;

5:”4.320″,今日最低价;

6:”4.420″,竞买价,即“买一”报价;

7:”4.430″,竞卖价,即“卖一”报价;

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:”2020-04-30″,日期;

31:”15:05:32″,时间;

这样我们就拿到了所需股票的实时信息。

2、计算股票涨跌幅,并判断是否需要报警

我们假设,当股票涨幅或者跌幅超过 3% 的时候才触发报警,毕竟对于价值投资者来说,微小的波动不足以引起重视。那么我们首先要算一下,今天的涨跌幅,如果超过了设定值,就引发报警:

r = requests.get('http://hq.sinajs.cn/list=sz300287')

res = r.text

result = res.split('=')[1] # 截取等号之后的数据部分

name = result.split(',')[0].replace('"', '') # 股票名称

start_price = float(result.split(',')[2]) # 昨日收盘价

now_price = float(result.split(',')[3]) # 当前价格

rate = (now_price-start_price)/start_price * 100 # 涨跌幅度

if abs(rate) > 0.02:

content = "股票报警:当前股票「{0}」, 涨幅「{1:.2f}%」, 请注意!".format(name, rate)

print(content)

看一下打印的结果:

现在结果已经出来了,下一步就要发送到钉钉了。

3、配置钉钉接口,发送报警信息

首先,给钉钉群添加机器人,报警信息就是由机器人发送:

设置机器人名称和报警内容关键词:

获得机器人接口,之后我们把上一步获得的报警信息,通过这个接口发送出去:

if abs(rate) > 0.02:

content = "股票报警:当前股票「{0}」, 涨幅「{1:.2f}%」, 请注意!".format(name, rate)

print(content)

json_data = {

"msgtype": "text",

"text": {

"content": content, # 发送内容

},

"at": {

"atMobiles": [

],

"isAtAll": False # 是否要@某位用户

}

}

ding_url = 'https://oapi.dingtalk.com/robot/send?access_token=' \

'dfb241394310aeb3a94d32f1b359b7382429f4b435f9f0eb605979f50b21e857'

requests.post(url=ding_url, json=json_data)

print('报警信息发送成功。')

最终发送完成:

以上就是使用python发送报警信息的流程,代码还有很多可以定制的地方,比如说:多久监控一次、涨幅超过多少会报警、报警是否要”@“ 某位用户等等。之后我会把代码放到服务器上,有需要的朋友可以在评论区说一下你想监控哪只股票。

欢迎关注「趣谈数据分析」微信公号号,学习更多数据分析内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值