From 96ede6bdcb28d8d2a8d50146564cbbc67bacf23b Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 13 三月 2024 16:21:46 +0800
Subject: [PATCH] 板上买的条件调整

---
 l2/l2_data_manager_new.py |   40 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 36 insertions(+), 4 deletions(-)

diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py
index 7eae4e3..d611564 100644
--- a/l2/l2_data_manager_new.py
+++ b/l2/l2_data_manager_new.py
@@ -1619,10 +1619,18 @@
         limit_up_price = gpcode_manager.get_limit_up_price(code)
         if limit_up_price is None:
             raise Exception("娑ㄥ仠浠锋棤娉曡幏鍙�")
+        limit_up_price = float(limit_up_price)
 
         threshold_num = None
         # 澶х洰鏍囨墜鏁帮紙婊¤冻杩欎釜灏变笉闇�瑕佺湅瀹夊叏绗旀暟锛�
         threshold_max_num = None
+
+        # 鐩爣璁㈠崟鏁伴噺
+        threshold_count = cls.__l2PlaceOrderParamsManagerDict[code].get_safe_count()
+
+        # 鏈�澶ч棿闅旀椂闂磎s
+        max_space_time_ms = cls.__l2PlaceOrderParamsManagerDict[code].get_time_range() * 1000
+
         # ----------------璋冩暣鏉夸笂涓嬪崟鐨刴鍊间笌瀹夊叏绗旀暟----------------
         if at_limit_up:
             # 鏉夸笂涔帮紝鑾峰彇鏈�杩戜竴娆¢棯鐢典笅鍗曠殑鎬诲崠棰�
@@ -1632,6 +1640,32 @@
                 # 鎬诲崠鐨勪竴鍗婁綔涓簃鍊�
                 threshold_num = int(sell_data[1] / (limit_up_price * 100)) // 2
                 threshold_max_num = 1
+            #  淇″彿涓轰箣鍓嶆湁寰呮垚浜ょ殑澶у崟锛堜笉鏄鍦ㄦ垚浜わ級
+            trade_index,is_default = cls.__TradeBuyQueue.get_traded_index(code)
+            if not is_default and trade_index is not None:
+                temp_big_num = int(30000/limit_up_price)
+                for i in range(trade_index+1, buy_single_index):
+                    data = total_datas[i]
+                    val = data['val']
+                    if not L2DataUtil.is_limit_up_price_buy(val):
+                        continue
+                        # 鍒ゆ柇鏄惁鏈夊ぇ鍗曟湭鎴愪氦
+                    if temp_big_num > val["num"]:
+                        continue
+
+                    left_count = l2_data_source_util.L2DataSourceUtils.get_limit_up_buy_no_canceled_count_v2(code,
+                                                                                                             data[
+                                                                                                                 "index"],
+                                                                                                             total_datas,
+                                                                                                             local_today_canceled_buyno_map.get(
+                                                                                                                 code))
+                    if left_count > 0:
+                        # 瀹夊叏绗旀暟涓庡泭鎷椂闂磋寖鍥翠慨鏀�
+                        threshold_count = 3
+                        max_space_time_ms = 9*1000
+                        break
+
+
 
         if not threshold_num:
             # 鐩爣鎵嬫暟
@@ -1640,16 +1674,14 @@
             threshold_max_num = int(threshold_num * 1.2)
 
         # place_order_count = trade_data_manager.PlaceOrderCountManager().get_place_order_count(code)
-        # 鐩爣璁㈠崟鏁伴噺
-        threshold_count = cls.__l2PlaceOrderParamsManagerDict[code].get_safe_count()
+
 
         # buy_single_time_seconds = L2DataUtil.get_time_as_second(total_datas[buy_single_index]["val"]["time"])
 
         # 鍙互瑙﹀彂涔帮紝褰撴湁娑ㄥ仠涔颁俊鍙锋椂鎵嶄細瑙﹀彂涔�
         trigger_buy = True
 
-        # 鏈�澶ч棿闅旀椂闂磎s
-        max_space_time_ms = cls.__l2PlaceOrderParamsManagerDict[code].get_time_range() * 1000
+
         # 濡傛灉澶у崟鍚湁鐜囧ぇ浜�50%锛屽垯鏃堕棿鍥婃嫭鑼冨洿鎻愰珮鍒�3s
         if max_num_set and origin_count:
             if len(max_num_set) / origin_count > 0.5:

--
Gitblit v1.8.0