From 70f473d20da7532f4cb2f84b7e82b0bcee357700 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 24 四月 2023 15:45:36 +0800
Subject: [PATCH] 修复大单bug,优化买入时的档口要求

---
 l2/l2_data_manager_new.py |   31 ++++++++++++++++++++++++-------
 1 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py
index 358e867..50f9580 100644
--- a/l2/l2_data_manager_new.py
+++ b/l2/l2_data_manager_new.py
@@ -672,6 +672,25 @@
     def __can_buy_first(cls, code):
         if not trade_manager.TradeStateManager.is_can_buy():
             return False, True, f"浠婃棩宸茬姝氦鏄�"
+
+        # 鍒ゆ柇涔�1浠锋牸妗d綅
+        zyltgb = global_util.zyltgb_map.get(code)
+        if zyltgb is None:
+            global_data_loader.load_zyltgb()
+            zyltgb = global_util.zyltgb_map.get(code)
+        buy1_price = code_price_manager.Buy1PriceManager.get_buy1_price(code)
+        if buy1_price is None:
+            return False, True, f"灏氭湭鑾峰彇鍒颁拱1浠�"
+        limit_up_price = gpcode_manager.get_limit_up_price(code)
+        dif = float(limit_up_price) - float(buy1_price)
+        if zyltgb >= 80 * 100000000:
+            # 澶т簬2妗�
+            if dif > 0.02001:
+                return False, True, f"涔�1鍓╀綑妗f暟澶т簬2妗o紝涔颁竴锛坽buy1_price}锛夋定鍋滐紙{limit_up_price}锛�"
+        else:
+            if dif > 0.03001:
+                return False, True, f"涔�1鍓╀綑妗f暟澶т簬3妗o紝涔颁竴锛坽buy1_price}锛夋定鍋滐紙{limit_up_price}锛�"
+
         limit_up_info = code_price_manager.Buy1PriceManager.get_limit_up_info(code)
         if limit_up_info[0] is None and False:
             total_data = local_today_datas.get(code)
@@ -707,10 +726,6 @@
             score = cls.__l2PlaceOrderParamsManagerDict[code].score
             score_info = cls.__l2PlaceOrderParamsManagerDict[code].score_info
 
-            zyltgb = global_util.zyltgb_map.get(code)
-            if zyltgb is None:
-                global_data_loader.load_zyltgb()
-                zyltgb = global_util.zyltgb_map.get(code)
             # 鍖哄垎澶хエ锛屽皬绁�
             if zyltgb >= 80 * 100000000:
                 if cls.volume_rate_info[code][0] < 0.5:
@@ -1132,15 +1147,17 @@
             l2_log.buy_debug(code, "浣嶇疆-{}锛屾�绘墜鏁帮細{}锛岀洰鏍囨墜鏁帮細{}", i,
                              buy_nums, threshold_num)
 
+            max_buy_num_set_count = 0
+            for i in max_buy_num_set:
+                max_buy_num_set_count += total_datas[i]["re"]
             # 鏈夋挙鍗曚俊鍙凤紝涓斿皬浜庨槇鍊�
-            if buy_nums >= threshold_num and buy_count >= get_threshold_count() and trigger_buy and len(
-                    max_buy_num_set) >= big_num_count:
+            if buy_nums >= threshold_num and buy_count >= get_threshold_count() and trigger_buy and max_buy_num_set_count >= big_num_count:
                 return i, buy_nums, buy_count, None, max_buy_num_set
 
         l2_log.buy_debug(code, "灏氭湭鑾峰彇鍒颁拱鍏ユ墽琛岀偣锛岃捣濮嬭绠椾綅缃細{} 缁熻绾拱鎵嬫暟锛歿} 鐩爣绾拱鎵嬫暟锛歿}  缁熻绾拱鍗曟暟锛歿} 鐩爣绾拱鍗曟暟锛歿} 澶у崟鏁伴噺锛歿} 鐩爣澶у崟鏁伴噺锛歿}",
                          compute_start_index,
                          buy_nums,
-                         threshold_num, buy_count, get_threshold_count(), len(max_buy_num_set), big_num_count)
+                         threshold_num, buy_count, get_threshold_count(), max_buy_num_set_count, big_num_count)
 
         return None, buy_nums, buy_count, None, max_buy_num_set
 

--
Gitblit v1.8.0