'b10j', 'b10k', 'b10l', 'b10m', 'b10n', 'b10o', 'b10p', 'b10q', 'b10r',\ 'b10s', 'b10t'] Now_Index = "zz800" Now_Range = "zz800" ''' ***获取每日指数成分股和全部A股的代码*** ''' if Now_Range == "all": components_dict = db_data_pre_treat.get_normal_stocklist_dict(start_date, end_date, year=0, month=6) else: where = Now_Range + " = 1" components_dict = db_interaction.get_data_commonly( "daily_index_components", ["stock_id"], ["curr_date"], one_to_one=0, where=where) all_daily_date_list = xyk_common_wind_db_interaction.get_calendar( start_date, end_date, 0) daily_date_list = all_daily_date_list[:-1] index_date_list = all_daily_date_list[1:] a_stock_no_st_dict = db_data_pre_treat.get_a_stock_no_st_dict( start_date, end_date, 0, 6, 1, 0) total_stock_list = xyk_common_data_processing.get_all_element_from_dict( a_stock_no_st_dict) ''' ***获取行业数据并构建行业哑变量*** ''' citics_data = db_interaction.get_data_commonly( "stock_citics_industry", ["entry_date", "remove_date", "citics_code"],
Output_Table_Name = 'daily_stock_factors_size_residual_' + Now_Index daily_date_list = xyk_common_wind_db_interaction.get_calendar( start_date, end_date, 0) ''' ***获取成分股数据*** ''' if Now_Index == "all": components_dict = db_data_pre_treat.get_normal_stocklist_dict(start_date, end_date, year=0, month=6) else: where = Now_Index + " = 1" components_dict = db_interaction.get_data_commonly( "daily_index_components", ["stock_id"], ["curr_date"], one_to_one=0, where=where) ''' ***从因子表中获取我们需要的几列数据*** ''' descriptor_data_dict = db_interaction.get_daily_data_dict_1_key( start_date, end_date, Factor_Table_Name, change_factor_list + keep_value_list, date_for_key=1, to_df=1) ''' ***根据Index篮子做OLS*** ''' output_data_dict = {}
start_date = "20051010" cal_start_date = "20070115" end_date = "20180320" Now_Index = "zz800" After_date = 0 cal_daily_date_list = xyk_common_wind_db_interaction.get_calendar( cal_start_date, end_date, 0) daily_date_list = xyk_common_wind_db_interaction.get_calendar( start_date, end_date, 0) SHIBOR_dict = xyk_common_wind_db_interaction.get_IBOR_dict( "SHIBOR", "SHIBORON.IR") index_return_dict = db_interaction.get_data_commonly( "daily_index_performance", ["cap_weighted_return"], ["index_name", "curr_date"]) ''' ***首先选出计算的股票篮子,然后从行情数据中查询我们需要的部分*** ''' a_stock_normal_dict = db_data_pre_treat.get_normal_stocklist_dict(start_date, end_date, year=0, month=3) total_stock_list = xyk_common_data_processing.get_all_element_from_dict( a_stock_normal_dict) hq_dict = db_interaction.get_daily_data_dict_1_key(start_date, end_date, "daily_stock_technical", ['liquid_MV', 'close'], total_stock_list, 0)
import datetime as dt import db_interaction import xyk_common_data_processing import xyk_common_wind_db_interaction import db_data_pre_treat import statsmodels.api as sm start_date = "20070115" end_date = "20171231" Now_Index = "zz500" factor_list = ['Size', 'Beta', 'Volatility', 'sqrt_liquid'] ''' ***获取成分股数据*** ''' components_dict = db_interaction.get_data_commonly( "daily_index_components_" + Now_Index, ["stock_id"], ["curr_date"], 1, 0, 0) for date in components_dict.keys(): components_dict[date] = xyk_common_data_processing.change_stock_format( "no_tail", "with_tail", components_dict[date], 1) daily_date_list = xyk_common_wind_db_interaction.get_calendar( start_date, end_date, 0) ''' ***获得全部股票代码序列,用于查询行情和描述量值*** ''' a_stock_no_st_dict = db_data_pre_treat.get_a_stock_no_st_dict( start_date, end_date, 0, 6, 1, 0) total_stock_list = xyk_common_data_processing.get_all_element_from_dict( a_stock_no_st_dict) ''' ***从因子表中获取我们需要的几列数据***
import datetime as dt import db_interaction import xyk_common_data_processing import xyk_common_wind_db_interaction import db_data_pre_treat start_date = "20050101" cal_start_date = "20070115" end_date = "20171231" Now_Index = "zz500" cal_daily_date_list = xyk_common_wind_db_interaction.get_calendar(cal_start_date, end_date, 0) daily_date_list = xyk_common_wind_db_interaction.get_calendar(start_date, end_date, 0) SHIBOR_dict = xyk_common_wind_db_interaction.get_IBOR_dict("SHIBOR", "SHIBORON.IR") index_return_dict = db_interaction.get_data_commonly("daily_index_performance", ["cap_weighted_return"], ["index_name", "curr_date"]) ''' ***首先选出计算的股票篮子,然后从行情数据中查询我们需要的部分*** ''' a_stock_normal_dict = db_data_pre_treat.get_normal_stocklist_dict(start_date, end_date, year = 0, month = 3) total_stock_list = xyk_common_data_processing.get_all_element_from_dict(a_stock_normal_dict) hq_dict = db_interaction.get_daily_data_dict_1_key(start_date, end_date, "daily_stock_technical", ['liquid_MV', 'close'], total_stock_list, 0) stock_suspension_dict = db_data_pre_treat.get_stock_suspension_dict_by_stock(total_stock_list, start_date, end_date, sus_type = 1) hq_dict_no_suspension = xyk_common_data_processing.get_dict_difference(hq_dict, stock_suspension_dict, list_order = 0) LN_SHIBOR_dict = {} for date in SHIBOR_dict.keys(): LN_SHIBOR_dict[date] = math.log(1.0 + SHIBOR_dict[date])