3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在实盘和模拟盘运行量化策略时,因网络波动、数据异常或柜台报错等原因导致策略异常终止是常见风险。为了及时掌握策略状态并进行人工干预,可以通过 PTrade 提供的 set_email_info 函数设置邮件告警功能。当策略运行出现报错并终止时,系统会自动向指定的邮箱发送提醒邮件。
set_email_info 仅在交易模块可用。调用后,系统会注册邮箱配置信息,在策略抛出异常导致进程终止时触发邮件发送。
set_email_info(email_address, smtp_code, email_subject)
str):邮箱地址(发送方与接收方保持一致)。目前 PTrade 平台仅支持配置 QQ 邮箱。str):邮箱的 SMTP 授权码(非邮箱登录密码,需在 QQ 邮箱设置中开启 POP3/SMTP 服务并生成)。str):自定义提醒邮件的主题。True,设置失败返回 False。以下是一个在 initialize 初始化阶段配置邮件提醒,并在盘前阶段模拟触发错误的完整 PTrade 策略结构:
def initialize(context):
# 设置操作标的
g.security = "600570.SS"
set_universe(g.security)
# 配置报错提醒邮件信息 (请替换为实际的 QQ 邮箱和 SMTP 授权码)
success = set_email_info("your_qq_number@qq.com", "your_smtp_authorization_code", "【PTrade量化-策略交易异常终止提醒】")
if success:
log.info("异常提醒邮件配置成功!")
else:
log.error("异常提醒邮件配置失败,请检查参数或咨询券商。")
def before_trading_start(context, data):
# 示例:模拟策略出现不可逆的异常导致终止
# 在实际运行中,如果 try...except 未捕获异常并抛出到最高层,系统将触发邮件发送
# raise BaseException("模拟策略运行异常中断")
pass
def handle_data(context, data):
pass
smtp_code 参数填入的是 QQ 邮箱设置中“账户 - POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”开启后生成的16位授权码,而非 QQ 账号的登录密码。set_email_info 仅在交易/模拟盘环境生效,在研究或回测模块调用不会触发实际邮件推送。set_parameters(server_restart_not_do_before="1") 等运行参数对策略运维逻辑进行综合精细化管理。