股票监控系统update 3.1版本

# 3.1版:更改了获取数据的url,精简了代码
# 可根据需要自行增加股票池,可针对不同股票池设置对应警报范围进行监控
# 股票监控报警系统-for Tencent
# 可设置股票池监控多支股票,可根据涨幅范围自动报警

import requests
from bs4 import BeautifulSoup
import win32api,win32con
import re
import time
import sys

class stock:
    def star(self):
        # 无限循环监控,直到警报拉起
        while True:
            ID = [id_0, id_1,id_2,id_3]
            message = []
            show=[]

            for i in ID:
                for id in i:
                    try:
                        url = 'http://sqt.gtimg.cn/utf8/q=' + id
                        respon = requests.get(url)
                        respon.encoding = "utf-8"
                        stock_info = respon.text.split("~")
                        # print(stock_info)

                        stock_name = stock_info[1]                                                   #股票名称
                        realtime_price = stock_info[3]                                               #股票现价
                        zhangdie_price = "%.2f"%(float(stock_info[3]) - float(stock_info[4]))       #股票涨跌价格
                        zhangdie_percent = stock_info[32]                                           #股票涨跌%
                        # print(zhangdie_percent)
                    except Exception as a:
                        print('Exception:',a)

                    if stock_name == "上证指数" or stock_name == "深证成指" or stock_name == "创业板指":
                        show.append( '\033[1;31m'+ stock_name + '   ' + realtime_price + '   ' + zhangdie_price + '   ' + zhangdie_percent + "%" +'\033[0m')

                    else:
                        show.append('\033[1;34m' + stock_name+'   '+ realtime_price+'   '+zhangdie_price+'   '+ zhangdie_percent+"%" +'\033[0m')

                    if id in id_0:
                        if float(zhangdie_percent)>set_range_a[0] or float(zhangdie_percent)<=set_range_a[1] :
                            message.append(time.strftime('%Y-%m-%d %H:%M:%S'))
                            message.append("\n%s:\n最新价:%s  涨跌额:%s  涨跌幅:%s \n  " % (stock_name,realtime_price, zhangdie_price,zhangdie_percent+"%"))
                            continue

                    elif id in id_1:
                        if float(zhangdie_percent)>set_range_b[0] or float(zhangdie_percent)<=set_range_b[1] :
                            message.append(time.strftime('%Y-%m-%d %H:%M:%S'))
                            message.append("\n%s:\n最新价:%s  涨跌额:%s  涨跌幅:%s \n" % (stock_name,realtime_price, zhangdie_price,zhangdie_percent+"%"))

                    elif id in id_2:
                        if float(zhangdie_percent) > set_range_c[0] or float(zhangdie_percent) <= set_range_c[1]:
                            message.append(time.strftime('%Y-%m-%d %H:%M:%S'))
                            message.append("\n%s:\n最新价:%s  涨跌额:%s  涨跌幅:%s \n" % (stock_name, realtime_price, zhangdie_price, zhangdie_percent+"%"))

                    elif id in id_3:
                        if float(zhangdie_percent) > set_range_d[0] or float(zhangdie_percent) <= set_range_d[1]:
                            message.append(time.strftime('%Y-%m-%d %H:%M:%S'))
                            message.append("\n%s:\n最新价:%s  涨跌额:%s  涨跌幅:%s \n" % (
                            stock_name, realtime_price, zhangdie_price, zhangdie_percent + "%"))

            if message !=[]:
                # print('--------------------------------------')
                message=''.join(message)
                print(time.strftime('%Y-%m-%d %H:%M:%S'))
                print('股票名称   当前价  涨跌价  涨跌幅 ')
                for n in show:
                    print(n)
                win32api.MessageBox(0,message,'股价警报系统3.0-按涨跌幅超过设定范围查询:' , win32con.MB_OK)
                sys.exit()
            else:
                print(time.strftime('%Y-%m-%d %H:%M:%S'))
                print('股票名称   当前价  涨跌价  涨跌幅 ')
                for n in show:
                    print(n)
                print('--------------------------------------')

                # 闹钟
                if time.strftime('%Y-%m-%d %H:%M:%S') >= clock_settime:
                    win32api.MessageBox(0, "闹钟响了!\n%s"%clock_settime, '闹钟', win32con.MB_OK)
                    sys.exit()
                time.sleep(3)

# 股票池:
dict={
"上证大盘":"sh000001","深圳成指":"sz399001","创业板指":"sz399006","北方稀土":"sh600111",
"晨曦航空":"sz300581","西部牧业":"sz300106","中远海控":"sh601919","士兰微":"sh600460",
"润禾材料":"sz300727","广发证券":"sz000776",

}

# 设置警报范围-涨跌幅:range[0]~range[1]
id_0=[dict["上证大盘"],dict["深圳成指"],dict["创业板指"]  ]    #大盘
id_1=[dict["润禾材料"],]   #普通1组
id_2=[dict["西部牧业"],]    #普通2组
id_3=[dict["士兰微"],]   #普通3组


set_range_a=[2,-1]
set_range_b=[5,-6]
set_range_c=[5,-4]
set_range_d=[5,-3]

# 闹钟时间
clock_settime = "2023-11-29 14:45:00"

stock=stock()
stock.star()

按股票涨跌幅设置报警范围,运行后效果如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值