请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  量化平台 帖子:3353263 新帖:2

年报审计意见

随心所致发表于:7 月 26 日 14:00回复(1)

第一次在聚宽写策略,社区找不到年报审计意见的函数,自己写了一个,此为年报版本的审计意见,最终返回的是审计意见不为1(即标准无保留之外的所有)的股票代码list,代码中存在终端和官网不一样的部分已标出,注意替换,数据来自聚源数据库,需要在代码最前面加上from jqdata import jy
主要问题是聚源数据怎样一次获取多只股票数据,聚源数据API文档写的非常不详细,根本没提过,只能用for循环了,有哪位大神知道,望告知!
另函数已经分享至共享函数,需要搜审计意见的自取(下面粘贴的代码由于聚宽自动排版缩进有问题)。

def filter_AuditOpinion_yearly(context):

# 从聚源数据库获取审计意见不为1的df
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]) # 此处官网与终端代码不同,官网为noAudit_symbol = 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

全部回复

0/140

量化课程

    移动端课程