From 0033f43c150e7b226455d207a3e148de21c7a938 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期五, 09 五月 2025 18:39:17 +0800 Subject: [PATCH] bug修复 --- huaxin_client/l2_client_test.py | 41 ++++++++++++++++------------------------- 1 files changed, 16 insertions(+), 25 deletions(-) diff --git a/huaxin_client/l2_client_test.py b/huaxin_client/l2_client_test.py index 9a250e4..92fece3 100644 --- a/huaxin_client/l2_client_test.py +++ b/huaxin_client/l2_client_test.py @@ -4,6 +4,7 @@ import queue import time import lev2mdapi +from l2.huaxin import l2_huaxin_util from log_module import log from log_module.log import logger_local_huaxin_l2_subscript, logger_system from utils import tool @@ -66,7 +67,7 @@ def get_big_sell_orders(self): return self.__big_sell_orders - def add_transaction_data_for_accurate(self, data): + def add_transaction_data_for_accurate(self, item): """ 鑾峰彇绮剧‘鐨勪拱鍗曚俊鎭� @param data: @@ -76,18 +77,10 @@ def format_timestamp(timestamp): time_str = str(timestamp) return int(time_str[:5] if time_str[0] == '9' else time_str[:6]) - - item = (data["BuyNo"], data["SellNo"], data["TradePrice"], data["TradeVolume"]) - # item = {"SecurityID": pTransaction['SecurityID'], "TradePrice": pTransaction['TradePrice'], - # "TradeVolume": pTransaction['TradeVolume'], - # "OrderTime": pTransaction['TradeTime'], "MainSeq": pTransaction['MainSeq'], - # "SubSeq": pTransaction['SubSeq'], "BuyNo": pTransaction['BuyNo'], - # "SellNo": pTransaction['SellNo'], - # "ExecType": pTransaction['ExecType'].decode()} money = round(item[2] * item[3]) volume = item[3] price = item[2] - order_time = data["OrderTime"] + order_time = item[4] if item[0] not in self.__big_accurate_buy_order_dict: # (涔板崟鍙�, 閲�, 閲戦, 鏃堕棿, 鏈�鏂版垚浜や环鏍�) self.__big_accurate_buy_order_dict[item[0]] = [item[0], 0, 0, order_time, price] @@ -100,22 +93,20 @@ if self.__latest_buy_order and self.__latest_buy_order[0] != item[0]: # 鏈夊彲鑳芥槸澶у崟鎴愪氦瀹屾垚锛� 鍒ゆ柇涓婁釜璁㈠崟鏄惁鏄ぇ鍗� last_buy_order = self.__big_accurate_buy_order_dict.get(self.__latest_buy_order[0]) - try: - if last_buy_order[2] > 299e4: - self.big_accurate_buy_order_queue.put_nowait(last_buy_order) - except Exception as e: - print("鏁版嵁锛�", last_buy_order, self.__latest_buy_order, item) - raise e + + if last_buy_order[2] > 299e4: + self.big_accurate_buy_order_queue.put_nowait(last_buy_order) + # 濡傛灉鏁版嵁杩囧闇�瑕佺Щ闄よ繃闀挎椂闂寸殑灏忛噾棰濇暟鎹� accurate_buy_count = len(self.__big_accurate_buy_order_dict.keys()) if accurate_buy_count > 10000 and accurate_buy_count - self.__last_accurate_buy_count > 2000: # 瓒呰繃1w鏉℃暟鎹笖鏂板2000鏉℃暟鎹� # 瓒呰繃1w鏉℃暟鎹氨瑕佺Щ闄�30鍒嗛挓涔嬪墠鐨勬暟鎹� - now_time_int = int(tool.trade_time_add_second(tool.get_now_time_str(), -3600).replace(":", "")) + now_time_int = int( + tool.trade_time_add_second(l2_huaxin_util.convert_time(order_time), -3600).replace(":", "")) try: remove_order_nos = [x for x in self.__big_accurate_buy_order_dict if - now_time_int - format_timestamp( - self.__big_accurate_buy_order_dict[x][3]) > 0] + format_timestamp(self.__big_accurate_buy_order_dict[x][3]) < now_time_int] if remove_order_nos: for order_no in remove_order_nos: self.__big_accurate_buy_order_dict.pop(order_no) @@ -141,11 +132,11 @@ if accurate_sell_count > 10000 and accurate_sell_count - self.__last_accurate_sell_count > 2000: # 瓒呰繃1w鏉℃暟鎹笖鏂板2000鏉℃暟鎹� # 瓒呰繃1w鏉℃暟鎹氨瑕佺Щ闄�30鍒嗛挓涔嬪墠鐨勬暟鎹� - now_time_int = int(tool.trade_time_add_second(tool.get_now_time_str(), -3600).replace(":", "")) + now_time_int = int(tool.trade_time_add_second(l2_huaxin_util.convert_time(order_time), -3600).replace(":", "")) try: remove_order_nos = [x for x in self.__big_accurate_sell_order_dict if - now_time_int - format_timestamp( - self.__big_accurate_sell_order_dict[x][3]) > 0] + now_time_int > format_timestamp( + self.__big_accurate_sell_order_dict[x][3])] if remove_order_nos: for order_no in remove_order_nos: self.__big_accurate_sell_order_dict.pop(order_no) @@ -153,7 +144,7 @@ self.__last_accurate_sell_count = len(self.__big_accurate_sell_order_dict.keys()) def add_transaction_data(self, data): - item = (data["BuyNo"], data["SellNo"], data["TradePrice"], data["TradeVolume"]) + item = (data["BuyNo"], data["SellNo"], data["TradePrice"], data["TradeVolume"], data["OrderTime"]) # item = {"SecurityID": pTransaction['SecurityID'], "TradePrice": pTransaction['TradePrice'], # "TradeVolume": pTransaction['TradeVolume'], # "OrderTime": pTransaction['TradeTime'], "MainSeq": pTransaction['MainSeq'], @@ -163,10 +154,10 @@ money = round(item[2] * item[3]) volume = item[3] price = item[2] - order_time = data["OrderTime"] + order_time = item[4] if self.accurate_buy: - self.add_transaction_data_for_accurate(data) + self.add_transaction_data_for_accurate(item) if not self.__latest_buy_order: # (涔板崟鍙�, 閲�, 閲戦, 鏃堕棿, 鏈�鏂版垚浜や环鏍�) -- Gitblit v1.8.0