第一次在聚宽写策略,社区找不到年报审计意见的函数,自己写了一个,此为年报版本的审计意见,最终返回的是审计意见不为1(即标准无保留之外的所有)的股票代码list,代码中存在终端和官网不一样的部分已标出,注意替换,数据来自聚源数据库,需要在代码最前面加上from jqdata import jy
主要问题是聚源数据怎样一次获取多只股票数据,聚源数据API文档写的非常不详细,根本没提过,只能用for循环了,有哪位大神知道,望告知!
另函数已经分享至共享函数,需要搜审计意见的自取(下面粘贴的代码由于聚宽自动排版缩进有问题)。
def filter_AuditOpinion_yearly(context):
current_year = context.current_dt.year
last_year = str(int(g.current_year) - 1)
last_EndDate = '{}-12-31'.format(last_year)
noAudit_id_df = jy.run_query(query(
jy.LC_AuditOpinion.CompanyCode,
jy.LC_AuditOpinion.EndDate,
jy.LC_AuditOpinion.OpinionType
).filter(
jy.LC_AuditOpinion.OpinionType != 1,
jy.LC_AuditOpinion.EndDate == last_EndDate,
))
noAudit_id_list = list(noAudit_id_df['CompanyCode'])
noAudit_code1 = []
for element in noAudit_id_list:
noAudit_df = jy.run_query(query(
jy.SecuMain.CompanyCode,
jy.SecuMain.SecuCode
).filter(
jy.SecuMain.CompanyCode == element,
jy.SecuMain.SecuCategory == 1))
try:
noAudit_symbol = '{:0>6d}'.format(noAudit_df.SecuCode[0])
except:
continue
if noAudit_symbol[0] == '0' or noAudit_symbol[0] == '6' or noAudit_symbol[0] == '3':
noAudit_code = normalize_code(noAudit_symbol)
noAudit_code1.append(noAudit_code)
return noAudit_code1