From 92cb2dd75ea37b64b174f42ddd0b5b17d6a4634a Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 16 二月 2023 16:04:11 +0800
Subject: [PATCH] H撤策略优化,新增热门板块爬取,新增windows截图工具

---
 l2/transaction_progress.py |   54 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 30 insertions(+), 24 deletions(-)

diff --git a/l2/transaction_progress.py b/l2/transaction_progress.py
index df52f47..81c0449 100644
--- a/l2/transaction_progress.py
+++ b/l2/transaction_progress.py
@@ -10,7 +10,7 @@
 from db import redis_manager
 import tool
 import l2.l2_data_util
-from log import logger_l2_trade_buy_queue
+from log import logger_l2_trade_buy_queue, logger_l2_trade_buy_progress
 
 
 class TradeBuyQueue:
@@ -55,7 +55,9 @@
 
     def __get_latest_not_limit_up_time(self, code):
         key = "latest_not_limit_up_time-{}".format(code)
-        self.__getRedis().get(key)
+        if not constant.TEST:
+            return self.__getRedis().get(key)
+        return None
 
     # 淇濆瓨鏁版嵁,杩斿洖淇濆瓨鏁版嵁鐨勬潯鏁�
     def save(self, code, limit_up_price, buy_1_price, buy_1_time, queues):
@@ -80,21 +82,17 @@
         return num_list
 
     # 淇濆瓨鎴愪氦绱㈠紩
-    def compute_traded_index(self, code, buy1_price, buyQueueBig):
+    def compute_traded_index(self, code, buy1_price, buyQueueBig, exec_time=None):
         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:
-                # 宸茬粡鎵ц杩囦竴娆★紝涓旀暟鎹噺灏忎簬2鏉″氨缁堟璁$畻
-                break
-
+        if True:
+            buyQueueBigTemp = buyQueueBig
             last_index, is_default = self.get_traded_index(code)
-
             c_last_index = 0
             if not is_default and last_index is not None:
                 c_last_index = last_index
+            latest_not_limit_up_time = self.__get_latest_not_limit_up_time(code)
             # 濡傛灉鏄�3涓�/4涓暟鎹壘涓嶅埌灏辫皟鏁撮『搴�
             fbuyQueueBigTempList = []
             if 3 <= len(buyQueueBigTemp) <= 4:
@@ -105,33 +103,41 @@
             fbuyQueueBigTempList.insert(0, buyQueueBigTemp)
             for temp in fbuyQueueBigTempList:
                 try:
-                    index = l2.l2_data_util.L2TradeQueueUtils.find_traded_progress_index(buy1_price, total_datas,
+                    index = l2.l2_data_util.L2TradeQueueUtils.find_traded_progress_index(code, buy1_price, total_datas,
                                                                                          today_num_operate_map,
                                                                                          temp,
                                                                                          c_last_index,
-                                                                                         self.__get_latest_not_limit_up_time(
-                                                                                             code))
+                                                                                         latest_not_limit_up_time
+                                                                                         )
                     if index is not None:
-                        break
+                        # 鍒ゆ柇浣嶇疆鏄惁澶т簬鎵ц浣�2s
+                        if exec_time and tool.trade_time_sub(total_datas[index]["val"]["time"], exec_time) > 5:
+                            # 浣嶇疆鏄惁澶т簬鎵ц浣�2s琛ㄧず鏃犳晥
+                            index = None
+                            continue
+                        # 鍙兘鍓婂噺涓�鍗婁互涓嬫墠鑳界粓姝�
+                        if len(temp) * 2 < len(buyQueueBig):
+                            index = None
+                            break
                 except:
                     pass
-            if index is not 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
+            if index is not None:
+                logger_l2_trade_buy_queue.info(f"纭畾浜ゆ槗杩涘害锛歝ode-{code} index-{index}")
+                logger_l2_trade_buy_progress.info(
+                    f"纭畾浜ゆ槗杩涘害鎴愬姛锛歝ode-{code}  index-{index} queues:{buyQueueBig}  last_index-{c_last_index} latest_not_limit_up_time-{latest_not_limit_up_time}  exec_time-{exec_time}")
+                # 淇濆瓨鎴愪氦杩涘害
+                # self.__save_buy_progress_index(code, index, False)
+                return index
+            else:
+                logger_l2_trade_buy_progress.warning(
+                    f"纭畾浜ゆ槗杩涘害澶辫触锛歝ode-{code} queues:{buyQueueBig}  last_index-{c_last_index} latest_not_limit_up_time-{latest_not_limit_up_time} exec_time-{exec_time}")
         return index
 
     # 鑾峰彇鎴愪氦杩涘害绱㈠紩
     def get_traded_index(self, code):
         index, is_default = self.__get_buy_progress_index(code)
         return index, is_default
-
-    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)

--
Gitblit v1.8.0