3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
遇到这个报错 RuntimeError: 当前客户端未支持此功能,请更新客户端或升级投研版 func:commonControl, error:{ "ErrorID" : 300000, "ErrorMsg" : "function not realize" },通常并不是因为该数据属于 VIP 数据,而是由于以下几个原因导致的:
xtquant 只是一个 Python 接口库,它底层依赖于你本地运行的 QMT 客户端(从你的日志看是“国金证券 QMT 交易端”)提供的数据服务。download_holiday_data() 是在较新版本的 QMT 中才加入或完善的接口。如果你的国金 QMT 客户端版本较老,底层 C++ 核心尚未实现这个函数(即报错中的 function not realize),就会抛出这个错误。
解决方法:联系你的券商客户经理,获取并安装最新版本的 QMT 客户端。
不同券商提供的 QMT 客户端(尤其是 MiniQMT)在打包时,可能会对部分非核心交易接口进行裁剪或屏蔽。报错提示“升级投研版”说明该接口可能被券商划分到了更高级的权限包中,或者在当前普通交易端中未开放。
如果你只是想获取一段日期内的交易日历,通常不需要显式调用 download_holiday_data()。你可以直接尝试使用 get_trading_dates 或 get_trading_calendar,因为基础的交易日历数据通常在客户端启动时就已经同步了。
你可以尝试修改代码,跳过下载步骤,直接获取交易日:
# coding:utf-8
from xtquant import xtdata
import time
# 注释掉这行,跳过显式下载
# xtdata.download_holiday_data()
# 获取交易日
start_time = time.strftime("%Y%m%d") # 起始日期
end_time = time.strftime("%Y") + '1231' # 结束日期
# 尝试直接获取交易日历
try:
# 注意:部分版本中获取交易日历的函数名为 get_trading_dates
result = xtdata.get_trading_dates('SH', start_time, end_time)
print("获取成功:", result)
except Exception as e:
print("获取失败:", e)
总结:
这个报错本质上是本地 QMT 客户端底层不支持该函数调用。建议先尝试直接调用获取交易日的函数;如果依然失败,请务必联系国金证券更新你的 QMT 客户端至最新版本。