Esempio n. 1
0
 half_life_list = xyk_common_data_processing.get_half_life_list(252, 63)
 result_list = []
 count = 0
 pool = Pool(processes = cpu_count())
 for stock in hq_dict_no_suspension.keys():
     pool.apply_async(every_stock_pool_cal, (stock,))
 #pool.map(every_stock_pool_cal, hq_dict_no_suspension.keys())
 pool.close()
 pool.join()
                 
 '''
 ***以下为计算以index为范围标准化的Standard_Size描述量与在那之上回归得到的NLSIZE描述量***
 ***上市后有120个可交易日以上时才进行计算***
 ***分成两步,先计算index的参数,在用这些参数算出全部stock的描述量***
 '''
 size_hq_dict = db_interaction.get_daily_data_dict(start_date, end_date, "daily_stock_technical", ['liquid_MV', 'close'], total_stock_list, 0)
 if Now_Index == "all":
     components_dict = a_stock_normal_dict
 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)
 
 para_dict = {}
 for date in components_dict.keys():
     print date
     raw_index_ln_size_list = []
     for stock in components_dict[date]:
         if size_hq_dict.has_key((stock, date)) == True and size_hq_dict[(stock, date)][0] != '' and size_hq_dict[(stock, date)][0] != None:
             raw_index_ln_size_list.append(math.log(size_hq_dict[(stock, date)][0]))
     para_dict[date] = [np.mean(raw_index_ln_size_list), np.std(raw_index_ln_size_list)]
     standard_index_ln_size_list = []
Esempio n. 2
0
    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"],
    ["stock_id"], 0, 0, 0)
dummy_variable_dict = db_data_pre_treat.get_indus_dummy_variable_dict(
    citics_code_list)
'''
***从因子表中获取我们需要的全部数据***
'''
factor_dict = db_interaction.get_daily_data_dict(
    start_date, end_date, "daily_stock_factors_" + Now_Index,
    factor_list + extra_data_list, total_stock_list, 0)
'''
***WLS***
'''
U_list = []
T_value_list = []
R_squared = []
R_squared_adj = []
f_list = []
R_squared_barra_list = []
output_list = []
for ord_date, date in enumerate(daily_date_list):
    print date
    if ord_date == len(daily_date_list) - 1:
        next_date = date
Esempio n. 3
0
#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)
'''
***从描述量数据中查询我们需要的部分,从行情序列中同样进行查询***
'''
#descriptors_1_dict = db_interaction.get_daily_data_dict(start_date, end_date, "daily_stock_descriptors_pretreated", descriptor_1_list, total_stock_list, 0)
descriptors_2_dict = db_interaction.get_daily_data_dict(
    start_date, end_date, "daily_stock_descriptors_unified_pretreated",
    descriptor_2_list, total_stock_list, 0)
descriptors_3_dict = db_interaction.get_daily_data_dict(
    start_date, end_date,
    "daily_stock_descriptors_" + Now_Index + "_unique_pretreated",
    descriptor_3_list, total_stock_list, 0)
#hq_dict = db_interaction.get_daily_data_dict(start_date, end_date, "daily_stock_technical", ['liquid_MV', 'close'], total_stock_list, 0)
'''
***将标准化后的描述量聚合成因子***
'''


def factor_aggregation(whole_standardized_descriptor_list, index=0):
    factor_list = []
    if index == 0:
        for stock_value in whole_standardized_descriptor_list: