Administrator
2024-09-10 2b09dea59b622d133bf0fb24880a2150f528aa99
bug修复
1个文件已修改
27 ■■■■■ 已修改文件
servers/huaxin_trade_server.py 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
servers/huaxin_trade_server.py
@@ -780,35 +780,38 @@
            k_format = code_nature_analyse.CodeNatureRecordManager().get_k_format_cache(code)
            if k_format and k_format[13] and not k_format[14]:
                # 获取激进买的板块
                result = self.__radical_buy_by_blocks_result_cache.get(code)
                if not result or result[0] < time.time():
                result_cache = self.__radical_buy_by_blocks_result_cache.get(code)
                if not result_cache or result_cache[0] < time.time():
                    # 不存在/过期
                    yesterday_codes = kpl_data_manager.get_yesterday_limit_up_codes()
                    if yesterday_codes is None:
                        yesterday_codes = set()
                    result = RadicalBuyBlockManager.is_radical_buy(code, yesterday_codes)
                    async_log_util.info(logger_l2_radical_buy, f"计算板块结果:{code}-{result}")
                    self.__radical_buy_by_blocks_result_cache[code] = (time.time() + 3, result)
                    RadicalBuyDealCodesManager.radical_buy_blocks_dict[code] = result[0]
                else:
                    radical_result = RadicalBuyBlockManager.is_radical_buy(code, yesterday_codes)
                    async_log_util.info(logger_l2_radical_buy, f"计算板块结果:{code}-{radical_result}")
                    result_cache = (time.time() + 3, radical_result)
                    self.__radical_buy_by_blocks_result_cache[code] = result_cache
                    RadicalBuyDealCodesManager.radical_buy_blocks_dict[code] = radical_result[0]
                    # 取缓存
                    result = result[1]
                result = result_cache[1]
                if result[0]:
                    # 如果关键词包含已成交的原因就不再下单
                    # 获取已经成交代码的板块
                    try:
                    # ---------------获取已经成交代码的板块----------------
                    deal_reasons = set()
                    for dc in deal_codes:
                        # 获取涨停原因
                        limit_up_reason = kpl_data_manager.LimitUpDataConstant.get_limit_up_reason_with_history(dc)
                        if limit_up_reason in constant.KPL_INVALID_BLOCKS:
                            if limit_up_reason and limit_up_reason in constant.KPL_INVALID_BLOCKS:
                            limit_up_reason = None
                        # 如果涨停原因为空就需要获取上次激进买的原因
                        if limit_up_reason is None:
                            if not limit_up_reason:
                            radical_buy_blocks = RadicalBuyDealCodesManager.radical_buy_blocks_dict.get(dc)
                                if radical_buy_blocks:
                            deal_reasons |= radical_buy_blocks
                        else:
                            deal_reasons.add(limit_up_reason)
                        async_log_util.info(logger_l2_radical_buy, f"已经成交的板块:{deal_reasons}")
                    # 成交代码的板块如果和目标代码板块有交集就不扫
                    keys_, k1_, k11_, k2_, k3_, k4_ = TargetCodePlateKeyManager().get_plate_keys(code,
                                                                                                 contains_today=False)
@@ -816,6 +819,8 @@
                    if match_blocks:
                        async_log_util.info(logger_l2_radical_buy, f"板块有成交:{code}-{match_blocks}")
                        return
                    except Exception as e:
                        logger_debug.exception(e)
                    # 有可以扫的板块
                    # 判断最近的主动买占了总买额的多少