🚀 AI 一键生成 ptrade 策略代码

Ptrade的回测与实盘策略是运行在本地还是服务器?关闭客户端后还能继续运行吗?

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

问题描述

Ptrade的回测程序是在本地运行还是远程服务器? 关闭ptrade后原来运行的回测还可以继续运行吗?

/

解决方案

核心解答

Ptrade 的回测程序和实盘交易程序都是在券商提供的远程服务器上运行的,而不是在您的本地电脑上。

因此,关闭本地的 Ptrade 客户端后,原来已经提交并正在运行的回测任务或实盘策略还可以继续运行,不会因为您关闭了软件或电脑而中断。


详细原理解析

1. Ptrade 的运行架构

Ptrade 量化交易平台采用的是客户端-服务端架构。您在本地电脑上安装的 Ptrade 软件(或网页端)主要承担代码编写、任务提交、结果展示和日志查看的功能。当您点击“运行回测”或“开启实盘”时,您的策略代码会被打包发送到券商机房内部的量化服务器引擎中执行。

2. 关闭客户端对回测的影响

  • 任务托管:一旦回测任务提交成功,服务器就会接管计算工作。服务器会调取历史行情数据,按照您设定的周期(日线、分钟线等)执行 handle_data 等函数。
  • 结果查看:关闭客户端后,服务器端的计算仍在继续。当您再次打开 Ptrade 客户端时,可以在回测历史或相关记录中查看已经运行完毕的回测结果和生成的对账单文件(如通过 get_trades_file 生成的文件)。

3. 关闭客户端对实盘的影响

  • 云端盯盘:实盘策略同样运行在券商服务器上。这意味着您不需要保持电脑 24 小时开机。策略会在交易时间内自动触发 before_trading_starthandle_datatick_data 等事件,并直接向柜台发送委托指令。
  • 断线无忧:本地网络断开或客户端关闭,完全不影响实盘策略的自动交易逻辑。

进阶注意事项:服务器重启与持久化

虽然关闭本地客户端不影响策略运行,但您需要注意券商服务器端的环境重启问题。根据 Ptrade API 文档,服务器在某些情况下(如周末维护、夜间升级)可能会重启,这会对策略产生影响:

  1. 变量丢失与持久化:服务器重启会导致内存中的全局变量(g 对象中的变量)丢失。为了保证策略逻辑连贯(例如记录持仓天数),必须使用 Python 的 pickle 模块将关键数据保存到本地文件中,并在 initialize 中读取恢复。
  2. 重复执行问题:服务器环境重启拉起交易时,框架会先执行 initialize 函数,接着默认会执行 before_trading_start。为了避免重复委托或变量被错误初始化,您可以在 initialize 中使用 set_parameters 函数进行配置:
    • set_parameters(not_restart_trade="1"):设置交易时间段若服务器重启,不自动执行重新拉起本交易。
    • set_parameters(server_restart_not_do_before="1"):设置若服务器重启导致重拉交易,不重复执行 before_trading_start 函数。

总结:您可以放心地关闭 Ptrade 客户端,让策略在券商服务器上“云端”运行。但编写策略时,务必做好数据的持久化处理和异常保护机制。