From 6dbf7d8320b03533a8a7c70cb3cc309426eac94e Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 11 六月 2025 17:13:41 +0800
Subject: [PATCH] L2订阅接口修改/人为设置大单之后才能自动拉白/红

---
 trade/buy_radical/radical_buy_data_manager.py |    9 +++++++++
 trade/buy_radical/radical_buy_strategy.py     |   14 ++++++++++----
 servers/data_server.py                        |   12 +++++++++++-
 3 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/servers/data_server.py b/servers/data_server.py
index 4d8ae39..a548267 100644
--- a/servers/data_server.py
+++ b/servers/data_server.py
@@ -1025,7 +1025,17 @@
                             logger_debug.exception(e)
                             deal_big_order_info = None
                         code_name = gpcode_manager.get_code_name(code)
-                        fresults.append((code, code_name, deal_big_order_info, deal_big_order_detail_info))
+
+                        big_order_enough = 0
+                        try:
+                            total_deal_big_order_result = radical_buy_data_manager.get_total_deal_big_order_info(code,
+                                                                                        gpcode_manager.get_limit_up_price_as_num(
+                                                                                            code))
+                            if total_deal_big_order_result and total_deal_big_order_result[0]<=0:
+                                big_order_enough = 1
+                        except:
+                            pass
+                        fresults.append((code, code_name, deal_big_order_info, deal_big_order_detail_info, big_order_enough))
                 response_data = json.dumps({"code": 0, "data": fresults})
             except Exception as e:
                 response_data = json.dumps({"code": 1, "data": str(1)})
diff --git a/trade/buy_radical/radical_buy_data_manager.py b/trade/buy_radical/radical_buy_data_manager.py
index 6e425bb..1db1f7e 100644
--- a/trade/buy_radical/radical_buy_data_manager.py
+++ b/trade/buy_radical/radical_buy_data_manager.py
@@ -641,6 +641,10 @@
         if WantBuyCodesManager().is_in_cache(code):
             if total_deal_big_order_result[0] <= 0:
                 # 绱澶у崟瓒冲闇�瑕佸姞绾�
+                human_setting_money = TotalDealBigOrderThresholdMoneyManager().get_money_cache(code)
+                if not human_setting_money:
+                    # 娌℃湁浜轰负璁剧疆绱澶у崟闃堝�煎氨涓嶈兘鍔犵櫧
+                    return
                 gpcode_manager.MustBuyCodesManager().add_code(code)
                 trade_record_log_util.add_must_buy(code, "绱鎴愪氦澶у崟瓒冲")
         cls.__process_add_white(code)
@@ -656,6 +660,11 @@
             return
         if gpcode_manager.WhiteListCodeManager().is_in_cache(code):
             return
+        human_setting_money = TotalDealBigOrderThresholdMoneyManager().get_money_cache(code)
+        if not human_setting_money:
+            # 娌℃湁浜轰负璁剧疆绱澶у崟闃堝�煎氨涓嶈兘鍔犵櫧
+            return
+
         try:
             total_deal_big_order_result = get_total_deal_big_order_info(code,
                                                                         gpcode_manager.get_limit_up_price_as_num(code))
diff --git a/trade/buy_radical/radical_buy_strategy.py b/trade/buy_radical/radical_buy_strategy.py
index 876852a..064667e 100644
--- a/trade/buy_radical/radical_buy_strategy.py
+++ b/trade/buy_radical/radical_buy_strategy.py
@@ -16,7 +16,7 @@
 from third_data.kpl_data_constant import LimitUpDataConstant, LimitUpCodesBlockRecordManager
 from trade.buy_radical import radical_buy_data_manager, block_special_codes_manager
 from trade.buy_radical.block_special_codes_manager import BlockSpecialCodesManager
-from trade.buy_radical.radical_buy_data_manager import RadicalBuyBlockManager
+from trade.buy_radical.radical_buy_data_manager import RadicalBuyBlockManager, TotalDealBigOrderThresholdMoneyManager
 from trade.trade_data_manager import RadicalBuyDealCodesManager
 from utils import tool, global_util
 
@@ -142,6 +142,12 @@
     price = transaction_datas[-1][1]
     huaxin_timestamp = transaction_datas[-1][3]
 
+    # 鍒ゆ柇鏄惁鍙互鎵叆
+    can_direct_buy = False
+    human_setting_money = TotalDealBigOrderThresholdMoneyManager().get_money_cache(code)
+    if human_setting_money:
+        can_direct_buy = True
+
     # 鑾峰彇鍙傝�冩�诲崠棰�
     refer_sell_data = L2MarketSellManager().get_refer_sell_data(code, l2_huaxin_util.convert_time(
         huaxin_timestamp))
@@ -176,7 +182,7 @@
         # 瑕佹眰鐨勫ぇ鍗曞浜� 浠ュ悗锛屽洖灏佷拱锛屽彧瑕佹湁涓や釜澶у崟鎴愪氦浜�,绔嬪嵆涓嬪崟
         THRESHOLD_MONEY, is_temp_threshold_money = radical_buy_data_manager.BeforeSubDealBigOrderManager().get_big_order_threshold_info(
             code)
-        if big_order_money > THRESHOLD_MONEY * 2:
+        if big_order_money > THRESHOLD_MONEY * 2 and can_direct_buy:
             return BUY_MODE_DIRECT, f"鏈変袱涓互涓婂ぇ鍗曠灛鏃舵垚浜わ紙{big_order_money}/{THRESHOLD_MONEY * 2}锛�, 澶у崟瓒冲"
 
     if big_order_count >= 2:
@@ -210,10 +216,10 @@
         if threshold_left_sell_money > left_limit_up_sell_money:
             # 鍓╀綑鎬诲崠灏忎簬鍧囧ぇ鍗曟墠鑳戒笅鍗�
             # 濡傛灉鏄繁璇佷笖鍗栦竴澶т簬5000w鍙笉鍒ゆ柇澶у崟鏄惁婊¤冻
-            if tool.is_sz_code(code) and refer_sell_money >= 5e7:
+            if tool.is_sz_code(code) and refer_sell_money >= 5e7 and can_direct_buy:
                 return BUY_MODE_DIRECT, f"鍓╀綑娑ㄥ仠鎬诲崠棰�-{left_limit_up_sell_money}锛屽潎澶у崟-{average_big_order_money}锛� 鍓╀綑闃堝��-{threshold_left_sell_money}锛� 鎬绘姏鍘嬪ぇ({refer_sell_money})"
             else:
-                if total_lack_money_info[0] <= 0 and tool.is_sz_code(code):
+                if total_lack_money_info[0] <= 0 and tool.is_sz_code(code) and can_direct_buy:
                     return BUY_MODE_DIRECT, f"鍓╀綑娑ㄥ仠鎬诲崠棰�-{left_limit_up_sell_money}锛屽潎澶у崟-{average_big_order_money}, 澶у崟瓒冲"
     else:
         average_big_order_money = 0

--
Gitblit v1.8.0