目的

将股票价格进行时序分解,得到趋势图、周期图和误差图。然后放到微信公众号上,让用户输入"002581.SZ"等股票代码,即可自动回复以上的图片。

主要思路

  1. 用tushare获得股票的历史数据。
  2. 用statsmodels的STL进行时序分解。
  3. 用matplotlib出趋势图、周期图和误差图 的三合一图片。
  4. 将以上功能部署到树莓派上。
  5. 树莓派利用花生壳作内网穿透,对外提供服务。
  6. 树莓派上部署微信公众号服务器,对用户提供便捷服务。

输出的图片

进度

现在已完成使用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

打赏

如果各位觉得该项目帮到了您的话,还请不吝打赏,谢谢!

时序分解股票数据并部署在微信公众号上相关推荐

  1. 微信公众号上部署自己训练的聊天机器人(腾讯云服务器+TensorFlow2.1+Django3.1)

    文章目录 前言 1. 模型介绍 1.1 Encoder-Decoder框架 1.2 Attention机制 1.3 代码实现 2. 安装依赖库 3. 模型部署 4. 测试 前言   哈哈,重头戏终于来 ...

  2. 10分钟!快速部署ChatGPT微信公众号机器人!

    在上面公众号后台就可以免费体验gpt机器人 马上五一啦,很多小伙伴都要出去玩了,出去玩没有GPT怎么行呢!有没有一个简单的,可以24小时玩的GPT的!前面我们教过大家部署微信机器人做24小时的助理,还 ...

  3. Java 微信公众号上传永久素材的方法

    用 Java 实现微信公众号上传永久素材,代码如下: /*** 上传其他永久素材(图片素材的上限为5000,其他类型为1000)* @param appid* @param secret* @retu ...

  4. 微信公众号上云 后台管理更轻松

    微信公众号上云 后台管理更轻松 作为时下热门的通讯工具和社交平台,微信已成为我们使用率最高的App之一.适应碎片化学习.娱乐的需要,大家会关注一些自己喜欢的企业微信公众号,看资讯.学技能.观美图,并在 ...

  5. 为什么我不在微信公众号上写文章

    作者: 陈浩 原文: https://coolshell.cn/articles/17391.html 很多朋友问我为什么不在微信公众号上写文章.我都没有直接回答,老实说,我也是扭扭捏捏的,才去开了个 ...

  6. 工具类产品适合在微信公众号上运营吗?

    1. 工具类产品适合在微信公众号上运营吗? 问题描述:如果工具类的产品,主要的核心服务功能搬到微信公众号上运营会有些什么优势和劣势,以及如何在公众号上实现流量变现? 答:微信公众号之前有三种分类:服务 ...

  7. CSDN的文章如何快速转移到微信公众号上

    简单做个介绍,因为需要同时维护CSDN和微信公众号上的文章.所以就涉及到如何不做重复的工作. 所以这里推荐下我个人刚刚发现的比较好用的一个Chrome上用的一个插件,叫"Markdown N ...

  8. 【安信可A9G专题②】A9G在微信公众号上的定位功能笔记分享;

    本系列博客学习由 安信可科技 - 官方博客 技术分享,如有疑问请留言或联系邮箱. 1.A9G环境在windows上搭建并编译,串口打印 Hello GPRS 2.A9G在微信公众号上的定位功能笔记分享 ...

  9. 在微信公众号上显示指定位置的地图

    在微信公众号上显示指定位置的地图 需求:公众号获取用户上报的位置,展示出当前位置的地图 解决方案:通过公众号消息事件存储用户经纬度后,将经纬度作为参数打开腾讯地图一个可以自定义地图标记的url 链接, ...

最新文章

  1. tomcat线程释放时间_聊下并发和Tomcat线程数(错误更正)
  2. VS2015快捷键使用学习总结
  3. 简介Linux磁盘管理与文件系统
  4. 【暴力】Codeforces Round #398 (Div. 2) A. Snacktower
  5. RUNOOB python练习题3
  6. Vector的使用详解
  7. 一个编程指南还有这么多道道儿?
  8. 怎么更改滚动条的位置php,给网站顶部添加一个滚动条位置百分比教程
  9. 面向对象(Python):学习笔记之类属性和类方法
  10. SLAM十四讲中的第五讲点云拼接
  11. html如何改变日期样式,html如何修改日期样式
  12. 【python】词云图制作
  13. 老路MBA商学课|第002课:比较优势|我做的比你好,就应该我做吗?
  14. 软件工程-读《构建之法》读后感
  15. 为什么抖音账号作品很少粉丝却很多,抖音删除的粉丝还能看到吗
  16. 小学计算机网络信息安全教案,黑教版信息技术五年级上册第十五课《网络信息安全》教案.doc...
  17. linux系统怎么装搜狗输入法_Linux之Ubuntu系统安装搜狗输入法
  18. js 已知角度和斜边,求直角边
  19. 十一、高斯混合模型(Gaussian Mixed Model, GMM)
  20. 【第1天】移动App-学习笔记

热门文章

  1. 【753. 破解保险箱】
  2. 空气质量指数(AQI)分析与预测
  3. 空气质量指数计算公式
  4. 微信小程序校园论坛系统丨安卓也可以用
  5. 起底Filecoin:易崩盘、估值高、政策风险大
  6. [解决Chrome禁止发送不安全的内网网络请求](ERR_FAILED)(How to fix Chrome block your insecure private network requests)
  7. 于树莓派安装Ubuntu系统
  8. 虚幻4引擎2d游戏基础
  9. jdbc操作数据库实现查询产品、增加产品库存量例子
  10. 经典SQL语句大全(绝对的经典)----特别好