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

量化交易吧 /  量化平台 帖子:3364712 新帖:0

聚宽代码转换为聚源数据库内部代码!

好的名字都没了发表于:5 月 10 日 02:21回复(1)

聚源数据库只能使用内部代码查询,所以直接用聚宽代码或证券代码,是无法查询的。所以想要以聚宽代码查询聚源数据库必须做如下的转换:
1、把聚宽代码先转换为证券代码,如指数聚宽代码000016.XSHG,转换后为000016,即去除代码后缀;
2、把证券代码转换为内部代码,如指数证券代码000016 转换后为 46。
第一步的转换很简单,就不赘述了,第二步的转换需要使用聚源的证券主表——SecuMain,贴出代码如下:

#证券代码转换为聚源内部代码
#例:指数证券代码000016 转换后为 46
#codes:证券代码
#category:查询类别,1为股票、4为指数
def to_InnerCode(codes,category=1):
    df=pd.DataFrame()
    #因jy每次最多返回3000条数据,所以要多次查询
    #偏移值
    offset=0    
    while True:
        q=query(
            #内部代码
            jy.SecuMain.InnerCode,
        ).filter(
            #去除聚宽代码后缀
            jy.SecuMain.SecuCode.in_(codes),
            #限定查询股票
            jy.SecuMain.SecuCategory==category
            #偏移         
        ).offset(offset)
        #查询    
        temp_df=jy.run_query(q)  
        #无数据时退出
        if len(temp_df)==0:
            break
        #追加数据
        df=df.append(temp_df)
        #偏移值每次递增3000    
        offset =3000

    #返回代码list
    return df.InnerCode.tolist()

全部回复

0/140

量化课程

    移动端课程