基于Python3 的 简单股票 可转债 提醒逻辑

概述

通过本地的定时轮训,结合本地建议数据库。检查股票可转债价格的同事,进行策略化提醒

详细

前言

为什么会有这么个东西出来呢,主要是因为炒股软件虽然有推送,但是设置了价格之后,看到推送也未必那么及时,毕竟正常的超贵软件推送是很多的。所以我们利用简单的接口,来实现跟踪几个特别在意的股票,再进行简单的策略定制,用发邮件的方式提醒,毕竟。。一般人是不会有太多邮件进来的。会比较重视

详细

一. Shares

简介

Shares 接口


如上图所示,我们的 Shares 功能主要有

  1. 初始化
  2. 创建相关的用户数据库 createUserDB
  3. 创建股票数据库 createSharesDB
  4. 登录一个用户,用户名就是要接受邮件的邮箱 createUser,这个方法的返回值,就是当前用户的 uid。其他接口要用到这个参数
  5. 购买股票
  6. 卖出股票
  7. 检查接口,会定时触发(这里,可以根据用户自己的需求,进行价格触发策略上的定制)
  8. 获取股票/可转债信息的接口

这里因为需求对数据库的要求很低,所以直接使用了最简单 Sqlite3 ,是不需要额外设置什么东西,就会在脚本的同级目录产生一个名为 testShares.sqlite 的数据库文件。可见最下方运行的效果图

检查接口设置

 

    ret = self.cursor.execute(
                    "select code,uid,averagePrice,targetReturn,allowEmail,lastSendEmailTime from shares").fetchall()
                if len(ret) > 0:
                    codeArray = []
                    for temp in ret:
                        code = temp[0]
                        codeArray.append(code)
                    messageDict = {}
                    codeInfoDict = self.getShareInfo(codeArray)
                    for temp in ret:
                        code = temp[0]
                        uid = temp[1]
                        avaPrice = temp[2]
                        targetReturn = temp[3]
                        allowEmail = temp[4]
                        lastSendEmailTime = temp[5]
                        if allowEmail < 1:
                            continue
                        info = codeInfoDict[code]
                        # print(info)
                        name = info[1]
                        newPrice = info[2]
                        message = ""
                        if newPrice < avaPrice*0.95:
                            message = "请注意加仓 "+name+str(code)+"\n现价相对持仓成本 跌幅已经超过 5%"
                        elif newPrice > avaPrice*(1+targetReturn):
                            message = "请注意止盈 "+name + \
                                str(code)+"\n现价已经打到目标收益"+" 当前收益率" + \
                                str((newPrice-avaPrice)/avaPrice)
使用方法
    s = Shares()
    # 创建用户 用来接收提醒邮件的邮箱
    uid = s.createUser("12345678@qq.com")
    print("uid",uid)
    # 由于每次运行,都会根据 buy 和 sell 接口,操作本地的数据库。所以,在运行过一次之后,请自行把已经记录下来的 buy 和 sell 操作注释掉,以免影响 check  函数的运行
    # buy
    # 记录当前用户买入 128062 亚药转债 ,价格 96.8 20 股
    s.buyShares(uid,"128062",96.8,20) # 亚药转债
    # sell
    # 记录当前用户卖出 10 股 128062
    s.sellShares(uid,"128062", 10)

二. EmailSender

一个用来发送邮件的类,需要进行配置STMP服务,我们以 QQ邮箱为例。获取STMP服务的授权码
登录完成后,点击 设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
帮助系统

其他类型的邮箱也是差不多的操作,不再赘述。

使用
    content = '''
    崔东山玩笑道:“陪了你这么久的小铜板儿、小碎银子和神仙钱,你舍得它们离开你的香囊小窝儿?这么一离别分开,可能就这辈子都再也见不着它们面儿了,不心疼?不伤心?”
    '''
    # 设置发件人邮箱地址
    EmailSender.sender = "" 
    # 邮箱的 smtp 授权码
    EmailSender.pwd = ""
    # 设置 要发送邮件的 标题,文本正文,收件人地址列表
    ret = EmailSender().sendEmail("第六百零一章 裴钱的小钱袋子", content,["******@qq.com"])

三. 运行

要正常运行 Demo,需要正常配置好 邮箱名授权码(虽然不配置邮箱也能运行,但是不会有提醒的邮件发出去)。至少记录买入一只可转债/股票。然后运行 autoSharesAdvice.py 文件即可

下面是一个以 128062 亚药转债,进行的测试,出于隐私考虑,并没有设置邮箱和授权码,还请谅解。

    s = Shares()
    # 创建用户 用来接收提醒邮件的邮箱
    uid = s.createUser("11111111test@qq.com")
    print("uid",uid)
    # buy
    s.buyShares(uid,"128062",96.832,20) # 亚药转债
    # 开盘时间内每 1 min 检查一次
    while True:
        timeF = float(time.strftime("%H.%M"))
        print("time ", timeF)
        if 9.25 < timeF < 11.31 or 13.00 <= timeF <= 15.00:
            s.check()
        time.sleep(60)

设置完成之后,执行 python3 autoSharesAdvice.py

 

效果图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于Python股票提醒系统可以帮助用户监控感兴趣的股票,及时提供股票价格变动、重要新闻和市场动态等信息。以下是实现该系统的主要步骤和功能: 1. 数据获取和分析:使用Python的数据分析库,如pandas、numpy等,从数据源(如网站API、数据供应商或数据库)获取股票市场数据,并进行数据清洗和处理。 2. 设定提醒条件:用户可以根据个人需求设定股票价格阈值、波动幅度、交易量变动等条件。系统会根据这些条件自动监测股票行情。 3. 实时提醒功能:一旦满足用户设定的提醒条件,系统将通过邮件、短信、微信等方式向用户发送提醒通知。这样,用户可以随时了解股票的最新行情,及时做出决策。 4. 重要新闻推送:除了价格变动提醒,系统还可以整合多种新闻源,提供股票相关的新闻资讯,帮助用户了解影响股票行情的重要消息。 5. 数据可视化:为了帮助用户更好地理解股票市场趋势,系统可以利用Python的数据可视化库(如matplotlib、plotly等)生成股票价格走势图、K线图、交易量图等,使用户能够直观地分析股票的历史数据。 总结来说,基于Python股票提醒系统能够帮助用户实时监控股票行情、提供重要新闻和发送提醒通知,有效辅助用户做出投资决策。这个系统的实现需要熟悉Python的数据分析和可视化库,同时还需要获取股票数据的源和相关API。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西安未央

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值