如何在产生新K线时执行邮件报警

Author: peter8898, Created: 2021-05-14 15:26:06, Updated: 2021-05-14 15:28:30

刚刚接触python程序化交易,真正的小小白。 准备写一个简单的邮件报警程序,辅助日常交易。 策略思路: 比较上一根K线收盘价和开盘价大小,如果收盘价大于开盘价,则发出做多邮件报警,反之则发出做空报警。

现在写好了,可以运行发出正确的邮件报警,但是遇到一个问题: 只能执行一次邮件报警,当出现新的K线时,不能持续触发条件执行动作。

我的想法: 能不能用K线的index值做标记,当index新增时,再次执行策略。

下面是代码情况,各位大神帮帮忙: import pandas from email.header import Header import smtplib from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication from email.mime.text import MIMEText import email.message

mark = 0

def init(ContextInfo): #获取当前主图标的 ContextInfo.tradefuture = ContextInfo.stockcode+"."+ContextInfo.market #设定标的池,即要操作的标的 ContextInfo.set_universe([ContextInfo.tradefuture]) print(ContextInfo.get_universe())

def handlebar(ContextInfo): close = ContextInfo.get_history_data(1, ‘1d’, ‘close’) open = ContextInfo.get_history_data(1, ‘1d’, ‘open’) index = ContextInfo.barpos print(close,open,index) global mark if ‘close’ > ‘open’ and mark != 1: SendEmail1() mark = 1

if ‘close’ <‘open’ and mark != 1: SendEmail2() mark = 1

#判断卖出条件满足则发出卖出邮件报警 def SendEmail1(): sender = ‘email address’ receiver = ‘email address’ subject = Header() mail_host = ‘smtp.qq.com’ mail_user = ‘name’ mail_pass = ‘password’ message = MIMEText(‘请注意期货交易提醒:日K线级别,阳线做多’, ‘plain’, ‘utf-8’) …后面发送邮件代码省略了


更多内容