基于tushare实现股票实时价格变动的监控并用itchat实现微信消息提醒

基于tushare实现股票实时价格变动的监控并用itchat实现微信消息提醒

    • 1.实时检查股票价格的函数
    • 2.定义开盘时间,收盘时间和当前时间
    • 3.定义一个微信发送提醒消息的函数
    • 4.主循环函数实现自动化盯盘

1.实时检查股票价格的函数

首先定义一个check函数用来检查指定股票code(例如格力电器000651)的股价是否低于或者高于设定的low值和high值,使用了ts的get_realtime_quotes的实时行情接口,如果突破相应的价格会返回相应的值,比如,低于low会返回0和当前股价

import tushare as ts
import itchat
from datetime import *

def check(code, low, high):
    df = ts.get_realtime_quotes(code)
    e = df[['code', 'name', 'price', 'time']]
    p = df[u'price']
    if float(p[0]) < low:
        return 0,float(p[0])
    elif float(p[0]) > high:
        return 1,float(p[0])
    else:
        return 2,float(p[0])

2.定义开盘时间,收盘时间和当前时间

09:30-11:30 早盘
13:00-15:00 午后盘

start_dt=datetime(datetime.today().year,datetime.today().month,datetime.today().day,hour=9,minute=30,second=0)
stop_dt=datetime(datetime.today().year,datetime.today().month,datetime.today().day,hour=15,minute=30,second=0)

now=datetime.now()

3.定义一个微信发送提醒消息的函数

使用itchat里的get_friends接口获取你微信的所有联系人,利用联系人的nickname获得该联系人的username(因为是动态随机的),然后将指定的message内容发送过去。

def sending(message):
    friendList = itchat.get_friends(update=True)[1:]
    for friend in friendList:
        if friend['NickName']=='宋兆宇':
            itchat.send(msg=message,toUserName=friend['UserName'])
            print(message)

4.主循环函数实现自动化盯盘

基于while实现对应时间范围内的无限循环,根据设定的股票code,自动实时获取ts接口的实时行情,根据返回的num_sh判断股票涨跌,sh_low设定每涨或跌多少提醒一次,也可添加公式去计算一段时间内的涨跌幅度。

while True:
    if now>start_dt and now<stop_dt: #实现交易时间内盯盘
        print('Start')
        print(datetime.now())
        while True:
            num_sh,price_sh=check('sh', sh_low, sh_high) #上证指数
            # num_gl,price_gl=check('000651', gl_low,gl_high) #格力电器
            # num_lx,price_lx=check('002475', lx_low,lx_high)
            # num_ht, price_ht = check('603288', ht_low, ht_high)
            if num_sh==0:#接收并判断是跌
                message= '%s上证指数跌破%s,目前价位:%s,提醒XX速看!'%(datetime.now(),sh_low,price_sh) #编辑你需要发送的内容
                sending(message)
                sh_low-=10 #实现每跌10点提醒一次
            if num_sh==1:#接收并判断是涨
                message= '%s上证指数涨穿%s,目前价位:%s,提醒XX速看!'%(datetime.now(),sh_high,price_sh)
                sending(message)
                sh_high+=10 #实现每涨10点提醒一次
            import time
            time.sleep(0.2)

#希望大家发财,在这个癌股之中。
#有兴趣合作去深度开发盯盘数据的可发送邮件至[email protected]

你可能感兴趣的:(股市盯盘)