From 3ec79004bd769828c8dc18ed35280f81cfb473ff Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期三, 08 二月 2023 19:30:45 +0800 Subject: [PATCH] 交易结果整理 --- l2/transaction_progress.py | 48 +++++++++++++++++++++++++++++++++--------------- 1 files changed, 33 insertions(+), 15 deletions(-) diff --git a/l2/transaction_progress.py b/l2/transaction_progress.py index 6d570b6..cca3926 100644 --- a/l2/transaction_progress.py +++ b/l2/transaction_progress.py @@ -9,6 +9,7 @@ from db import redis_manager import tool import l2.l2_data_util +from log import logger_l2_trade_buy_queue class TradeBuyQueue: @@ -33,17 +34,18 @@ val = json.loads(val) return val[0], [1] - def __save_buy_progress_index(self, code, index): + def __save_buy_progress_index(self, code, index, is_default): key = "trade_buy_progress_index-{}".format(code) - self.__getRedis().setex(key, tool.get_expire(), index) + self.__getRedis().setex(key, tool.get_expire(), json.dumps((index, is_default))) # 杩斿洖鏁版嵁涓庢洿鏂版椂闂� def __get_buy_progress_index(self, code): key = "trade_buy_progress_index-{}".format(code) val = self.__getRedis().get(key) if val is None: - return None - return int(val) + return None, True + val = json.loads(val) + return int(val[0]), bool(val[1]) # 鏈�杩戠殑闈炴定鍋滀拱1鐨勬椂闂� def __save_latest_not_limit_up_time(self, code, time_str): @@ -67,7 +69,9 @@ self.last_buy_queue_data[code] = queues min_num = round(constant.L2_MIN_MONEY / (limit_up_price * 100)) num_list = [] - for num in queues: + # 蹇界暐绗竴鏉℃暟鎹� + for i in range(1, len(queues)): + num = queues[i] if num > min_num: num_list.append(num) # 淇濆瓨鍒楄〃 @@ -78,21 +82,35 @@ def save_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 = l2.l2_data_util.L2TradeQueueUtils.find_traded_progress_index(buy1_price, total_datas, - today_num_operate_map, buyQueueBig,self.__get_latest_not_limit_up_time(code)) - if index is not None: - # 淇濆瓨鎴愪氦杩涘害 - self.__save_buy_progress_index(code, index) - return index + for i in range(0, len(buyQueueBig)): + buyQueueBigTemp = buyQueueBig[i:] + if i > 0 and len(buyQueueBigTemp) < 2: + # 宸茬粡鎵ц杩囦竴娆★紝涓旀暟鎹噺灏忎簬2鏉″氨缁堟璁$畻 + break + + 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)) + 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 # 鑾峰彇鎴愪氦杩涘害绱㈠紩 def get_traded_index(self, code): - index = self.__get_buy_progress_index(code) - return index + 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) if __name__ == '__main': - - pass -- Gitblit v1.8.0