Exemplo n.º 1
0
                        "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]:
Exemplo n.º 2
0
                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)