时序分解股票数据并部署在微信公众号上
目的
将股票价格进行时序分解,得到趋势图、周期图和误差图。然后放到微信公众号上,让用户输入"002581.SZ"等股票代码,即可自动回复以上的图片。
主要思路
- 用tushare获得股票的历史数据。
- 用statsmodels的STL进行时序分解。
- 用matplotlib出趋势图、周期图和误差图 的三合一图片。
- 将以上功能部署到树莓派上。
- 树莓派利用花生壳作内网穿透,对外提供服务。
- 树莓派上部署微信公众号服务器,对用户提供便捷服务。
输出的图片
进度
现在已完成使用tushare获取指定股票历史数据、使用statsmodels进行时序分解、使用matplotlib出三合一图。
但想要接上微信公众号,则必须要有一台公网80端口的服务器。准备用花生壳进行内网穿透,但64位的树莓派4好像装不了花生壳客户端。而经过一晚上实验,发现局域网内必须要有一台电脑运行着花生壳客户端,否则无法解析。
好像在PC上运行花生壳客户端,也只能访问树莓派一会儿,之后还是不行。需要进一步验证,同时验证32位树莓派上同时运行花生壳客户端和服务器程序,能不能稳定解析。
所以接下来准备用之前旧的树莓派搭个32位的arm服务器,把项目迁过去,运行花生壳客户端,同时运行服务器程序。
由于我家是电信光猫的内网ip,光猫只有一个lan口没有wifi,所以只能先接路由器,再接各设备。但这样花生壳的内网穿透会报"域名IP地址指向与转发服务器IP不一致"。解决方案是,先直连光猫,从 http://192.168.1.1/romfile.cfg 上下载配置文件,找到超级管理员telecomadmin和其密码,登上光猫后台,配置DMZ到路由器。然后再上路由器后台,配置DMZ到32位旧树莓派。
在服务器程序的一开始去执行"sudo phddns start"来运行花生壳客户端。另外,可以使用"sudo phddns status"来查看SN号,以此可以在花生壳网页管理台上看客户端在不在线。然后在花生壳网页管理台上配置域名映射。
忙了快一天,花生壳映射终于成功了!
另外,由于树莓派上官方的statsmodels版本太低,所以只能去git clone官方最新代码到本地,然后 python3 setup.py install 。再另外,由于github的速度极慢,所以只能先clone到国内的gitee上,再从gitee上clone到本地。
然后就是微信客户端的流程。应该是收到消息后,取股票数据,时序分解,出图,上传临时图片获取资源ID,发送资源ID给用户完成回复图片。整个流程必须控制在5秒内,否则微信服务器算超时。
使用 re.fullmatch 进行全匹配。
在非交互式后端,若只要matplotlib生成图片不需要显示窗口,需要:
import matplotlib
matplotlib.use('Agg')
使用python的dict,作为cache,保存media_id。这样就可以不用每次查询都重新拉数据、出图、上传图片了。
- 使用tushare获取指定股票历史数据
- 使用statsmodels进行时序分解
- 使用matplotlib出三合一图
- 旧树莓派搭建32位的arm服务器,运行花生壳客户端
- 项目迁移至旧树莓派32位的arm服务器,不用定时运行更新公网地址的代码了
- 搭建微信客户端的流程,注意时限
- 使用cache缓存media_id
- 增加定时器去更新day和access_token
微信公众号
该项目已部署至个人微信公众号上,由一台旧32位树莓派充当服务器。
只需把 002581.SZ 这样的股票代码发送至公众号,即可获得该只股票股价的时序分解图,分别是趋势图、周期图和误差图。
代码开源地址
https://github.com/zhangsheng377/stats_stock
docker
目前,已把该树莓派镜像部署至docker,这样就不用screen暴力的在后台运行及监控了。
https://github.com/zhangsheng377/docker/tree/master/stats_stock
打赏
如果各位觉得该项目帮到了您的话,还请不吝打赏,谢谢!
时序分解股票数据并部署在微信公众号上相关推荐
- 微信公众号上部署自己训练的聊天机器人(腾讯云服务器+TensorFlow2.1+Django3.1)
文章目录 前言 1. 模型介绍 1.1 Encoder-Decoder框架 1.2 Attention机制 1.3 代码实现 2. 安装依赖库 3. 模型部署 4. 测试 前言 哈哈,重头戏终于来 ...
- 10分钟!快速部署ChatGPT微信公众号机器人!
在上面公众号后台就可以免费体验gpt机器人 马上五一啦,很多小伙伴都要出去玩了,出去玩没有GPT怎么行呢!有没有一个简单的,可以24小时玩的GPT的!前面我们教过大家部署微信机器人做24小时的助理,还 ...
- Java 微信公众号上传永久素材的方法
用 Java 实现微信公众号上传永久素材,代码如下: /*** 上传其他永久素材(图片素材的上限为5000,其他类型为1000)* @param appid* @param secret* @retu ...
- 微信公众号上云 后台管理更轻松
微信公众号上云 后台管理更轻松 作为时下热门的通讯工具和社交平台,微信已成为我们使用率最高的App之一.适应碎片化学习.娱乐的需要,大家会关注一些自己喜欢的企业微信公众号,看资讯.学技能.观美图,并在 ...
- 为什么我不在微信公众号上写文章
作者: 陈浩 原文: https://coolshell.cn/articles/17391.html 很多朋友问我为什么不在微信公众号上写文章.我都没有直接回答,老实说,我也是扭扭捏捏的,才去开了个 ...
- 工具类产品适合在微信公众号上运营吗?
1. 工具类产品适合在微信公众号上运营吗? 问题描述:如果工具类的产品,主要的核心服务功能搬到微信公众号上运营会有些什么优势和劣势,以及如何在公众号上实现流量变现? 答:微信公众号之前有三种分类:服务 ...
- CSDN的文章如何快速转移到微信公众号上
简单做个介绍,因为需要同时维护CSDN和微信公众号上的文章.所以就涉及到如何不做重复的工作. 所以这里推荐下我个人刚刚发现的比较好用的一个Chrome上用的一个插件,叫"Markdown N ...
- 【安信可A9G专题②】A9G在微信公众号上的定位功能笔记分享;
本系列博客学习由 安信可科技 - 官方博客 技术分享,如有疑问请留言或联系邮箱. 1.A9G环境在windows上搭建并编译,串口打印 Hello GPRS 2.A9G在微信公众号上的定位功能笔记分享 ...
- 在微信公众号上显示指定位置的地图
在微信公众号上显示指定位置的地图 需求:公众号获取用户上报的位置,展示出当前位置的地图 解决方案:通过公众号消息事件存储用户经纬度后,将经纬度作为参数打开腾讯地图一个可以自定义地图标记的url 链接, ...
最新文章
- tomcat线程释放时间_聊下并发和Tomcat线程数(错误更正)
- VS2015快捷键使用学习总结
- 简介Linux磁盘管理与文件系统
- 【暴力】Codeforces Round #398 (Div. 2) A. Snacktower
- RUNOOB python练习题3
- Vector的使用详解
- 一个编程指南还有这么多道道儿?
- 怎么更改滚动条的位置php,给网站顶部添加一个滚动条位置百分比教程
- 面向对象(Python):学习笔记之类属性和类方法
- SLAM十四讲中的第五讲点云拼接
- html如何改变日期样式,html如何修改日期样式
- 【python】词云图制作
- 老路MBA商学课|第002课:比较优势|我做的比你好,就应该我做吗?
- 软件工程-读《构建之法》读后感
- 为什么抖音账号作品很少粉丝却很多,抖音删除的粉丝还能看到吗
- 小学计算机网络信息安全教案,黑教版信息技术五年级上册第十五课《网络信息安全》教案.doc...
- linux系统怎么装搜狗输入法_Linux之Ubuntu系统安装搜狗输入法
- js 已知角度和斜边,求直角边
- 十一、高斯混合模型(Gaussian Mixed Model, GMM)
- 【第1天】移动App-学习笔记
热门文章
- 【753. 破解保险箱】
- 空气质量指数(AQI)分析与预测
- 空气质量指数计算公式
- 微信小程序校园论坛系统丨安卓也可以用
- 起底Filecoin:易崩盘、估值高、政策风险大
- [解决Chrome禁止发送不安全的内网网络请求](ERR_FAILED)(How to fix Chrome block your insecure private network requests)
- 于树莓派安装Ubuntu系统
- 虚幻4引擎2d游戏基础
- jdbc操作数据库实现查询产品、增加产品库存量例子
- 经典SQL语句大全(绝对的经典)----特别好