当前位置: 首页 > 后端技术 > Python

构建定量系统-还需要关注市场吗?远程提醒您下单

时间:2023-03-26 14:45:36 Python

我们量化交易的目的就是让程序自动运行策略,让您在电脑屏幕前解放自我。当交易信号产生或出现异常时,需要通知相关人员,即实现远程提醒功能。解决方法有微信、短信、邮件等形式,这里介绍Email是一种比较有效的提醒方式。发送邮件的核心是SMTP(SimpleMailTransferProtocol)协议,它是一套从源地址到目的地址的邮件传输规则。Python真的无所不能。它只是简单地封装了SMTP。您只需使用两个模块即可轻松发送纯文本电子邮件、HTML电子邮件和带附件的电子邮件。哪两个模块?Python内置的email模块负责构建邮件,另外一个smtplib模块负责发送邮件。常规流程,首先导入所有涉及的模块,如下:fromemailimportencodersfromemail.headerimportHeaderfromemail.mime.textimportMIMETextfromemail.utilsimportparseddr,formataddrimportsmtplib首先使用MIMEText()构造一个大多数简单的纯文本邮件,其中第一个参数是邮件的文本,第二个参数是内容类型,例如'plain'表示纯文本邮件,'html'表示HTML邮件。在创建的邮件对象中,需要添加From、To、Subject等属性,否则不是完整的邮件。例如,邮件没有主题,发件人姓名是匿名的,很明显邮件不在收件人之中。一个典型的例程如下:#发送明文邮件msg=MIMEText('orderattention','plain','utf-8')#sendemailaddressmsg['From']=='senderEmailaccount'#收件箱地址msg['To']='收件人邮箱帐号'#Subjectmsg['Subject']="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()这里的密码是比较容易混淆的地方。不是邮箱登录密码,而是授权码。第三方客户端登录QQ邮箱时需要授权码,包括其他邮箱,如126、163邮箱等。授权码可以看作是一个专用密码,适用于登录以下服务:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。如何设置?以QQ邮箱为例,我们在QQ邮箱的帮助中心找到了一个方法。进入个人邮箱页面的【设置】->【账户】页面找到入口,然后开启POP3/IMAP/SMTP服务。开启后有验证和密码保护链接。您需要发送一条短信,然后您将获得授权码。在第三方客户端密码栏输入16位授权码进行验证。这样邮件就发送成功了,我测试了已经提醒下单的邮件!!!您也可以在手机上接收电子邮件!关于以上内容的更多讨论,欢迎大家关注公众号【元宵大师带你用Python量化交易】!!