前言
今天想要和大家分享的是使用get_fundamentals函数获取财务数据,但是在获取688开头的代码的时候就会显示获取失败!
一、问题描述
通过get_fundamentals获取一些代码的财务数据,前面的代码能获取到,取到688开头的代码就会获取失败?提示:获取688XXX.SS数据为空,请查看争取拿代码是否正确或联系管理员!
二、解决方案
1、使用get_fundamentals获取客户报错代码的财务数据,发现都可以正常获取到;
2、客户策略是遍历32只代码获取到688开头的会获取失败,尝试使用客户代码在客户运行的环境获取40只代码并且包含688开头的代码的财务数据,发现能正常获取到,并且在客户反馈的盘前9:15获取不到时也是能正常获取到的;
3、后续客户反馈有时能获取到688开头代码的财务数据,有时获取不到。
这是因为get_fundamentals接口为http在线获取,该接口可能会因网络拥堵等原因导致应答失败的情况;
同时该接口也有流量限制,每秒不得调用超过100次,单次最大调用量是500条数据,每一条数据的定义为:一个股票对应一个表的一个字段,相当于最大不超过5万条。
所以是超过了流量限制或者网络拥堵,导致有时获取到688开头代码的财务数据为空。
后续量化会对get_fundamentals接口取数进行优化,对财务数据进行落地。
目前客户可以在财务数据返回为空时尝试多次获取,代码示例如下:
#获取财务数据尝试5次
while count < 5:
if get_df(context):
log.info('本次获取财务数据成功')
flag = True
break
else:
count +=1
time.sleep(60)
if not flag:
g.handle_data_flag = False
log.info('本次获取财务数据不成功,请检查数据')
else:
g.handle_data_flag = True
结语
ptrade的渠道可以通过《ptrade开通详则》来获取,感谢看到这里,如果有更多疑问欢迎在评论区提出!