🚀 AI 一键生成 ptrade 策略代码
立即体验

PTrade 如何配置策略报错邮件提醒?使用 set_email_info 实现自动化监控

ptrade | 发布时间: 2026/7/23
以下内容由 EasyQuant 生成。

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: PTrade 监控与告警:使用 set_email_info 配置策略运行异常邮件提醒

Question: 如何在 ptrade 中设置邮件信息(set_email_info),以便在策略报错终止时自动接收提醒邮件?

解决方案

PTrade 监控与告警:使用 set_email_info 配置策略运行异常邮件提醒

在实盘和模拟盘运行量化策略时,因网络波动、数据异常或柜台报错等原因导致策略异常终止是常见风险。为了及时掌握策略状态并进行人工干预,可以通过 PTrade 提供的 set_email_info 函数设置邮件告警功能。当策略运行出现报错并终止时,系统会自动向指定的邮箱发送提醒邮件。


一、set_email_info 函数说明

set_email_info 仅在交易模块可用。调用后,系统会注册邮箱配置信息,在策略抛出异常导致进程终止时触发邮件发送。

1. 函数签名与参数

set_email_info(email_address, smtp_code, email_subject)
  • email_address (str):邮箱地址(发送方与接收方保持一致)。目前 PTrade 平台仅支持配置 QQ 邮箱
  • smtp_code (str):邮箱的 SMTP 授权码(非邮箱登录密码,需在 QQ 邮箱设置中开启 POP3/SMTP 服务并生成)。
  • email_subject (str):自定义提醒邮件的主题。

2. 返回值

  • bool:设置成功返回 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

三、配置与使用注意事项

  1. 券商环境权限支持
    使用该函数前,请务必咨询所在券商的技术支持,确认当前 PTrade 实盘/模拟盘环境是否开放了外网 SMTP 邮件发送权限。
  2. 授权码生成
    smtp_code 参数填入的是 QQ 邮箱设置中“账户 - POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”开启后生成的16位授权码,而非 QQ 账号的登录密码。
  3. 仅限交易模块
    set_email_info 仅在交易/模拟盘环境生效,在研究或回测模块调用不会触发实际邮件推送。
  4. 结合策略持久化与重拉配置
    为避免服务端升级或重启引发多次异常告警,可配合 set_parameters(server_restart_not_do_before="1") 等运行参数对策略运维逻辑进行综合精细化管理。