Administrator
2024-11-06 318596db29e966ae70d97cf78e761d62b3d78887
开得太高判断
4个文件已修改
47 ■■■■ 已修改文件
output/code_info_output.py 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
servers/data_server.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
servers/huaxin_trade_server.py 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/radical_buy_strategy.py 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
output/code_info_output.py
@@ -298,16 +298,16 @@
    __start_time = time.time()
    # 获取代码的历史涨停数据,(涨停原因,日期,板块)
    # code_records = KPLLimitUpDataRecordManager.get_latest_infos(code, 4, False)[:2]
    # if code_records:
    #     code_records = [(format_plate_output(k[0]), k[1], [format_plate_output(k1) for k1 in k[2].split("、")]) for k in
    #                     code_records]
    # 修改历史
    code_records = LimitUpCodesBlockRecordManager().get_radical_buy_blocks_origin_data(code)
    code_records = KPLLimitUpDataRecordManager.get_latest_infos(code, 4, False)[:2]
    if code_records:
        code_records = [(f"{x[0]}x{x[1]}", x[2], '') for x in code_records]
    else:
        code_records = []
        code_records = [(format_plate_output(k[0]), k[1], [format_plate_output(k1) for k1 in k[2].split("、")]) for k in
                        code_records]
    # 修改历史
    # code_records = LimitUpCodesBlockRecordManager().get_radical_buy_blocks_origin_data(code)
    # if code_records:
    #     code_records = [(f"{x[0]}x{x[1]}", x[2], '') for x in code_records]
    # else:
    #     code_records = []
    params["kpl_code_info"]["code_records"] = code_records
servers/data_server.py
@@ -506,7 +506,7 @@
            now_limit_up_codes = set([d[0] for d in now_limit_up_codes_info])
            # 获取历史涨停
            record_limit_up_datas = KPLLimitUpDataRecordManager.total_datas
            if not record_limit_up_datas:
            if not record_limit_up_datas or len(record_limit_up_datas) == len(now_limit_up_codes_info):
                KPLLimitUpDataRecordManager.load_total_datas()
                record_limit_up_datas = KPLLimitUpDataRecordManager.total_datas
servers/huaxin_trade_server.py
@@ -873,6 +873,13 @@
                    result_by_volume = radical_buy_strategy.process_limit_up_active_buy_deal(code, transaction_datas)
                    async_log_util.info(logger_l2_radical_buy, f"量买入结果判断:{code}, 结果:{result_by_volume} 板块:{buy_blocks}")
                    if result_by_volume[0] != radical_buy_strategy.BUY_MODE_NONE:
                        # 判断是否开得太高
                        open_price = L1DataManager.get_open_price(code)
                        if not radical_buy_strategy.is_can_buy_with_open_price(code, open_price):
                            async_log_util.info(logger_l2_radical_buy,
                                                f"开得太高:{code}")
                            return
                        if result_by_volume[0] == radical_buy_strategy.BUY_MODE_DIRECT:
                            refer_sell_data = L2MarketSellManager().get_refer_sell_data(code,
                                                                                        l2_huaxin_util.convert_time(
trade/radical_buy_strategy.py
@@ -224,3 +224,23 @@
            return True, f"量比-{volume_rate}, 本次大单成交数量({current_big_order_deal_count})>={threshold_count}"
        else:
            return False, f"量比-{volume_rate}, 本次大单成交数量({current_big_order_deal_count})<{threshold_count}"
def is_can_buy_with_open_price(code, open_price):
    """
    根据开盘价判断是否可买
    @param code:
    @param open_price:
    @return:
    """
    if tool.get_now_time_as_int() < int("093100"):
        async_log_util.info(logger_l2_radical_buy, f"开盘价:{code}-{open_price}")
        pre_price = gpcode_manager.CodePrePriceManager.get_price_pre_cache(code)
        if pre_price:
            rate = round((open_price - pre_price) / pre_price, 4)
            async_log_util.info(logger_l2_radical_buy, f"开盘价涨幅:{code}-{rate}")
            if tool.get_limit_up_rate(code) > 1.1:
                return rate < 0.189
            else:
                return rate < 0.089
    return True