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

为什么 ptrade 回测模块中 get_individual_entrust 无法使用?

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

问题描述

get_individual_entrust在回测模块中无法使用?

为什么在回测模块中使用get_individual_entrust函数报错或无法获取数据?

解决方案

在 ptrade 量化交易平台中,如果在回测模块调用 get_individual_entrust 函数遇到报错或无法获取数据的情况,主要是由该 API 的使用场景限制决定的。

为什么回测中无法使用?

根据 ptrade 官方 API 文档规定:

  1. 使用场景限制get_individual_entrust 函数仅在交易模块可用。它不支持在研究(Research)或回测(Backtest)模块中调用。如果在回测中调用,框架会抛出异常或返回空数据。
  2. 数据源要求:该函数用于获取当日的逐笔委托行情数据。逐笔委托和逐笔成交数据属于高频的 Level2 行情数据,必须在实盘或模拟交易环境中,且账户开通了 Level2 行情权限才能接收到推送。

正确的使用方法

如果您需要处理逐笔委托数据,必须将策略部署在交易模块中,并在盘中(如 handle_datatick_data)进行调用。

示例代码(仅限交易模块):

def initialize(context):
    g.security = "000001.SZ"
    set_universe(g.security)
    g.flag = False

def handle_data(context, data):
    if not g.flag:
        # 获取当前股票池逐笔委托数据(返回 dict 类型速度更快)
        entrust = get_individual_entrust([g.security], is_dict=True)
        if entrust is not None:
            log.info("逐笔委托数据为:%s" % entrust)
        g.flag = True

回测中的替代方案

如果您在回测中需要获取历史行情数据,请使用 get_historyget_price 函数。这两个函数支持获取分钟级(1m, 5m 等)和日线级(1d)的 K 线数据,完全兼容回测模块。

总结get_individual_entrust 是专为实盘/模拟盘交易设计的 L2 高频接口,请勿在回测环境中使用。