From b74016d3ba3750cd27fee83675449da8f1da3926 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 09 二月 2023 18:47:34 +0800
Subject: [PATCH] 建立取消单元测试机制/修改H撤(看成交位置相邻大单与总整体数据TOPN大单)

---
 l2/transaction_progress.py |   49 +++++++++++++++++++++++++++++++++++++------------
 1 files changed, 37 insertions(+), 12 deletions(-)

diff --git a/l2/transaction_progress.py b/l2/transaction_progress.py
index cca3926..df52f47 100644
--- a/l2/transaction_progress.py
+++ b/l2/transaction_progress.py
@@ -3,6 +3,7 @@
 '''
 
 # 涔板叆闃熷垪
+import itertools
 import json
 
 import constant
@@ -79,9 +80,10 @@
         return num_list
 
     # 淇濆瓨鎴愪氦绱㈠紩
-    def save_traded_index(self, code, buy1_price, buyQueueBig):
+    def compute_traded_index(self, code, buy1_price, buyQueueBig):
         total_datas = l2.l2_data_util.local_today_datas.get(code)
         today_num_operate_map = l2.l2_data_util.local_today_num_operate_map.get(code)
+        index = None
         for i in range(0, len(buyQueueBig)):
             buyQueueBigTemp = buyQueueBig[i:]
             if i > 0 and len(buyQueueBigTemp) < 2:
@@ -90,18 +92,38 @@
 
             last_index, is_default = self.get_traded_index(code)
 
-            index = l2.l2_data_util.L2TradeQueueUtils.find_traded_progress_index(buy1_price, total_datas,
-                                                                                 today_num_operate_map, buyQueueBigTemp,
-                                                                                 (
-                                                                                     last_index if last_index is not is_default else 0),
-                                                                                 self.__get_latest_not_limit_up_time(
-                                                                                     code))
+            c_last_index = 0
+            if not is_default and last_index is not None:
+                c_last_index = last_index
+            # 濡傛灉鏄�3涓�/4涓暟鎹壘涓嶅埌灏辫皟鏁撮『搴�
+            fbuyQueueBigTempList = []
+            if 3 <= len(buyQueueBigTemp) <= 4:
+                buyQueueBigTempList = itertools.permutations(buyQueueBigTemp, len(buyQueueBigTemp))
+                for tempQueue in buyQueueBigTempList:
+                    if list(tempQueue) != buyQueueBigTemp:
+                        fbuyQueueBigTempList.append(tempQueue)
+            fbuyQueueBigTempList.insert(0, buyQueueBigTemp)
+            for temp in fbuyQueueBigTempList:
+                try:
+                    index = l2.l2_data_util.L2TradeQueueUtils.find_traded_progress_index(buy1_price, total_datas,
+                                                                                         today_num_operate_map,
+                                                                                         temp,
+                                                                                         c_last_index,
+                                                                                         self.__get_latest_not_limit_up_time(
+                                                                                             code))
+                    if index is not None:
+                        break
+                except:
+                    pass
             if index is not None:
-                logger_l2_trade_buy_queue.info(f"纭畾浜ゆ槗杩涘害锛歝ode-{code} index-{index}")
-                # 淇濆瓨鎴愪氦杩涘害
-                self.__save_buy_progress_index(code, index, False)
-                return index
-        return None
+                break
+
+        if index is not None:
+            logger_l2_trade_buy_queue.info(f"纭畾浜ゆ槗杩涘害锛歝ode-{code} index-{index}")
+            # 淇濆瓨鎴愪氦杩涘害
+            # self.__save_buy_progress_index(code, index, False)
+            return index
+        return index
 
     # 鑾峰彇鎴愪氦杩涘害绱㈠紩
     def get_traded_index(self, code):
@@ -111,6 +133,9 @@
     def set_default_traded_index(self, code, index):
         self.__save_buy_progress_index(code, index, True)
 
+    def set_traded_index(self, code, index):
+        self.__save_buy_progress_index(code, index, False)
+
 
 if __name__ == '__main':
     pass

--
Gitblit v1.8.0