Administrator
3 天以前 5f034f7a6733b03e0d08d7920ec6de1b1517c421
strategy/test.py
@@ -1,9 +1,15 @@
from huaxin_client import l1_subscript_codes_manager
from strategy import strategy_manager, data_analyzer
from strategy.strategy_variable import StockVariables
# 统计当日的平均溢价率
from strategy.strategy_variable_factory import DataLoader
from third_data.kpl_block_manager import KPLCodeJXBlocksManager
def statistic_average(path):
    rate_list = []
    yjl_list = []
    with open(path, mode='r', encoding='utf-8') as f:
        lines = f.readlines()
        for line in lines:
@@ -13,13 +19,39 @@
                continue
            r = round(float(line.split("当日盈亏:")[1].split(",")[0].replace("%", "")), 2)
            rate_list.append(r)
    print("平均利润率:", round(sum(rate_list) / len(rate_list), 2))
    print("总利润率:", round(sum(rate_list), 2), "总买票数量:", len(rate_list))
            r = line.split("溢价率:")[1].split(",")[0].replace("%", "")
            if r.find("未知") < 0:
                yjl_list.append(round(float(r), 2))
    print("当日平均利润率:", round(sum(rate_list) / len(rate_list), 2))
    print("当日总利润率:", round(sum(rate_list), 2), "总买票数量:", len(rate_list))
    print("次日开盘平均利润率:", round(sum(yjl_list) / len(yjl_list), 2))
    print("次日开盘总利润率:", round(sum(yjl_list), 2), "总买票数量:", len(yjl_list))
if __name__ == "__main__":
    print("======2个票涨停之后买")
    statistic_average(r"C:\Users\Administrator\Desktop\2个票涨停之后买.txt")
    print("======3个票涨停之后买_不买长得太高未放量")
    statistic_average(r"C:\Users\Administrator\Desktop\3个票涨停之后买_不买长得太高未放量.txt")
    print("======3个票涨停之后买")
    statistic_average(r"C:\Users\Administrator\Desktop\3个票涨停之后买.txt")
    # codes = set()
    # codes_sh, codes_sz = l1_subscript_codes_manager.get_codes()
    # codes |= set([x.decode() for x in codes_sh])
    # codes |= set([x.decode() for x in codes_sz])
    # KPLCodeJXBlocksManager('2025-06-17', codes).start_download_blocks()
    # target_block = {"石油石化", "天然气", "化工"}
    # for code in code_blocks:
    #     blocks = code_blocks.get(code)
    #     if len(blocks & target_block) == len(target_block):
    #         print(code, blocks)
    __DataLoader = DataLoader("2025-06-18")
    kline_datas = __DataLoader.load_kline_data()
    codes = []
    for code in kline_datas:
        # if code !='003010':
        #     continue
        result = data_analyzer.KTickLineAnalyzer.is_too_high_and_not_relase_volume(kline_datas[code])
        if result:
            print("未放量", code, result[1])
            codes.append(code)
    print(len(codes))