熬了一晚上,小白用Python写了一个股票提示系统
码农小马七夕节去相亲了,见了一个不错的姑娘,长的非常甜美!聊着聊着很投缘!通过详情人理解到,对方也很满意~~想着自己单身多年的生活就要结束啦,心里满是欢喜,美美哒!但是忽然想起年初还有几万块在股市里面,一直被套着,心里难受!
为了以后能多一点娶老婆的本钱,日子过的好一点,怎样咬着牙也要把股票的钱捞回来,这些可都是辛苦加班赚来的呀!怎样办呢,于是一咬牙,干脆用万能的Python写一个量化股票系统!
image
这个小迷小量化系统,麻雀虽小但是五脏俱全,我们今天先从实时提示这个模块做起,提示系统分下面几个部分:
-实时获取股票数据
-连接邮件服务器
-预警配置管理
-监控数据并发送邮件
希望通过实时提示,来提高交易的收益率,试试看,万一有用呢,反正写代码对码农来说,so easy!
一.实时获取股票价格
为了更精确的获取股票的价格,我们这里用比较有名的金融库tushare来获取,里面封装了大量的股票的数据Api,非常好用!
image
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]])二.邮件系统
简单实时提示系统,我们用邮件,比方你的qq邮箱,是可以实时的收到少量邮件提示的信息,我们这里用Python自带的 SMTP和EMAIL模块解决:
1). 连接邮件服务器
image
为了方便扩展和复用,也用一个类来封装邮件server!构造少量邮件服务器的地址和密码,而后连接即可以了,非常简单。
2).构造邮件内容
服务器连接好了,之后我们需要发送邮件,需要写一个邮件标题和内容,比方 xx股票,现在价格多少之类的。
image
1).为了更好的封装数据,用类装饰器对titel和content进行封装,这样外边无法直接访问这两块内容。
2).mail类会初始化少量信息,比方要发送到邮件地址,而且要把前面构造好的SMTP服务器对象传进来,方便发送邮件。
image
3).初始化一个MIMEText对象,填充少量邮件的内容比方from,to,subject等等。为了有时间性,我们在邮件的开头加一个时间戳。
三.预警系统
我们需要有一个配置文件,里面不停的修改我们对股票的价格的设置,比方到了你的止损或者者止盈的位置,或者者到了你的少量量化策略的地方,需要提示你注意等等。这里我们只是简单的说明,只写最大和最小的股价预警,示例一下:
setting 文件:
{
“high_price”: 15,
“low_price”: 10
}
1).死循环监控数据
我们启动一个线程,用一个死循环来不停的从队列里面获取股票的数据,而后进行少量监听的逻辑判断,先看一下核心代码:
image
由于股票有交易时间,我们这里简单粗暴的让程序只在交易时间运行,当然假如要把程序放在远端服务器上的话,需要进一步优化,不然每一天都要启动一下!
死循环里面会不停的读区预警设置里面的股价的涨到多少最高价和最低价,一旦触达这个价格,立刻发送邮件提示!
写了这么久,看一下效果吧:
image
好了,上面是一个简单的股票实时提示程序,利用了少量Python自带的邮件库和一个金融库,算是一个综合小练习!,完成一个量化系统,还有两个重要的功能没有完成,需要继续加油,欢迎大家留言探讨。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 熬了一晚上,小白用Python写了一个股票提示系统