3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
出现 NameError: name 'get_trade_days' is not defined 报错的原因是没有导入聚宽的数据包 jqdata。
在 JoinQuant 的回测环境中,系统通常会自动加载一些常用的 API 函数;但是在**研究模块(Jupyter Notebook)**中,所有的 API 函数都需要您显式地导入后才能使用。
在您的代码最上方(或者在调用该函数所在的 Cell 的最上方),添加以下导入语句:
from jqdata import *
# 导入聚宽数据包,这是解决报错的关键
from jqdata import *
def get_weights(index_id, start, end):
weight_dic = {}
# 现在可以正常调用 get_trade_days 了
tradeList = get_trade_days(start_date=start, end_date=end)
for trade in tradeList:
weight_dic[trade] = get_index_weights(index_id, trade)['weight'].values
return weight_dic
# 获取权重
index_id = '000300.XSHG'
start = '2023-01-01'
end = '2023-01-31'
weight_dic = get_weights(index_id, start, end)
print(weight_dic)
总结: 在研究模块中,只要用到获取数据的 API(如 get_trade_days, get_index_weights, get_price 等),请务必确保已经执行了 from jqdata import *。