我最成功的一笔投资!
大家好,我是 Jack。
上篇教程,给大家讲解了一个 ETF 动量轮动的策略。
一些小伙伴,看到高收益,表示自己也要实战试一试。
真可谓是对我充满信心:
这里,必须要提醒下风险,先好好学技术,学透之后,再下手不迟。不要盲目跟!
市场一直都在,真不用着急。
我最成功的一笔投资,不是买了哪支股票!而是自学了很多有趣的技术!
最好的投资,就是投资自己。
github 代码提交起来!等有了一定技术的积累,才能顺利采摘成功的“果实”。
OK,接下来,给大家讲解下。
如何做到视频中的,后台运行策略,定时给 QQ 邮箱发送操作邮件。
每天开盘前,看看微信就行了。
部署交易策略
想要实现这个功能,主要用到两个库
smtplib
和 apscheduler
,前者负责发送邮件,后者负责定时。发送邮件
发送邮件,需要使用电子邮件发送协议
STMP
。放到我们的场景,就是我们部署好策略的服务器,发送邮件到,我们的 QQ 邮箱。
而
python
的smtplib
提供了一种很方便的途径发送电子邮件,它对STMP
协议进行了简单的封装。这里可以使用第三方 STMP 服务发送,我用的是阿里云的邮件服务。
更简单一些的,可以直接用 QQ 邮箱。
这里使用了 QQ 邮箱(你也可以使用 163,Gmail等)的 SMTP 服务,需要做以下配置:
QQ 邮箱通过生成授权码来设置密码:
QQ 邮箱 SMTP 服务器地址:smtp.qq.com,ssl 端口:465。
以下实例你需要修改:
发件人邮箱(你的QQ邮箱) 密码(生成的授权码) 收件人邮箱(可发给自己)
这些都准备好,按照这个模版,配置下就行了,创建 sendemail.py 文件,编写如下代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
from datetime import datetime
import time
my_sender = '***@qq.com'# 发件人邮箱账号
my_pass = '**'# 发件人邮箱密码
my_user = '***@qq.com'# 收件人邮箱账号(这里发自己)
defmail(message):
ret = True
try:
current_dt = time.strftime("%Y-%m-%d", time.localtime())
# current_dt = datetime.strptime(current_dt, '%Y-%m-%d')
title = current_dt.split(" ")[0] + "投资操作"
msg = MIMEText(message,'plain','utf-8')
msg['From'] = formataddr(["**", my_sender]) # 发件人昵称
msg['To'] = formataddr(["**", my_user]) # 接收人昵称
msg['Subject'] = title # 邮件的主题
server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器,端口是465
server.login(my_sender, my_pass) # 发件人邮箱账号、邮箱密码
server.sendmail(my_sender, [my_user,], msg.as_string()) # 发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit() # 关闭连接
except Exception as e: # 如果 try 中的语句没有执行,则会执行下面的 ret = False
ret = False
print(e)
return ret
if __name__ == "__main__":
ret = mail("Test")
if ret:
print("邮件发送成功")
else:
print("邮件发送失败")
修改好配置,使用如下指令运行:
python sendemail.py
如果成功,你会收到一封内容为 Test 的邮件。
定时发送
这个就更简单了,直接用
apscheduler
即可。#-*- coding:utf-8 -*-
import time
from job import run_today
from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()
# 时间: 周一到周五每天早上9点25, 执行run_today
sched.add_job(run_today, 'cron', day_of_week='mon-fri', hour=9, minute=25)
sched.start()
上述代码的意思就是,周一到周五,每天早上
9
点25
运行下,run_today 这个函数。run_today 就是封装好的,量化交易策略,执行这个函数就是运行一次量化交易策略,并发送结果邮件。
整体代码
代码有点长,这里就不全贴了,我将所有代码放到了 github 上。
一共 4 个文件:
run.sh 运行脚本,直接启动这个即可运行程序 main.py 定时任务主函数 sendmail.py 邮件配置 job.py 例行运行的任务
代码地址:https://github.com/Jack-Cherish/quantitative/tree/main/lesson2
修改好 job.py 和 sendmail.py 文件,运行脚本即可。
sh run.sh
可以将代码放到服务器上运行,比如阿里云服务器,腾讯云服务器。
用最便宜的配置就行。
然后配置个 Anaconda 环境,就行了,环境配置可以参考这篇文章。
总结
量化交易策略和服务部署,教程都写完了。
后面有机会,我会分享更多的量化交易策略,欢迎持续关注。
股市有风险,入市需谨慎!
我是 Jack,我们下期见!
推荐阅读
关键词
邮件
代码
发送邮件
服务器
qq.com
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。