3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易平台中,使用 get_individual_entrust 接口获取逐笔委托数据时返回空数据,通常不是代码本身的问题,而是由于行情权限的限制。
根据 ptrade API 文档的明确说明:
逐笔委托、逐笔成交数据需开通 Level2 行情才能获取到数据,否则无数据返回。
如果您使用的是普通的 Level1 行情,调用该接口将无法获取到任何数据,系统会返回 None 或空的数据结构。
None)的判断,以增强策略的健壮性。get_individual_entrust 接口使用注意事项is_dict=True 时,返回的数据类型为 dict,返回 dict 类型数据的速度比返回 DataFrame 或 Panel 类型数据有大幅提升。建议在处理大量数据时使用字典格式。以下是一个包含空值保护和使用字典格式获取逐笔委托数据的示例:
def initialize(context):
g.security = "000001.SZ"
set_universe(g.security)
def before_trading_start(context, data):
g.flag = False
def handle_data(context, data):
if not g.flag:
# 推荐:使用 is_dict=True 返回字典类型数据,速度更快
entrust_dict = get_individual_entrust([g.security], is_dict=True)
# 增加空值判断,防止因无 Level2 行情导致策略报错
if entrust_dict is not None and g.security in entrust_dict:
log.info("成功获取逐笔委托数据:%s" % entrust_dict[g.security])
else:
log.warning("未获取到逐笔委托数据,请检查是否开通 Level2 行情。")
g.flag = True
总结:遇到 get_individual_entrust 返回空数据时,首要排查步骤是确认是否具备 Level2 行情权限。在编写策略时,务必加入对返回值为 None 的异常处理逻辑。