欢迎大家订阅《教你用 Python 进阶量化交易》专栏!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外已陆续推出一些手记来辅助同学们学习本专栏内容,目前推出的扩展篇链接如下:
第一篇《管理概率==理性交易》
第二篇《线性回归拟合股价沉浮》
第三篇《最大回撤评价策略风险》
第四篇《寻找最优化策略参数》
第五篇《标记A股市场涨跌周期》
第六篇《Tushare Pro接口介绍》
第七篇《装饰器计算代码时间》
第八篇《矢量化计算KDJ指标》
第九篇《移植量化交易小工具》
第十篇《统计学预测随机漫步》
第十一篇《TA-Lib库扩展介绍》
第十二篇《股票分笔数据跨周期处理》
第十三篇《TA-Lib库量价指标分析》
第十四篇《ATR在仓位管理的应用》
第十五篇《扒一扒量化回测常见陷阱》
第十六篇《量化回测工具更新版1》
第十七篇《GUI控件在回测工具上的添加》
第十八篇《文本框显示Tushare股票信息》
第十九篇《建立基于TA-Lib的指标库》
第二十篇《爬虫抓取股票论坛帖子》
第二十一篇《欧奈尔RPS指标的计算》
第二十二篇《GUI显示股票RPS-TOP10》
第二十三篇《Markowitz实现股票最优组合》
第二十四篇《详解wxPython之Toolbar的使用》
第二十五篇《GUI工具实现excel功能》
第二十六篇《自定义量化交易回测框架》
第二十七篇《股票数据的除权和复权》
我们用量化交易的目的就是让程序全自动地去跑策略,这样就可以解放电脑屏幕前的你。当产生交易信号的时候或者出现异常的时候,得需要通知到相关人员才行,也就是说要实现一种远程提醒的功能,解决方案有用微信、短信、邮件之类的方式,这里我们介绍下邮箱这种相对有效的方式来提醒。
发送邮件和核心是SMTP(Simple Mail Transfer Protocol)协议,它是一组用于由源地址到目的地址的邮件传输规则。
Python真的是什么都能做,它对SMTP进行了简单的封装,只需用到两个模块,就可以轻松实现发送纯文本邮件、HTML邮件以及带附件的邮件。
哪两个模块呢?Python内置的email模块负责构建邮件,另一个smtplib模块负责发送邮件。
常规的流程,先把涉及到的模块全部导入进来,如下所示:
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import smtplib
首先用MIMEText()构造一个最简单的纯文本邮件,其中第一个参数是邮件正文,第二个参数是内容的类型,比如’plain’表示纯文本邮件,'html’表示HTML邮件。
创建的邮件对象中,要添加From、To和Subject这些属性,否则就不是一封完整的邮件,比如邮件没有主题,发件人的名称为匿名,明明收到了邮件却提示不在收件人中。典型的例程如下所示:
# 发送纯文本格式的邮件
msg = MIMEText('order attention','plain','utf-8')
#发送邮箱地址
msg['From'] = ='发件人邮箱账号'
#收件箱地址
msg['To'] ='收件人邮箱账号'
#主题
msg['Subject'] = "主题"
再来说说负责发送邮件smtplib模块,主要是用smtplib.SMTP()类连接SMTP服务器,然后发送邮件。这个类有几个常用的方法.
set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息。login()方法用来登录SMTP服务器,sendmail()方法发邮件,可以传入一个列表一次发给多个人,邮件正文使用as_string()把MIMEText对象变成str。
典型例程如下所示:
server = smtplib.SMTP(smtp_server, 25)
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
这里的password是个比较容易混淆的地方。不是邮箱登陆的密码,而是授权码。
第三方客户端登录QQ邮箱时是需要授权码的,包括其他邮箱也都一样,比如126、163邮箱等等。授权码可以认为是一个专用密码,适用于登录以下服务:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。
如何设置呢?以QQ邮箱为例,我们在QQ邮件的帮助中心找到了方法。
在个人邮箱页面进入[设置] -> [帐户] 页面找到入口,然后把POP3/IMAP/SMTP这几个服务开启。
开启的时候有验证密保环节,需要发送短信,接着就获取到授权码,在第三方客户端的密码栏里面输入这16位授权码进行验证即可。
这样一来邮件就发送成功了,测试了下已经得到下单提醒的邮件了!!!手机邮箱也一样可以收到哦!
关于以上内容更多的探讨欢迎大家加入专栏交流群。更多的量化交易内容欢迎大家订阅专栏阅读!!
共同学习,写下你的评论
评论加载中...
作者其他优质文章