基于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:continueinfo = 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 股 128062s.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)# buys.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

 

效果图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/109723.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【滑动窗口】leetcode1658:将x减到0的最小操作数

目录 一.题目描述 二.思路分析 三.代码编写 一.题目描述 将x减到0的最小操作数 题目要求我们在数组的两端不断地取值&#xff0c;使得取出的数之和等于x&#xff0c;问我们最少需要取几次。 也就是说&#xff0c;在两边取两个区间&#xff0c;使得这两个区间的之和等于x&a…

Microsoft Excel整合Python:数据分析的新纪元

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

⏰⏰⏰⏰⏰⏰⏰⏰K8s常用指令集锦

1、常用基础命令 kubectl top pod -n wsmp kubectl get pod # 获取namespace下的所有podkubectl get pods -o wide # 获取 pod 详细信息 kubectl describe po ${podName} # 获得pod的状态kubectl get po ${podName} -o yaml # yaml 看不惯的话&#xff0c;也可以…

opencv 车牌号的定位和识别+UI界面识别系统

目录 一、实现和完整UI视频效果展示 主界面&#xff1a; 识别结果界面&#xff1a;&#xff08;识别车牌颜色和车牌号&#xff09; 查看历史记录界面&#xff1a; 二、原理介绍&#xff1a; 车牌检测->图像灰度化->Canny边缘检测->膨胀与腐蚀 边缘检测及预处理…

低代码与低代码平台的概念解析

随着数字化转型和软件需求的不断增长&#xff0c;传统的手写代码开发方式已经无法满足迅速推出应用程序的需求。为了加快软件开发的速度并降低技术门槛&#xff0c;低代码开发模式应运而生。本文将介绍低代码的概念&#xff0c;探讨什么是低代码什么是低代码平台&#xff1f; 一…

无涯教程-聚类算法 - K-Means

K-均值聚类算法计算质心并进行迭代&#xff0c;直到找到最佳质心为止&#xff0c;它假定群集的数目是已知的&#xff0c;它也称为扁平聚类算法。通过算法从数据中识别出的簇数以K均值中的" K"表示。 在该算法中&#xff0c;将数据点分配给群集&#xff0c;以使数据点…

离线竞价功能说明及设置

为了更加方便广大用户不再熬夜竞价&#xff0c;西部数码推出了离线竞价功能&#xff0c;现已正式上线&#xff0c;欢迎大家使用反馈。 1、离线竟价功能说明 当您拥有域名的出价权限时&#xff0c;您可在 【我参与的竞价】或【我出价的域名】列表选中域名开启离线竟价。 设置…

【docker】运行registry

registry简介 Docker registry是docker镜像仓库的服务,用于存储和分发docker镜像。 Docker registry主要特点和功能: 存储docker镜像:提供持久化存储docker镜像的功能,存储镜像的各个layer。 分发镜像:拉取和推送镜像的去中心化存储和分发服务。 支持版本管理:给镜像打标签…

pycharm添加虚拟环境以及虚拟环境安装pytorch

file、settings、interpreter、add interpreter、add local interpreter 记住不要勾选inherit&#xff0c;不然会把主环境的东西继承到虚拟环境。 创建前可以先点existing看看有没有已经建好的虚拟环境 有的时候pycharm有问题&#xff0c;创建了虚拟环境没有显示。找一个.py文…

linux搭建minIO对象存储服务,springBoot整合

minIO 服务搭建 1. 创建安装目录 mkdir -p /usr/local/minio2. 进入安装目录 cd /usr/local/minio3.下载安装包 (wget 如果下载太慢,可以手动下载并上传安装包) wget https://dl.minio.io/server/minio/release/linux-amd64/minio4.创建数据存储文件夹 mkdir -p /usr/loca…

如何基于自己训练的Yolov5权重,结合DeepSort实现目标跟踪

网上有很多相关不错的操作demo&#xff0c;但自己在训练过程仍然遇到不少疑惑。因此&#xff0c;我这总结一下操作过程中所解决的问题。 1、deepsort的训练集是否必须基于逐帧视频&#xff1f; 我经过尝试&#xff0c;发现非连续性的图像仍可以作为训练集。一个实例&#xff0…

【C++】详解声明和定义

2023年8月28日&#xff0c;周一下午 研究了一个下午才彻底弄明白... 写到晚上才写完这篇博客。 目录 声明和定义的根本区别结构体的声明和定义声明结构体 定义结构体类的声明和定义函数的定义和声明声明函数 定义函数变量声明和定义声明变量定义变量 声明和定义的根本区别 …

使用ssh进行服务器连接

前言&#xff1a;相信看到这篇文章的小伙伴都或多或少有一些编程基础&#xff0c;懂得一些linux的基本命令了吧&#xff0c;本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python&#xff1a;一种编程语言&…

瞬态电压抑制器(TVS)汽车级 SZESD9B5.0ST5G 工作原理、特性参数、封装形式

什么是汽车级TVS二极管&#xff1f; TVS二极管是一种用于保护电子电路的电子元件。它主要用于电路中的过电压保护&#xff0c;防止电压过高而损坏其他部件。TVS二极管通常被称为“汽车级”是因为它们能够满足汽车电子系统的特殊要求。 在汽车电子系统中&#xff0c;由于车辆启…

centos7安装nacos

版本选择 Nacos 1.X 是老版本&#xff0c;将来会停止维护。 建议您使用2.X版本。 请移步到 Nacos2.X相关文档. 您可以在Nacos的release notes中找到每个版本支持的功能的介绍&#xff0c;当前推荐的稳定版本为2.1.1。 https://nacos.io/zh-cn/docs/quick-start.html https:/…

机器学习中XGBoost算法调参技巧

本文将详细解释XGBoost中十个最常用超参数的介绍&#xff0c;功能和值范围&#xff0c;及如何使用Optuna进行超参数调优。 对于XGBoost来说&#xff0c;默认的超参数是可以正常运行的&#xff0c;但是如果你想获得最佳的效果&#xff0c;那么就需要自行调整一些超参数来匹配你…

消息队列前世今生 字节跳动 Kafka #创作活动

消息队列前世今生 1.1 案例一&#xff1a; 系统崩溃 首先大家跟着我想象一下下面的这个的场景&#xff0c; 看到新出的游戏机&#xff0c;太贵了买不起&#xff0c;这个时候你突然想到&#xff0c;今天抖音直播搞活动&#xff0c;打开抖音搜索&#xff0c;找到直播间以后&am…

基于HarmonyOS ArkUI实现七夕壁纸轮播

七夕情人节&#xff0c;为了Ta&#xff0c;你打算用什么方式表达爱&#xff1f;是包包、鲜花、美酒、巧克力&#xff0c;还是一封充满爱意的短信&#xff1f;作为程序员&#xff0c;以代码之名&#xff0c;表达爱。本节将演示如何在基于HarmonyOS ArkUI的SwiperController、Ima…

qt信号槽同步问题

目录 信号槽&#xff1a; 注意事项&#xff1a; 具体例子&#xff1a; 线程安全问题的例子&#xff1a; 信号槽&#xff1a; 在Qt编程中&#xff0c;信号&#xff08;Signal&#xff09;和槽&#xff08;Slot&#xff09;是一种用于在对象之间进行通信的机制。信号用于发出…

ubuntu22安装和部署Kettle8.2

前提 kettle是纯java编写的etl开源工具&#xff0c;目前kettle7和kettle8都需要java8或者以上才能正常运行。所以运行kettle前先检查java环境是否正确配置&#xff0c;java版本是否是8或者以上。 kettle安装 1、创建kettle目录&#xff0c;并将kettle的zip包解压到kettle目…