🚀 AI 一键生成 ptrade 策略代码

ptrade量化研究调用get_history报错NameError: name 'get_history' is not defined的解决方法

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

问题描述

量化研究调用get_history取数据报错:NameError : name 'get_history' is not defined。

/

解决方案

问题分析

在 ptrade 量化平台中调用 get_history 函数时遇到 NameError: name 'get_history' is not defined 错误,通常是由以下几个原因引起的:

  1. 运行环境错误get_history 是 ptrade 平台内置的 API 函数。如果您在本地的 Python 环境(如 PyCharm、VSCode 或本地的 Jupyter Notebook)中运行这段代码,Python 解释器无法识别该函数,从而抛出未定义错误。
  2. 研究环境未导入 API:在 ptrade 的“研究”模块(Jupyter Notebook)中,有时需要显式导入 ptrade 的 API 库才能使用这些内置函数,或者由于内核重启导致内置变量丢失。
  3. 拼写错误:检查函数名是否拼写正确,Python 对大小写敏感。

解决方法

1. 确认运行环境

请确保您的代码是在 ptrade 平台客户端内的“研究”、“回测”或“交易”模块 中运行的。ptrade 的 API 无法脱离其官方客户端环境在本地独立运行。

2. 在研究环境中导入 API

如果您确认是在 ptrade 的“研究”模块中运行,但仍然报错,可能是因为当前 Notebook 的内核没有自动注入 ptrade API。您可以尝试在代码单元格的顶部添加以下导入语句(具体导入路径请参考您所在券商 ptrade 版本的说明,通常平台会自动注入,若丢失可尝试重启 Kernel):

# 尝试重启 Jupyter Notebook 的 Kernel
# 或者在某些版本中可能需要显式导入(通常不需要,重启 Kernel 即可恢复)

建议操作:点击研究环境菜单栏的 Kernel -> Restart & Clear Output,然后重新运行代码。

3. 正确的使用示例

确保在正确的上下文中使用 get_history。以下是在研究环境中获取历史数据的标准示例:

# 获取恒生电子(600570.SS)过去5天的日线收盘价
history_data = get_history(count=5, frequency='1d', field='close', security_list='600570.SS')
print(history_data)

4. 检查多线程调用限制

根据 ptrade 官方文档提示:get_history 接口不支持多线程同时调用。如果在 run_dailyrun_interval 等函数中与 handle_data 同一时刻调用,可能会导致异常。请确保您的调用逻辑是串行的。

如果以上方法仍未解决问题,建议检查您所使用的 ptrade 客户端版本是否过低,或者联系所在券商的 ptrade 技术支持确认该研究环境的 API 权限是否正常开启。