使用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 代码效率的方法
Jul 03 Python
python rsa 加密解密
Mar 20 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 Python
浅谈Python的list中的选取范围
Nov 12 Python
python实现邮件发送功能
Aug 10 Python
Python(PyS60)实现简单语音整点报时
Nov 18 Python
python画蝴蝶曲线图的实例
Nov 21 Python
PyCharm 专业版安装图文教程
Feb 20 Python
利用Python批量识别电子账单数据的方法
Feb 08 Python
Python Pygame实现俄罗斯方块
Feb 19 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
Feb 25 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
Jun 09 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
PHP下10件你也许并不了解的事情
2008/09/11 PHP
解析CodeIgniter自定义配置文件
2013/06/18 PHP
解析thinkphp中的导入文件标签
2013/06/20 PHP
9条PHP编程小知识及易犯的小错误
2015/01/22 PHP
PHP读取txt文本文件并分页显示的方法
2015/03/11 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
关于js注册事件的常用方法
2013/04/03 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
使用clipboard.js实现复制功能的示例代码
2017/10/16 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
vue element-ui之怎么封装一个自己的组件的详解
2019/05/20 Javascript
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
原生JavaScript之es6中Class的用法分析
2020/02/23 Javascript
Python内置函数的用法实例教程
2014/09/08 Python
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
python中字符串前面加r的作用
2015/06/04 Python
详解Python Socket网络编程
2016/01/05 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
Opencv python 图片生成视频的方法示例
2020/11/18 Python
html5 worker 实例(一) 为什么测试不到效果
2013/06/24 HTML / CSS
会计自我鉴定范文
2013/10/06 职场文书
装饰资料员岗位职责
2013/12/30 职场文书
公司经理聘任书
2014/03/29 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书