使用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去除、替换字符串空格的处理方法
Apr 01 Python
pyqt5的QComboBox 使用模板的具体方法
Sep 06 Python
Python字典创建 遍历 添加等实用基础操作技巧
Sep 13 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
Oct 09 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
Apr 18 Python
Django基础知识 web框架的本质详解
Jul 18 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
Aug 24 Python
如何安装2019Pycharm最新版本(详细教程)
Sep 26 Python
Python基于stuck实现scoket文件传输
Apr 02 Python
python+requests接口自动化框架的实现
Aug 31 Python
python Autopep8实现按PEP8风格自动排版Python代码
Mar 02 Python
pytorch DataLoader的num_workers参数与设置大小详解
May 28 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上传图片、删除图片实现代码
2010/05/12 PHP
php文本转图片自动换行的方法
2013/03/13 PHP
PHP不用递归实现无限分级的例子分享
2014/04/18 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
js继承call()和apply()方法总结
2014/12/08 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
使用axios实现上传图片进度条功能
2017/12/21 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
[49:08]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python判断Abundant Number的方法
2015/06/15 Python
Python可变参数用法实例分析
2017/04/02 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
Python使用遗传算法解决最大流问题
2018/01/29 Python
分分钟入门python语言
2018/03/20 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
python 三元运算符使用解析
2019/09/16 Python
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
Java程序员综合测试题
2014/04/25 面试题
土木工程毕业生推荐信
2013/10/28 职场文书
小学生期末自我鉴定
2014/01/19 职场文书
售房委托书
2014/08/30 职场文书
店铺转让协议书(2014版)
2014/09/23 职场文书
学校运动会广播稿范文
2014/10/02 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
Nginx进程管理和重载原理详解
2021/04/22 Servers
《艾尔登法环》发布最新「战技」宣传片
2022/04/03 其他游戏