基于Python3 的 简单股票 可转债 提醒逻辑
概述
通过本地的定时轮训,结合本地建议数据库。检查股票可转债价格的同事,进行策略化提醒
详细
前言
为什么会有这么个东西出来呢,主要是因为炒股软件虽然有推送,但是设置了价格之后,看到推送也未必那么及时,毕竟正常的超贵软件推送是很多的。所以我们利用简单的接口,来实现跟踪几个特别在意的股票,再进行简单的策略定制,用发邮件的方式提醒,毕竟。。一般人是不会有太多邮件进来的。会比较重视
详细
一. Shares
简介

如上图所示,我们的 Shares 功能主要有
- 初始化
- 创建相关的用户数据库
createUserDB - 创建股票数据库
createSharesDB - 登录一个用户,用户名就是要接受邮件的邮箱
createUser,这个方法的返回值,就是当前用户的 uid。其他接口要用到这个参数 - 购买股票
- 卖出股票
- 检查接口,会定时触发(这里,可以根据用户自己的需求,进行价格触发策略上的定制)
- 获取股票/可转债信息的接口
这里因为需求对数据库的要求很低,所以直接使用了最简单 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

相关文章:
基于Python3 的 简单股票 可转债 提醒逻辑
概述 通过本地的定时轮训,结合本地建议数据库。检查股票可转债价格的同事,进行策略化提醒 详细 前言 为什么会有这么个东西出来呢,主要是因为炒股软件虽然有推送,但是设置了价格之后,看到推送也未必那么及时&#…...
Python“牵手”京东工业商品详情数据采集方法,京东工业商数据API申请步骤说明
京东工业平台介绍 京东工业平台是京东集团旗下的一个B2B电商平台,主要面向企业客户提供一站式的采购服务。京东工业平台依托京东强大的供应链和配送能力,为企业用户提供全品类、全渠道、全场景的采购解决方案,涵盖电子元器件、机械配件、办公…...
【LeetCode-中等题】3. 无重复字符的最长子串
题目 题解一:单指针,滑动窗口 思路: 设置一个左指针,来判断下一个元素是否在set集合中,如果不在,就加入集合,right继续,如果在,就剔除重复的元素,计算串的长度…...
【教程】Java 集成Mongodb
【教程】Java 集成Mongodb 依赖 <dependency><groupId>org.mongodb</groupId><artifactId>mongo-java-driver</artifactId><version>3.12.14</version></dependency> <dependency><groupId>cn.hutool</groupId…...
ARM开发,stm32mp157a-A7核中断实验(实现按键中断功能)
1.实验目的:实现KEY1/LEY2/KE3三个按键,中断触发打印一句话,并且灯的状态取反; key1 ----> LED3灯状态取反; key2 ----> LED2灯状态取反; key3 ----> LED1灯状态取反; 2.分析框图: …...
kafka常用命名
kafka服务启动 $KAFKA_HOME/bin/kafka-server-start.sh -daemon config/server.properties 创建Topic $KAFKA_HOME/bin/kafka-topics.sh --create --topic test0--zookeeper 127.0.0.1:2181 --config max.message.bytes12800000 --config flush.messages1 --partitions 5 …...
华为云开发工具CodeArts IDE for C/C++ 开发使用指南
简介 CodeArts IDE是一个集成开发环境(IDE),它提供了开发语言和调试服务。本文主要介绍CodeArts IDE for C/C的基本功能。 1.下载安装 CodeArts IDE for C/C 已开放公测,下载获取免费体验 2.新建C/C工程 CodeArts IDE for C/…...
如何选择最适合你的SOLIDWORKS版本 硕迪科技
SOLIDWORKS是一款广泛应用于工程设计领域的三维计算机辅助设计(CAD)软件,因其强大的功能和易学易用的界面而备受工程师们的青睐。面对众多的SOLIDWORKS版本,比如SW专业版、白金版,租赁订阅版,以及solidwork…...
通过双层负载均衡实现HTTPS代理的高并发处理和容错能力
在互联网应用中,HTTPS代理服务器是承担用户请求的重要角色。当网站面临高并发请求时,单一的服务器可能无法满足需求,会导致性能下降和容错能力不足。为了解决这个问题,我们可以通过双层负载均衡技术来实现高并发处理和容错能力的提…...
Redis 整合中 Redisson 的使用
大家好 , 我是苏麟 , 今天带来 Redisson 使用 . 官方文档 : GitHub - redisson/redisson: Redisson - Easy Redis Java client with features of In-Memory Data Grid. Sync/Async/RxJava/Reactive API. Over 50 Redis based Java objects and services: Set, Multimap, Sorte…...
数据结构(5)
堆 堆可以看作一颗完全二叉树的数组对象。 特性: 1.堆是完全二叉树,除了树最后一层不需要满,其余层次都需要满,如果最后一层不是满的,那么要求左满右不满 2.通常使用数组实现,将二叉树结点依次放入数组中…...
R语言实现网状Meta分析(1)
#R语言实现网状Meta library(gemtc) help(package"gemtc") data<-gemtc::smoking #注意按照实例格式编写数据 net<-mtc.network(data$data.ab) #网状图 plot(net,mode"circle",displaylabelsT,boxed.labelF) summary(net) #网状model model<-mtc…...
Reactor 第十篇 定制一个生产的WebClient
1 为什么要用 WebClient 刚开始尝试使用 Spring WebFlux 的时候,很多人都会使用 Mono.fromFuture() 将异步请求转成 Mono 对象,或者 Mono.fromSupplier() 将请求转成 MOno 对象,这两种方式在响应式编程中都是不建议的,都会阻塞当…...
桃子叶片病害识别(Python代码,pyTorch框架,深度卷积网络模型,很容易替换为其它模型,带有GUI识别界面)
1.分为三类 健康的桃子叶片 ,251张 桃疮痂病一般,857张 桃疮痂病严重,770 张 2. GUI界面识别效果和predict.py识别效果如视频所示桃子叶片病害识别(Python代码,pyTorch框架,深度卷积网络模型࿰…...
matlab使用教程(21)—求函数最值
1. 求函数最优值 1.1求一元函数的最小值 如果给定了一个一元数学函数,可以使用 fminbnd 函数求该函数在给定区间中的局部最小值。例如,请考虑 MATLAB 提供的 humps.m 函数。下图显示了 humps 的图。 x -1:.01:2; y humps(x); plot(x,y) xlabel(x)…...
Redis中 为什么Lua脚本可以保证原子性?
Redis中 为什么Lua脚本可以保证原子性?...
tda4 videnc-test-app: CONTINUOUS and STEPWISE FRAMEINTERVALS not supported
/* videnc-test-app */ https://git.ti.com/cgit/jacinto7_multimedia/ git clone https://git.ti.com/git/jacinto7_multimedia/videnc-test-app.git // 编译 ./autogen.sh ./configure --enable-maintainer-mode --buildi386-linux --hostaarch64-none-linux CC/home/share…...
[已解决] libGL error: MESA-LOADER: failed to open swrast
在新的服务器中配置好虚拟环境后,利用已有的预训练模型test后,可视化时遇到: libGL error: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /u…...
JVM及垃圾回收机制
文章目录 1、JVM组成?各部分作用?1.1 类加载器(Class Loaders)1.2 运行时数据区(Runtime Data Area)1.3 执行引擎(Execution Engine)1.4 本地方法接口(Native Interface&…...
windows11不允许安装winpcap4.1.3
问题:下载安装包后在安装时显示与电脑系统不兼容,不能安装。 原因:winpcap是一个用于Windows操作系统的网络抓包库,有一些安全漏洞,存在被黑客攻击的风险。Windows11为了加强系统安全而禁用了这个库,因此不…...
蛋糕预订|基于springboot + vue蛋糕预订系统(源码+数据库+文档)
蛋糕预订系统 目录 基于springboot vue学生信息管理系统 一、前言 二、系统功能演示 详细视频演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue蛋糕预订系统 一、前言 博主…...
【深度强化学习】DDPG算法在连续动作空间中的实战解析
1. DDPG算法初探:为什么我们需要它? 第一次接触DDPG(Deep Deterministic Policy Gradient)算法时,我完全被这个拗口的名字吓到了。但当我真正理解它的设计初衷后,才发现它其实解决了一个非常实际的问题——…...
GD32F30x串口DMA+空闲中断接收不定长数据,一个LED控制项目带你搞懂
GD32F30x串口DMA空闲中断实战:从零构建LED智能控制系统 在嵌入式开发中,串口通信就像设备的"嘴巴"和"耳朵",而DMA技术则是解放CPU的"隐形助手"。想象一下这样的场景:你需要通过手机APP远程控制实验…...
Qwen3-4B-Instruct-2507从入门到精通:Chainlit界面定制化教程
Qwen3-4B-Instruct-2507从入门到精通:Chainlit界面定制化教程 1. 引言:为什么选择Qwen3-4B-Instruct-2507? 如果你正在寻找一个既强大又轻量、既能快速部署又能灵活定制界面的AI模型,那么Qwen3-4B-Instruct-2507绝对值得你深入了…...
OpenClaw权限管理:Qwen3-VL:30B飞书助手分级控制方案
OpenClaw权限管理:Qwen3-VL:30B飞书助手分级控制方案 1. 为什么需要权限管理 当我第一次在团队内部署OpenClaw飞书助手时,很快就遇到了一个现实问题:不同部门的同事对AI助手的操作需求差异巨大。财务组需要处理报销单据识别,研发…...
OpenClaw技能分享:GLM-4.7-Flash驱动的邮件自动处理系统
OpenClaw技能分享:GLM-4.7-Flash驱动的邮件自动处理系统 1. 为什么需要自动化邮件处理 每天早晨打开邮箱,看到堆积如山的未读邮件总让人头皮发麻。作为一个小团队的负责人,我经常需要处理客户咨询、内部沟通、会议邀请等各种类型的邮件。最…...
【STM32F4系列】【HAL库】【实战解析】MPU6050 DMP姿态解算与I2C通信优化
1. MPU6050与DMP库基础解析 第一次接触MPU6050时,我被它小巧的体积和强大的功能震撼到了。这个售价不到10元的芯片,居然能同时测量三轴角加速度和三轴线加速度。在实际项目中,我发现直接读取原始数据并不难,但要想获得稳定的姿态信…...
LangGPT:革新自然语言编程的结构化提示词框架
LangGPT:革新自然语言编程的结构化提示词框架 【免费下载链接】LangGPT LangGPT: Empowering everyone to become a prompt expert!🚀 Structured Prompt,Language of GPT, 结构化提示词,结构化Prompt 项目地址: https://gitcod…...
技术指标——格雷厄姆指数
文章目录1. 格雷厄姆指数是什么?2. 格雷厄姆指数的作用是什么?3. 举例计算例1:牛市顶部(2021年2月)例2:熊市底部(2024年2月)例3:中性水平(假设某一般时刻&…...
Abaqus数值模拟案例研究:随机纤维分布二维RVE模型中的微观横向拉伸损伤与延性损伤评估
abaqus数值模拟案例系列-随机纤维分布二维RVE模型微观横向拉伸损伤,设置了周期边界,采用Drucker-Prager(dp)准则,Ductile-Damage延性损伤,界面采用cohesive单元,采用牵引分离方法,Qu…...
