"pearson_index": similar_value } # cal_finish_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) # end_time = datetime.datetime.strptime(cal_finish_time, "%Y-%m-%d %H:%M:%S") # print("Calc Cost: {}".format(str((end_time - start_time).seconds))) return result if __name__ =='__main__': read_data = ReadData() ts_code_list = read_data.mysql_read_ts_code()[:] print("----------------Complete ts_code reading--------------------:{}") start_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) print("--------Start cal----------:{0}".format(start_time)) results_dict = {} source_data = read_data.mysql_read_data("000009.SZ").iloc[-60:] for ts_code in ts_code_list: #print(ts_code) compare_data = read_data.mysql_read_data(ts_code).iloc[:-60] if len(compare_data) < 60: print("该股票数据不足") else: compare = CompareSimilarKDynamic(source_data, compare_data, 60) result = compare.compare_dynamic() results_dict[ts_code] = result #print(result) #print(results_dict) finish_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) print("--------finish cal----------:{0}".format(finish_time)) reverse_result = sorted(results_dict.items(), key=lambda item:item[1]["pearson_index"], reverse=True) for item in reverse_result[:10]:
similar_value = 0.5 * self.calc_pearson( mul_open, atom_open) + 0.5 * self.calc_pearson( mul_close, atom_close) if (result["pearson_index"] < similar_value): result = { "start_time": temp_compare[0]["trade_date"], "end_time": temp_compare[-1]["trade_date"], "pearson_index": similar_value } # cal_finish_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) # end_time = datetime.datetime.strptime(cal_finish_time, "%Y-%m-%d %H:%M:%S") # print("Calc Cost: {}".format(str((end_time - start_time).seconds))) return result if __name__ == "__main__": read_data = ReadData() #设置比较的周期 num = 60 #选取需要查找的最后num天数的数据 source_data = read_data.mysql_read_data("002936.SZ").iloc[-num:] if len(source_data) < num: num = len(source_data) #选取某一支对比的股票并除去最后的num天数据 compare_data = read_data.mysql_read_data("000001.SZ").iloc[:-num] #实例化类,输入的格式为Dataframe compare = CompareSimilarKDynamic(source_data, compare_data, num) #返回对比的皮尔逊系数最高的一组数据 result = compare.compare_dynamic() print(result)