From 967abfe26abe09c26df61fe48bab1d64e2253cef Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期三, 20 十一月 2024 15:26:37 +0800
Subject: [PATCH] 添加新接口

---
 l2/l2_data_manager_new.py |   39 +++++++++++++++++++++++++--------------
 1 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py
index 40959db..c962bf9 100644
--- a/l2/l2_data_manager_new.py
+++ b/l2/l2_data_manager_new.py
@@ -466,7 +466,7 @@
                                                                                 add_datas[0], buy_info[2],
                                                                                 shadow_price=shadow_price,
                                                                                 shadow_volume=buy_info[1])
-                                    cls.__place_order_success(code, order_begin_pos_info)
+                                    cls.__place_order_success(code, order_begin_pos_info, None)
                                 except Exception as e:
                                     logger_l2_error.exception(e)
                                 finally:
@@ -778,8 +778,17 @@
         return True, False, f"", False
 
     @classmethod
-    def start_buy(cls, code, last_data, last_data_index, is_first_code):
-        return cls.__buy(code, 0, last_data, last_data_index, is_first_code)
+    def start_buy(cls, code, last_data, last_data_index, is_first_code, block_info):
+        """
+        寮�濮嬩拱鍏�
+        @param code:
+        @param last_data:
+        @param last_data_index:
+        @param is_first_code:
+        @param block_info:鏉垮潡淇℃伅:[(鏉垮潡,娴佸叆淇℃伅)]
+        @return:
+        """
+        return cls.__buy(code, 0, last_data, last_data_index, is_first_code, block_info=block_info)
 
     @classmethod
     def get_active_buy_blocks(cls, code):
@@ -812,7 +821,7 @@
         return None
 
     @classmethod
-    def __place_order_success(cls, code, order_begin_pos):
+    def __place_order_success(cls, code, order_begin_pos, block_info):
         ################涓嬪崟鎴愬姛澶勭悊################
         trade_result_manager.real_buy_success(code, cls.__TradePointManager)
         l2_log.debug(code, "澶勭悊涔板叆鎴愬姛1")
@@ -835,6 +844,7 @@
             info.mode_desc = order_begin_pos.mode_desc
             info.set_buy_index(order_begin_pos.buy_single_index, order_begin_pos.buy_exec_index)
             info.set_sell_info(order_begin_pos.sell_info)
+            info.set_block_info(block_info)
             if jx_blocks:
                 info.set_kpl_blocks(list(jx_blocks))
             elif jx_blocks_by:
@@ -858,7 +868,7 @@
             async_log_util.error(logger_l2_error, f"鍔犲叆涔板叆璁板綍鏃ュ織鍑洪敊锛歿str(e)}")
 
     @classmethod
-    def __buy(cls, code, capture_timestamp, last_data, last_data_index, is_first_code):
+    def __buy(cls, code, capture_timestamp, last_data, last_data_index, is_first_code, block_info=None):
         pre_result = cls.__is_pre_can_buy(code)
         if not pre_result[0]:
             return False
@@ -909,7 +919,7 @@
                                             last_data_index, order_begin_pos.mode, order_begin_pos.buy_exec_index)
                     l2_log.debug(code, "鎵ц涔板叆鎴愬姛")
 
-                    cls.__place_order_success(code, order_begin_pos)
+                    cls.__place_order_success(code, order_begin_pos, block_info)
 
                 except Exception as e:
                     async_log_util.exception(logger_l2_error, e)
@@ -1512,7 +1522,7 @@
         trade_result_manager.virtual_buy_success(code)
 
     @classmethod
-    def __process_with_find_exec_index(cls, code, order_begin_pos: OrderBeginPosInfo, compute_end_index):
+    def __process_with_find_exec_index(cls, code, order_begin_pos: OrderBeginPosInfo, compute_end_index, block_info):
         """
         澶勭悊鎵惧埌鎵ц浣嶇疆
         @return:
@@ -1535,7 +1545,7 @@
             cls.__latest_exec_indexes[code] = cls.__latest_exec_indexes[code][-3:]
 
         # 鐩存帴涓嬪崟
-        ordered = cls.__buy(code, 0, total_datas[-1], total_datas[-1]["index"], True)
+        ordered = cls.__buy(code, 0, total_datas[-1], total_datas[-1]["index"], True, block_info=block_info)
 
         # 鏁版嵁鏄惁澶勭悊瀹屾瘯
         if order_begin_pos.buy_exec_index < compute_end_index:
@@ -1601,11 +1611,12 @@
                                                      max_num_set=set(),
                                                      buy_volume_rate=buy_volume_rate,
                                                      mode=OrderBeginPosInfo.MODE_RADICAL,
-                                                     mode_desc=f"鎬绘姏鍘嬪皬鎵叆:{radical_result[2]}",
+                                                     mode_desc=f"澶у崟涓嶈冻鎵叆:{radical_result[2]}",
                                                      sell_info=sell_info,
                                                      threshold_money=threshold_money)
             order_begin_pos_info.at_limit_up = cls.__is_at_limit_up_buy(code)
-            ordered = cls.__process_with_find_exec_index(code, order_begin_pos_info, compute_end_index)
+            ordered = cls.__process_with_find_exec_index(code, order_begin_pos_info, compute_end_index,
+                                                         block_info=radical_result[3])
             if ordered:
                 radical_buy_data_manager.BlockPlaceOrderRecordManager().add_record(code, radical_result[2])
             return
@@ -1718,7 +1729,7 @@
                                                                        mode_desc=order_begin_pos.mode_desc,
                                                                        sell_info=order_begin_pos.sell_info,
                                                                        threshold_money=threshold_money),
-                                               compute_end_index)
+                                               compute_end_index, block_info=None)
         else:
             # 鏈揪鍒颁笅鍗曟潯浠讹紝淇濆瓨绾拱棰濓紝璁剧疆绾拱棰�
             # 璁板綍涔板叆淇″彿浣嶇疆
@@ -2022,7 +2033,7 @@
         @param code:
         @param start_index:
         @param end_index:
-        @return: (鏄惁鑾峰彇鍒颁俊鍙�, 淇″彿浣嶇疆, 鎵叆鏉垮潡/娑堟伅)
+        @return: (鏄惁鑾峰彇鍒颁俊鍙�, 淇″彿浣嶇疆, 鎵叆鏉垮潡/娑堟伅, 鎵叆鏉垮潡澶у崟娴佸叆淇℃伅)
         """
 
         # 婵�杩涗拱淇″彿鐨勬椂闂�
@@ -2053,7 +2064,7 @@
                 THRESHOLD_MONEY = 2990000 * 2
             else:
                 THRESHOLD_MONEY = 2990000
-            if  total_deal_money >= THRESHOLD_MONEY:
+            if total_deal_money >= THRESHOLD_MONEY:
                 min_num = int(5000 / limit_up_price)
 
             # 鎬诲鎵樺ぇ鍗曢噾棰�
@@ -2132,7 +2143,7 @@
             # 濡傛灉鏉夸笂鏀鹃噺涓嶅彲涔板叆灏遍渶瑕佸垹闄や俊鍙�
             if not constant.CAN_RADICAL_BUY_AT_LIMIT_UP and code in RadicalBuyDealCodesManager.buy_by_l2_delegate_expire_time_dict:
                 RadicalBuyDealCodesManager.buy_by_l2_delegate_expire_time_dict.pop(code)
-            return True, result[1], radical_data[2]
+            return True, result[1], radical_data[2], radical_data[3]
         return result
 
     @classmethod

--
Gitblit v1.8.0