🚀 AI 一键生成 ptrade 策略代码

如何在 PTrade 中编写同时兼容回测和实盘的策略代码?

ptrade | 发布时间: 2025/11/25
以下内容由 EasyQuant 生成。

问题描述

我的策略里有些代码只希望在实盘运行时执行,在回测的时候不执行,应该怎么写判断条件?

解决方案

在 PTrade 中,你可以使用 is_trade() 函数来判断当前运行环境是实盘还是回测。

函数说明

  • is_trade()
    • 返回 True:表示当前处于 实盘交易 模式。
    • 返回 False:表示当前处于 回测 模式。

代码示例

你可以在 initializehandle_databefore_trading_start 等函数中使用该判断逻辑。

def initialize(context):
    # 初始化代码
    g.security = '600570.SS'
    set_universe(g.security)

def handle_data(context, data):
    # 正常的策略逻辑
    # ...
    
    # 判断是否为实盘环境
    if is_trade():
        # 这里写只在实盘运行的代码
        # 例如:发送微信通知、邮件报警、或者调用实盘特有的接口
        log.info("当前是实盘交易环境,执行实盘特定逻辑")
        # send_email(...) 
    else:
        # 这里写只在回测运行的代码(可选)
        log.info("当前是回测环境")

常见应用场景

  1. 消息推送:只在实盘成交时发送微信或邮件通知,避免回测时产生大量骚扰信息。
  2. 数据获取:实盘可能需要获取某些实时特有数据,而回测使用历史数据。
  3. 文件读写:实盘可能需要读取特定的本地配置文件,而回测使用默认配置。