From b5434ba1edc4a1733a37ba27d8107478077ea350 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 19 七月 2024 01:35:24 +0800
Subject: [PATCH] G撤调整/S重砸调整

---
 l2/l2_data_manager_new.py |   29 +++++++++++++++++++++--------
 1 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py
index 6f25862..979f4e5 100644
--- a/l2/l2_data_manager_new.py
+++ b/l2/l2_data_manager_new.py
@@ -26,7 +26,7 @@
     transaction_progress, cancel_buy_strategy, place_order_single_data_manager
 from l2.cancel_buy_strategy import DCancelBigNumComputer, \
     LatestCancelIndexManager, \
-    NewGCancelBigNumComputer, JCancelBigNumComputer
+    NewGCancelBigNumComputer, JCancelBigNumComputer, L2DataComputeUtil
 from l2.l2_data_manager import L2DataException, OrderBeginPosInfo
 from l2.l2_data_util import local_today_datas, L2DataUtil, local_today_num_operate_map, local_today_buyno_map, \
     local_latest_datas, local_today_canceled_buyno_map, local_today_sellno_map
@@ -843,16 +843,16 @@
         #     # 14:00:00鍚庡彧鎵撹�佸ぇ鐨勫洖灏�
         #     return False, True, f"14:00:00涓嶆墦鍥炲皝"
 
-        limit_up_price = gpcode_manager.get_limit_up_price(code)
+        limit_up_price = gpcode_manager.get_limit_up_price_as_num(code)
 
-        if constant.MIN_CODE_PRICE < float(limit_up_price) < constant.MAX_CODE_PRICE:
+        if constant.MIN_CODE_PRICE < limit_up_price < constant.MAX_CODE_PRICE:
             # 婊¤冻鏉′欢鐨勫崟浠�
             pass
-        elif float(limit_up_price) > constant.MAX_CODE_PRICE:
+        elif limit_up_price > constant.MAX_CODE_PRICE:
             # HighIncreaseCodeManager().add_code(code)
             # 灏忓競鍊奸珮鑲′环鍙拱
             zyltgb = global_util.zyltgb_map.get(code)
-            if zyltgb > 25e8 or float(limit_up_price) > constant.MAX_SUBSCRIPT_CODE_PRICE:
+            if zyltgb > 25e8 or limit_up_price > constant.MAX_SUBSCRIPT_CODE_PRICE:
                 return False, True, f"鑲′环澶т簬{constant.MAX_CODE_PRICE}鍧�/灏忎簬{constant.MIN_CODE_PRICE}鍧�"
         else:
             return False, True, f"鑲′环灏忎簬{constant.MIN_CODE_PRICE}鍧�"
@@ -943,6 +943,20 @@
                                                                                                           min_money=min_money)
                     if left_count < 1:
                         return False, False, f"娌℃湁宸叉寕鎴栬�呮垚浜ょ殑澶у崟"
+            place_order_count = trade_data_manager.PlaceOrderCountManager().get_place_order_count(code)
+            # 绗竴鍜岀浜屾涓嬪崟閮藉繀椤昏鏈夎嚦灏戜竴绗旀湭鎴愪氦/寰呮垚浜ょ殑澶у崟
+            # 璁$畻澶у崟
+            if place_order_count < 2:
+                trade_index, is_default = transaction_progress.TradeBuyQueue().get_traded_index(code)
+                if trade_index is None:
+                    trade_index = 0
+                total_datas = local_today_datas.get(code)
+                min_money = l2_data_util.get_big_money_val(limit_up_price, tool.is_ge_code(code))
+                left_count, left_num = L2DataComputeUtil.compute_left_buy_order(code, trade_index,
+                                                                                total_datas[-1]["index"],
+                                                                                limit_up_price, min_money)
+                if left_count < 1:
+                    return False, False, f"绗瑊place_order_count+1}涓嬪崟鏃犲緟鎴愪氦鐨勫ぇ鍗�"
 
         # 鏆傛椂娉ㄩ噴鎯充拱鍗曞姛鑳�
         if not cls.__WantBuyCodesManager.is_in_cache(code):
@@ -1157,7 +1171,6 @@
 
     @classmethod
     def can_buy_first_new(cls, code, limit_up_price):
-
         now_timestamp = int(tool.get_now_time_str().replace(":", ""))
         # 鍒ゆ柇鏉垮潡
         # (鍙互涔扮殑鏉垮潡鍒楄〃, 鏄惁鏄嫭鑻�, 娑堟伅绠�浠�,鍙拱鐨勫己鍔夸富绾�, 鏉垮潡鍏抽敭璇�)
@@ -1196,7 +1209,7 @@
                 # 鍚庢帓锛屾弧瓒宠嚜鐢辨祦閫氬競鍊奸渶瑕佷笅鍗�
                 return True, False, can_buy_result[2]
         else:
-            place_order_count = trade_data_manager.PlaceOrderCountManager().get_place_order_count(code)
+
             if place_order_count > 0:
                 return True, False, "涔嬪墠涓嬭繃鍗�"
             if not can_buy_result[0]:
@@ -1859,7 +1872,7 @@
                             return None, buy_nums, buy_count, ii, max_buy_num_set, f"銆恵i}銆戜俊鍙蜂笉杩炵画锛屽泭鎷椂闂�-{max_space_time_ms}ms"
             # 娑ㄥ仠涔�
             if L2DataUtil.is_limit_up_price_buy(_val):
-                if l2_data_util.is_big_money(_val,is_ge_code):
+                if l2_data_util.is_big_money(_val, is_ge_code):
                     max_buy_num_set.add(i)
                 if _val["num"] >= bigger_num:
                     trigger_buy = True

--
Gitblit v1.8.0