From e9680308bd91bb112c29f03a1316a0fc49e1917a Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 09 九月 2024 14:58:35 +0800
Subject: [PATCH] 一个板块扫入之后不能再次扫入

---
 servers/huaxin_trade_server.py |   27 ++++++++++++++++++++++++++-
 1 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/servers/huaxin_trade_server.py b/servers/huaxin_trade_server.py
index 7e865b9..0757a55 100644
--- a/servers/huaxin_trade_server.py
+++ b/servers/huaxin_trade_server.py
@@ -40,7 +40,8 @@
     hx_logger_l2_orderdetail, hx_logger_l2_market_data, logger_l2_g_cancel, logger_debug, \
     logger_system, logger_trade, logger_local_huaxin_l1_trade_info, logger_l2_codes_subscript, logger_l2_radical_buy
 from third_data import block_info, kpl_data_manager, history_k_data_manager, huaxin_l1_data_manager
-from third_data.code_plate_key_manager import KPLCodeJXBlockManager, CodePlateKeyBuyManager, RadicalBuyBlockManager
+from third_data.code_plate_key_manager import KPLCodeJXBlockManager, CodePlateKeyBuyManager, RadicalBuyBlockManager, \
+    TargetCodePlateKeyManager
 from third_data.history_k_data_util import JueJinApi
 from trade import trade_manager, l2_trade_util, \
     trade_data_manager, trade_constant
@@ -787,11 +788,35 @@
                     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:
                     # 鍙栫紦瀛�
                     result = result[1]
 
                 if result[0]:
+                    # 濡傛灉鍏抽敭璇嶅寘鍚凡鎴愪氦鐨勫師鍥犲氨涓嶅啀涓嬪崟
+                    # 鑾峰彇宸茬粡鎴愪氦浠g爜鐨勬澘鍧�
+                    # ---------------鑾峰彇宸茬粡鎴愪氦浠g爜鐨勬澘鍧�----------------
+                    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:
+                            limit_up_reason = None
+                        # 濡傛灉娑ㄥ仠鍘熷洜涓虹┖灏遍渶瑕佽幏鍙栦笂娆℃縺杩涗拱鐨勫師鍥�
+                        if limit_up_reason is None:
+                            radical_buy_blocks = RadicalBuyDealCodesManager.radical_buy_blocks_dict.get(dc)
+                            deal_reasons |= radical_buy_blocks
+                        else:
+                            deal_reasons.add(limit_up_reason)
+                    # 鎴愪氦浠g爜鐨勬澘鍧楀鏋滃拰鐩爣浠g爜鏉垮潡鏈変氦闆嗗氨涓嶆壂
+                    keys_, k1_, k11_, k2_, k3_, k4_ = TargetCodePlateKeyManager().get_plate_keys(code,
+                                                                                                 contains_today=False)
+                    match_blocks = keys_ & deal_reasons
+                    if match_blocks:
+                        async_log_util.info(logger_l2_radical_buy, f"鏉垮潡鏈夋垚浜わ細{code}-{match_blocks}")
+                        return
+
                     # 鏈夊彲浠ユ壂鐨勬澘鍧�
                     # 鍒ゆ柇鏈�杩戠殑涓诲姩涔板崰浜嗘�讳拱棰濈殑澶氬皯
                     refer_sell_data = L2MarketSellManager().get_refer_sell_data(code, l2_huaxin_util.convert_time(

--
Gitblit v1.8.0