使用Python写一个量化股票提醒系统


Posted in Python onAugust 22, 2018

大家在没有阅读本文之前先看下python的基本概念,

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。

Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。

像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。

本文是小兵使用万能的Python写一个量化股票系统!下面是一个小马的迷你量化系统。

使用Python写一个量化股票提醒系统 

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

  • 实时获取股票数据
  • 连接邮件服务器
  • 预警配置管理
  • 监控数据并发送邮件

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

01.

实时获取股票价格

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

使用Python写一个量化股票提醒系统 

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获取数据:

def query_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

  def get_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). 连接邮件服务器

使用Python写一个量化股票提醒系统 

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

2).构造邮件内容

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

使用Python写一个量化股票提醒系统 

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

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

使用Python写一个量化股票提醒系统 

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

03.

预警系统

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

setting 文件:

{
  "high_price": 15,
  "low_price": 10
}

1).死循环监控数据

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

使用Python写一个量化股票提醒系统 

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

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

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

使用Python写一个量化股票提醒系统 

好了,上面是 一个简单的股票实时提醒程序 ,利用了一些Python自带的邮件库和一个金融库,算是一个综合小练习!

总结

以上所述是小编给大家介绍的使用Python写一个量化股票提醒系统,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python 流程控制实例代码
Sep 25 Python
Python实现字典依据value排序
Feb 24 Python
解析Python中的__getitem__专有方法
Jun 27 Python
vue.js实现输入框输入值内容实时响应变化示例
Jul 07 Python
Python实现将通信达.day文件读取为DataFrame
Dec 22 Python
树莓派与PC端在局域网内运用python实现即时通讯
Jun 22 Python
python 中pyqt5 树节点点击实现多窗口切换问题
Jul 04 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
在OpenCV里使用Camshift算法的实现
Nov 22 Python
Python中sys模块功能与用法实例详解
Feb 26 Python
python网络编程之五子棋游戏
May 14 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 03 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
Aug 22 #Python
用Python将mysql数据导出成json的方法
Aug 21 #Python
windows下python 3.6.4安装配置图文教程
Aug 21 #Python
Python多进程与服务器并发原理及用法实例分析
Aug 21 #Python
Python socket实现的简单通信功能示例
Aug 21 #Python
Python多进程原理与用法分析
Aug 21 #Python
python安装twisted的问题解析
Aug 21 #Python
You might like
为查询结果建立向后/向前按钮
2006/10/09 PHP
phpfans留言版用到的install.php
2007/01/04 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
去除链接虚线全面分析总结
2006/08/15 Javascript
Firefox div高度自适应
2009/04/28 Javascript
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
Javascript 构造函数详解
2014/10/22 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
2015/09/23 Javascript
Highcharts使用简例及异步动态读取数据
2015/12/30 Javascript
JS不完全国际化&本地化手册 之 理论篇
2016/09/27 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
vue-cli配置文件——config篇
2018/01/04 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
使用jQuery实现购物车
2020/10/29 jQuery
关于javascript中的promise的用法和注意事项(推荐)
2021/01/15 Javascript
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
Python使用django获取用户IP地址的方法
2015/05/11 Python
python 接口返回的json字符串实例
2018/03/27 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
Python语言快速上手学习方法
2018/12/14 Python
Django用户认证系统 User对象解析
2019/08/02 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
New Balance澳大利亚官网:运动鞋和健身服装
2019/02/23 全球购物
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
2014年平安建设工作总结
2014/11/19 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers