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

PTrade 服务器重启后策略重复下单怎么办?如何配置 set_parameters 防范?

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

问题描述

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

Title: PTrade 实盘避坑:使用 set_parameters 防止服务器重启导致的重复委托

Question: PTrade 服务器重启后策略重复下单怎么办?如何配置 set_parameters 防范?

解决方案

一、为什么 PTrade 服务器重启会导致重复下单?

在 PTrade 实盘交易运行过程中,若遇到券商服务器升级、环境重启或网络中断后自动拉起,PTrade 引擎会重新触发策略流程。此时容易引发重复下单的主要原因包括:

  1. 重新执行初始化函数:策略拉起时,框架会先执行 initialize(context) 函数,随后再恢复持久化数据。如果在 initialize 中初始化了状态标识(如 g.flag = False),系统保存的持久化变量可能会被初始值覆盖(或者在未恢复前触发交易逻辑)。
  2. 重新调用 before_trading_start:默认情况下,环境重启重拉交易时会重新触发 before_trading_start 盘前函数。若在该函数中编写了下单或重置交易状态的逻辑,极易导致重复报单。
  3. 未序列化的私有变量重置:全局变量 g 中以双下划线 __ 开头的变量或不可序列化的对象不会被持久化,重启后会重置为初始状态。

二、核心解决方案:合理配置 set_parameters

为了防范重启带来的重复委托风险,PTrade 提供了 set_parameters 接口,可以在 initialize 阶段针对服务器重启行为进行针对性配置。

关键配置项说明

  1. **`not_restart_trade=