python股票分析系统_熬了一晚上,小白用Python写了一个股票提醒系统

码农小马七夕节去相亲了,见了一个不错的姑娘,长的非常甜美!聊着聊着很投缘!通过介绍人了解到,对方也很满意~~想着自己单身多年的生活就要结束啦,心里满是欢喜,美美哒!但是突然想起年初还有几万块在股市里面,一直被套着,心里难受!

为了以后能多一点娶老婆的本钱,日子过的好一点,怎么咬着牙也要把股票的钱捞回来,这些可都是辛苦加班赚来的呀!怎么办呢,于是一咬牙,干脆用万能的Python写一个量化股票系统!

看一下小马的迷你量化系统

这个小迷小量化系统,麻雀虽小但是五脏俱全,我们今天先从实时提醒这个模块做起,提醒系统分下面几个部分:实时获取股票数据

连接邮件服务器

预警配置管理

监控数据并发送邮件

希望通过实时提醒,来提高交易的收益率,试试看,万一有用呢,反正写代码对码农来说,so easy!

01.

实时获取股票价格

为了更准确的获取股票的价格,我们这里用比较有名的金融库tushare来获取,里面封装了大量的股票的数据Api,非常好用!

1).首先设计一个stock类,这个类第一件大事:

查询股票的实时价格和k线数据比如(5min,15min),然后把数据返回出来,为了提高效率,我们肯定是用并发出来,所以start_run函数会成为一个线程函数

2).第二件大事:

我们获取的实时的数据,需要传递给外边的模块调用,子线程和主线程间通信的话,最简单的方法用queue来搞定,所以我们stock类会init里面传入一个queue

3).控制线程:

这个stock我们希望外边能控制它的运行和停止,在stock类的入口,我们加入了一个_terminal变量

4).神奇的tushare库

利用tushare这个神奇的API,构造两个类函数分布query_stock_real_price和get_kline_data获取数据:defquery_stock_real_price(self): df = ts.get_realtime_quotes(self.stock_num) df=df[['price','time']] price=df['price'].values[0] time=df['time'].values[0] return price,time defget_kline_data(self, ktype='ma5'): today=datetime.now().strftime('%Y-%m-%d') df = ts.get_hist_data(self.stock_num, start='2018-08-08',end=today) return(df[[ktype]])

02.

邮件系统

简单实时提醒系统,我们用邮件,比如你的qq邮箱,是可以实时的收到一些邮件提醒的信息,我们这里用Python自带的 SMTP和EMAIL模块处理:

1). 连接邮件服务器

为了方便扩展和复用,也用一个类来封装邮件server!构造一些邮件服务器的地址和密码,然后连接就可以了,非常简单。

2).构造邮件内容

服务器连接好了,之后我们需要发送邮件,需要写一个邮件标题和内容,比如 xx股票,现在价格多少之类的。

1).为了更好的封装数据,用类装饰器对titel和content进行封装,这样外边无法直接访问这两块内容。

2).mail类会初始化一些信息,比如要发送到邮件地址,而且要把前面构造好的SMTP服务器对象传进来,方便发送邮件。

3).初始化一个MIMEText对象,填充一些邮件的内容比如from,to,subject等等。为了有时间性,我们在邮件的开头加一个时间戳。

03.

预警系统

我们需要有一个配置文件,里面不停的修改我们对股票的价格的设置,比如到了你的止损或者止盈的位置,或者到了你的一些量化策略的地方,需要提醒你注意等等。这里我们只是简单的说明,只写最大和最小的股价预警,示例一下:

setting 文件:{ "high_price":15,"low_price":10}

1).死循环监控数据

我们启动一个线程,用一个死循环来不停的从队列里面获取股票的数据,然后进行一些监听的逻辑判断,先看一下核心代码:

因为股票有交易时间,我们这里简单粗暴的让程序只在交易时间运行,当然如果要把程序放在远端服务器上的话,需要进一步优化,不然每一天都要启动一下!

死循环里面会不停的读区预警设置里面的股价的涨到多少最高价和最低价,一旦触达这个价格,立刻发送邮件提醒!

写了这么久,看一下效果吧:

好了,上面是一个简单的股票实时提醒程序,利用了一些Python自带的邮件库和一个金融库,算是一个综合小练习!,完成一个量化系统,还有两个重要的功能没有完成,需要继续加油,欢迎大家留言讨论。也欢迎更多的高手投稿,切磋交流!

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

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

相关文章

有关eigen库的一些基本使用方法

目录 介绍安装Demo矩阵、向量初始化C数组和矩阵转换矩阵基础操作点积和叉积转置、伴随、行列式、逆矩阵计算特征值和特征向量解线性方程最小二乘求解稀疏矩阵介绍 Eigen是一个轻量级的矩阵库,除了稀疏矩阵不成熟(3.1有较大改进)以外,其他的矩阵和向量操作…

汇编程序:将字符串中所有大写字符转为小写

【任务】 编写程序,将数据区中定义的以0作为结束符的一个字符串中所有的大写字符,全部转换为小写。 【参考解答】 assume cs:cseg, ds:dseg, ss:sseg sseg segment stackdw 100h dup (?) sseg ends dseg segmentdb YanTai123University, 0 d…

从零开始编写自己的C#框架(1)——前言

记得十五年前自学编程时,拿着C语言厚厚的书,想要上机都不知道要用什么编译器来执行书中的例子。十二年前在大学自学ASP时,由于身边没有一位同学和朋友学习这种语言,也只能整天混在图收馆里拼命的啃书。而再后来也差不多&#xff0…

Bash内置命令

Bash有很多内置命令,因为这些命令是内置的,因此bash不需要在磁盘上为它们定位,执行速度更快。 1)列出所有内置命令列表$enable 2)关闭内置命令test$enable -n test 3)打开内置命令test$enable test 4&…

postman调用webservice接口_接口对前后端和测试的意义

1.什么是接口?接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。2.接口都有哪些类型?接口…

基于代数距离的椭圆拟合

问题 给定离散点集Xi(xi,yi),i1,2,...NX_i(x_i,y_i) ,i1,2,...NXi​(xi​,yi​),i1,2,...N,我们希望找到误差最小的椭圆去拟合这些离散点。 方法 由于椭圆的形式可以给定, 自然我们将使用最小二乘法来求解椭圆。主要依据论文《Direct least squares f…

Java与C语言比较(Java参考书中摘录)

C语言为面向过程的编程语言,Java为面向对象的编程语言。 在面向过程的编程语言(如C语言)中,编程一般面向操作,编程单位是函数(在Java中函数称为方法)。 在Java中,编程单位是类。最终实例化(即创建)这些类而得到对象,属…

Android调试技巧之Eclipse行号和Logcat

很多初入Android的开发者可能会发现经常遇到Force Close或ANR这样的问题,一般我们通过Android系统的错误日志打印工具Logcat可以看到出错的内容,今天一起来说下如何通过 Eclipse行号和Logcat捕捉出错点,我们遇到错误可以首先在Eclipse的DDMS中…

第六章 产权市场

《市场经济概论》(6)产权市场一 第六章 产权市场 产权是指人们对于某种资产所拥有的所有权、占有权、支配权、使用权。产权市场是指人们对于某种资产所拥有的所有权、占有权、支配权、使用权进行有偿转让的场所领域及其有关各方面相互关系的总和。在过去…

js打开本地文件夹_vue + ArcGIS 地图应用系列一:arcgis api本地部署(开发环境)

1. 下载 ArcGIS API for JavaScript 官网地址: https://developers.arcgis.com/javascript/3/ 下载地址:http://links.esri.com/javascript-api/latest-download需要稳定的网络环境注册账号后才可以下载下载完成后解压文件,文件比较大可能需要…

基于几何距离的椭圆拟合

问题 给定离散点集Xi(xi,yi)X_i(x_i,y_i)Xi​(xi​,yi​),我们希望找到最好的椭圆去拟合这些离散点。 方法 通常我们使用最小二乘法求解如下的最优化问题: Min∑i1Nf(xi,E)2Min \sum_{i1}^N f(x_i,E)^2 Mini1∑N​f(xi​,E)2 这里f(xi,E)f(x_i,E)f(xi…

Generate Parentheses

题目 Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n 3, a solution set is: "((()))", "(()())", "(())()", "()(())", "()()()" 方法…

ReportViewer 2010 打印预览,用鼠标快速切换显示比例时报错:存储空间不足,不能处理此命令...

CreateCompatibleDIB 存储空间不足 无法处理此命令 安装 ReportViewer 2010 sp1 即可。转载于:https://www.cnblogs.com/runliuv/p/3640856.html

贪心/二分查找 BestCoder Round #43 1002 pog loves szh II

题目传送门 1 /*2 贪心/二分查找:首先对ai%p,然后sort,这样的话就有序能使用二分查找。贪心的思想是每次找到一个aj使得和为p-1(如果有的话)3 当然有可能两个数和超过p,那么an的值最优,每次还要和…

nohup命令输出日志_逼格高又实用的Linux高级命令,开发运维都要懂

在运维的坑里摸爬滚打好几年了,我还记得我刚开始的时候,我只会使用一些简单的命令,写脚本的时候,也是要多简单有多简单,所以有时候写出来的脚本又长又臭,像一些高级点的命令,比如说Xargs 命令、…

JavaScript中OOP——面向对象中的继承/闭包

前 言 OOP JavaScript中OOP——>>>面向对象中的继承/闭包 1.1面向对象的概念 使用一个子类继承另一个父类,子类可以自动拥有父类的属性和方法。>>> 继承的两方,发生在两个类之间。1.2JS模拟实现继承的三种方式: 首先&am…

js常用字符串函数

这些东西是以前整理的,放到这里,有需要的可以看看~挺全的~ /** * anchor()方法 * 在对象中的指定文本两端放置一个有Name属性的HTML锚点 * strVariable.anchor(anchorString) anchorString为锚点名称 * 它本身不会检查其他的ahchor锚点是否有name指…

c++11中的智能指针

在C11中有四种智能指针,auto_ptr,shared-ptr,unique_ptr和weak-ptr,其中auto_ptr有许多不足之处,在C11中已经建议废弃使用。 1. shared_ptr std::shared_ptr智能指针可以通过共享指向对象的所有权,从而实现…

ubuntu14.04设置静态IP

啊,最近懒惰了,好久没有写博客了。 一般机器启动的时候会自动从DHCP服务器上面获取动态IP地址,这是一件很方便的事情,可以不用手动设置网络相关的蚕参数,但是有时候还是需要机器固定IP地址的。 第一步,编辑…

高中学历python培训靠谱吗_高中学历学完Python就能干人工智能?

最近Python大热,主要是人工智能的热度,昨天后院活动部介绍了一位女网友为男朋友选择Java还是Python,大量的程序员热议,也有人询问如何学习Python,比如这位网友询问高中学历学习Python是不是就能干人工智能。兄弟&#…