def get_specific_risk(self, trading_day_list, sec_ids): specific_risk_dict = {} for date in trading_day_list: specific_risk = {} res = \ DataAPI.RMSriskShortGet(tradeDate=date, secID=sec_ids, field=u"secID,SRISK", pandas="1").set_index( 'secID')[ 'SRISK'] / 100. specific_risk['specific_risk'] = res specific_risk_dict[date] = specific_risk return specific_risk_dict
def get_risk_model(self, trading_day_list, universe): result = {} specific_return = {} for date in trading_day_list: result[date] = {} result[date]['exposure'] = DataAPI.RMExposureDayGet( secID=universe, tradeDate=date).set_index('secID').iloc[:, 4:-1] result[date]['factor_covariance'] = DataAPI.RMCovarianceShortGet( tradeDate=date).set_index('Factor').iloc[:, 2:-1] / 10000. result[date]['specific_risk'] = \ DataAPI.RMSriskShortGet(secID=universe, tradeDate=date).set_index('secID')['SRISK'] / 100. specific_return[date] = \ DataAPI.RMSpecificRetDayGet(secID=universe, tradeDate=date).set_index('secID')['spret'] return result, specific_return
def getRMSriskShort1(self, i): if self.fre_type == 'short': data = DataAPI.RMSriskShortGet(tradeDate="%s" % i, beginDate=u"", \ endDate=u"", field=u"", pandas="1") elif self.fre_type == 'long': data = DataAPI.RMSriskLongGet(tradeDate="%s" % i, beginDate=u"", \ endDate=u"", field=u"", pandas="1") del data['tradeDate'] del data['ticker'] del data['exchangeCD'] path = '%s/getRMSrisk' % self.dirpath # if not os.path.exists(path): # os.mkdir(path) if not data.empty: data['secID'] = data['secID'].apply(self.replaceCode) # data.to_csv('%s/%s.csv'%(path, i), encoding = 'gb18030',index=None) self.check3 = data return data
def update_uqer_risk_model(ds, **kwargs): ref_date, this_date = process_date(ds) flag = check_holiday(this_date) if not flag: return df = api.RMExposureDayGet(tradeDate=ref_date) df.rename(columns={ 'tradeDate': 'trade_date', 'ticker': 'code' }, inplace=True) df.code = df.code.astype(int) del df['secID'] engine.execute( delete(RiskExposure).where(RiskExposure.trade_date == this_date)) data_info_log(df, RiskExposure) format_data(df) df.to_sql(RiskExposure.__table__.name, engine, index=False, if_exists='append') df = api.RMFactorRetDayGet(tradeDate=ref_date) df.rename(columns={'tradeDate': 'trade_date'}, inplace=True) engine.execute( delete(RiskReturn).where(RiskReturn.trade_date == this_date)) data_info_log(df, RiskReturn) format_data(df) df.to_sql(RiskReturn.__table__.name, engine, index=False, if_exists='append') df = api.RMSpecificRetDayGet(tradeDate=ref_date) df.rename(columns={ 'tradeDate': 'trade_date', 'ticker': 'code' }, inplace=True) df.code = df.code.astype(int) del df['secID'] engine.execute( delete(SpecificReturn).where(SpecificReturn.trade_date == this_date)) data_info_log(df, SpecificReturn) format_data(df) df.to_sql(SpecificReturn.__table__.name, engine, index=False, if_exists='append') df = api.RMCovarianceDayGet(tradeDate=ref_date) df.rename(columns={'tradeDate': 'trade_date'}, inplace=True) engine.execute( delete(RiskCovDay).where(RiskCovDay.trade_date == this_date)) data_info_log(df, RiskCovDay) format_data(df) df.to_sql(RiskCovDay.__table__.name, engine, index=False, if_exists='append') df = api.RMCovarianceShortGet(tradeDate=ref_date) df.rename(columns={'tradeDate': 'trade_date'}, inplace=True) engine.execute( delete(RiskCovShort).where(RiskCovShort.trade_date == this_date)) data_info_log(df, RiskCovShort) format_data(df) df.to_sql(RiskCovShort.__table__.name, engine, index=False, if_exists='append') df = api.RMCovarianceLongGet(tradeDate=ref_date) df.rename(columns={'tradeDate': 'trade_date'}, inplace=True) engine.execute( delete(RiskCovLong).where(RiskCovLong.trade_date == this_date)) data_info_log(df, RiskCovLong) format_data(df) df.to_sql(RiskCovLong.__table__.name, engine, index=False, if_exists='append') df = api.RMSriskDayGet(tradeDate=ref_date) df.rename(columns={ 'tradeDate': 'trade_date', 'ticker': 'code' }, inplace=True) df.code = df.code.astype(int) del df['secID'] engine.execute( delete(SpecificRiskDay).where(SpecificRiskDay.trade_date == this_date)) data_info_log(df, SpecificRiskDay) format_data(df) df.to_sql(SpecificRiskDay.__table__.name, engine, index=False, if_exists='append') df = api.RMSriskShortGet(tradeDate=ref_date) df.rename(columns={ 'tradeDate': 'trade_date', 'ticker': 'code' }, inplace=True) df.code = df.code.astype(int) del df['secID'] engine.execute( delete(SpecificRiskShort).where( SpecificRiskShort.trade_date == this_date)) data_info_log(df, SpecificRiskShort) format_data(df) df.to_sql(SpecificRiskShort.__table__.name, engine, index=False, if_exists='append') df = api.RMSriskLongGet(tradeDate=ref_date) df.rename(columns={ 'tradeDate': 'trade_date', 'ticker': 'code' }, inplace=True) df.code = df.code.astype(int) del df['secID'] engine.execute( delete(SpecificRiskLong).where( SpecificRiskLong.trade_date == this_date)) data_info_log(df, SpecificRiskLong) format_data(df) df.to_sql(SpecificRiskLong.__table__.name, engine, index=False, if_exists='append')
def update_uqer_risk_model(ds, **kwargs): ref_date, this_date = process_date(ds) table = 'risk_exposure' df = api.RMExposureDayGet(tradeDate=ref_date) df.rename(columns={'tradeDate': 'Date', 'ticker': 'Code'}, inplace=True) df.Code = df.Code.astype(int) del df['secID'] engine2.execute("delete from {0} where Date = '{1}';".format(table, ref_date)) df.to_sql(table, engine2, index=False, if_exists='append') table = 'risk_return' df = api.RMFactorRetDayGet(tradeDate=ref_date) df.rename(columns={'tradeDate': 'Date'}, inplace=True) engine2.execute("delete from {0} where Date = '{1}';".format(table, ref_date)) df.to_sql(table, engine2, index=False, if_exists='append') table = 'specific_return' df = api.RMSpecificRetDayGet(tradeDate=ref_date) df.rename(columns={'tradeDate': 'Date', 'ticker': 'Code'}, inplace=True) df.Code = df.Code.astype(int) del df['secID'] engine2.execute("delete from {0} where Date = '{1}';".format(table, ref_date)) df.to_sql(table, engine2, index=False, if_exists='append') table = 'risk_cov_day' df = api.RMCovarianceDayGet(tradeDate=ref_date) df.rename(columns={'tradeDate': 'Date'}, inplace=True) engine2.execute("delete from {0} where Date = '{1}';".format(table, ref_date)) df.to_sql(table, engine2, index=False, if_exists='append') table = 'risk_cov_short' df = api.RMCovarianceShortGet(tradeDate=ref_date) df.rename(columns={'tradeDate': 'Date'}, inplace=True) engine2.execute("delete from {0} where Date = '{1}';".format(table, ref_date)) df.to_sql(table, engine2, index=False, if_exists='append') table = 'risk_cov_long' df = api.RMCovarianceLongGet(tradeDate=ref_date) df.rename(columns={'tradeDate': 'Date'}, inplace=True) engine2.execute("delete from {0} where Date = '{1}';".format(table, ref_date)) df.to_sql(table, engine2, index=False, if_exists='append') table = 'specific_risk_day' df = api.RMSriskDayGet(tradeDate=ref_date) df.rename(columns={'tradeDate': 'Date', 'ticker': 'Code'}, inplace=True) df.Code = df.Code.astype(int) del df['secID'] engine2.execute("delete from {0} where Date = '{1}';".format(table, ref_date)) df.to_sql(table, engine2, index=False, if_exists='append') table = 'specific_risk_short' df = api.RMSriskShortGet(tradeDate=ref_date) df.rename(columns={'tradeDate': 'Date', 'ticker': 'Code'}, inplace=True) df.Code = df.Code.astype(int) del df['secID'] engine2.execute("delete from {0} where Date = '{1}';".format(table, ref_date)) df.to_sql(table, engine2, index=False, if_exists='append') table = 'specific_risk_long' df = api.RMSriskLongGet(tradeDate=ref_date) df.rename(columns={'tradeDate': 'Date', 'ticker': 'Code'}, inplace=True) df.Code = df.Code.astype(int) del df['secID'] engine2.execute("delete from {0} where Date = '{1}';".format(table, ref_date)) df.to_sql(table, engine2, index=False, if_exists='append')