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