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

ptrade 策略重启后如何找回历史交易日志及定位昨日交易ID?

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

问题描述

重启过的交易如何获取到重启前的交易日志?

客户想要找到自己昨天重启的交易,如何定位到具体是哪一个交易ID吗?

解决方案

在ptrade量化交易平台中,策略重启是常见操作。针对重启后获取历史日志和定位交易ID的需求,可以通过以下方法解决:

一、 如何获取重启前的交易日志?

  1. 客户端界面查看:通常ptrade客户端的“运行日志”或“历史日志”面板会保留历史运行记录,您可以根据日期筛选查看重启前的日志。
  2. 自定义日志持久化:为了防止日志丢失,建议在策略中将重要日志写入到研究目录下。可以使用 get_research_path() 获取路径,并结合Python标准 logging 模块将日志输出到本地文件。

二、 如何定位昨天重启的交易ID?

要精准定位昨天的具体交易ID(如 order_idtrading_id),可以通过以下API接口获取历史对账数据:

1. 使用 get_trades_file() 获取对账文件(推荐回测/交易环境)

该接口可导出包含详细交易ID的CSV文件。表头包含:order_id(订单编号)、trading_id(成交编号)等。

def after_trading_end(context, data):
    # 获取对账数据,存放到notebook下的指定目录
    user_data_path = get_trades_file('user_data/data')
    log.info('对账文件已保存至: %s' % user_data_path)

2. 使用 get_deliver() 获取历史交割单(仅限交易环境)

该接口可查询上一个交易日(包含)之前的交割单信息,返回的字典中包含 business_id(成交编号)和 order_id(委托订单号)。

def before_trading_start(context, data):
    # 查询昨天的交割单信息(假设昨天是20231010)
    deliver_info = get_deliver('20231010', '20231010')
    log.info('历史交割单信息: %s' % deliver_info)

通过上述导出的CSV文件或交割单信息,您可以根据标的代码、成交时间、成交数量等维度,轻松比对并定位到昨天具体的交易ID。