def update_uqer_industry_info(ds, **kwargs): ref_date, this_date = process_date(ds) flag = check_holiday(this_date) if not flag: return query = select([Market.code]).where(Market.trade_date == this_date) df = pd.read_sql(query, engine) codes = df.code.astype(str).str.zfill(6) engine.execute(delete(Industry).where(Industry.trade_date == this_date)) df = api.EquIndustryGet(intoDate=ref_date) df = df[df.ticker.isin(codes)] df['code'] = df.ticker.astype(int) df['trade_date'] = this_date df.rename(columns={'ticker': 'code'}, inplace=True) df = df[[ 'trade_date', 'code', 'industry', 'industryID', 'industrySymbol', 'industryID1', 'industryName1', 'industryID2', 'industryName2', 'industryID3', 'industryName3', 'IndustryID4', 'IndustryName4' ]] data_info_log(df, Industry) format_data(df) df.to_sql(Industry.__table__.name, engine, index=False, if_exists='append')
def fetch_industry_uqer(self, trade_date, industry=[]): industry_sets = DataAPI.IndustryGet( industryVersion=u"SW", industryVersionCD=u"", industryLevel=u"1", isNew=u"1", prntIndustryID=u"", field=u"industryID,industryName,indexSymbol", pandas="1") if len(industry) > 0: industry_sets = industry_sets.set_index( 'indexSymbol').loc[industry] equ = DataAPI.EquIndustryGet(industryVersionCD=u"010303", industryID1=list( set(industry_sets['industryID'])), intoDate=trade_date.strftime('%Y%m%d'), field=u"secID,industryID1", pandas="1") equ.rename(columns={'industryID1': 'industryID'}, inplace=True) industry_sets = industry_sets.reset_index().merge( equ, on=['industryID'])[['indexSymbol', 'industryName', 'secID']] industry_sets.rename(columns={ 'secID': 'code', 'indexSymbol': 'industryID' }, inplace=True) industry_sets['trade_date'] = trade_date return industry_sets
def get_industry_by_day(self, all_stocks, trade_date): stock_sets = DataAPI.EquIndustryGet( secID=all_stocks, industryVersionCD=u"010303", industryID1=u"", industryID2=u"", industryID3=u"", intoDate=trade_date.strftime('%Y%m%d'), field=u"secID,industryID1", pandas="1") stock_sets.rename(columns={'industryID1': 'industryID'}, inplace=True) industry = DataAPI.IndustryGet( industryVersion=u"SW", industryVersionCD=u"", industryLevel=u"1", isNew=u"1", prntIndustryID=u"", field=u"industryID,industryName,indexSymbol", pandas="1") stock_sets = stock_sets.merge(industry, on=['industryID'])[[ 'secID', 'indexSymbol', 'industryName' ]] stock_sets = stock_sets.rename(columns={'secID': 'code'}) return stock_sets
def get_sw_industry_classification(self, trading_day_list, universe): industry_classification = {} for date in trading_day_list: df = DataAPI.EquIndustryGet(secID=universe, industryVersionCD=u"010303", industry=u"", intoDate=date, field=u"secID,industryName1", pandas="1") df.set_index('secID', inplace=True) df.rename(columns={'industryName1': 'ind'}, inplace=True) industry_classification[date] = df['ind'] return industry_classification