From e1788016750ad6ec1dfc28a4e6948ecaf5b326e4 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 22 二月 2024 16:03:30 +0800
Subject: [PATCH] 影子单价格修改/消息日志添加/成交太快撤单

---
 huaxin_client/l2_data_manager.py |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/huaxin_client/l2_data_manager.py b/huaxin_client/l2_data_manager.py
index 862f347..b8c91e3 100644
--- a/huaxin_client/l2_data_manager.py
+++ b/huaxin_client/l2_data_manager.py
@@ -43,29 +43,30 @@
         self.l2_transaction_codes = set()
 
     # 璁剧疆璁㈠崟杩囨护鏉′欢
-    def set_order_fileter_condition(self, code, min_volume, limit_up_price, special_volumes=None,
+    # special_price:杩囨护鐨�1鎵嬬殑浠锋牸
+    def set_order_fileter_condition(self, code, min_volume, limit_up_price, special_price, special_volumes=None,
                                     special_volumes_expire_time=None):
         if special_volumes is None:
             special_volumes = set()
         if code in self.filter_order_condition_dict and not special_volumes and not special_volumes_expire_time:
-            self.filter_order_condition_dict[code][0] = (min_volume, limit_up_price)
+            self.filter_order_condition_dict[code][0] = (min_volume, limit_up_price, special_price)
             huaxin_l2_log.info(logger_local_huaxin_l2_subscript,
                                f"({code})甯歌杩囨护鏉′欢璁剧疆锛歿self.filter_order_condition_dict[code]}")
         else:
-            self.filter_order_condition_dict[code] = [(min_volume, limit_up_price), special_volumes,
+            self.filter_order_condition_dict[code] = [(min_volume, limit_up_price, special_price), special_volumes,
                                                       special_volumes_expire_time]
             huaxin_l2_log.info(logger_local_huaxin_l2_subscript,
                                f"({code})涓嬪崟鍚庤繃婊ゆ潯浠惰缃細{self.filter_order_condition_dict[code]}")
 
     # 杩囨护璁㈠崟
     def __filter_order(self, item):
-        # if item[2] == 100 and item[3] == '1':
-        #     # 涓嶈繃婊や拱1鎵�
-        #     return item
         filter_condition = self.filter_order_condition_dict.get(item[0])
         if filter_condition:
             # item[2]涓洪噺
             if item[2] >= filter_condition[0][0]:
+                return item
+            # 1鎵嬬殑涔板崟婊¤冻浠锋牸
+            if item[2] == 100 and item[3] == '1' and abs(filter_condition[0][2] - item[1]) < 0.001:
                 return item
             if filter_condition[1] and item[2] in filter_condition[1]:
                 if filter_condition[2] and time.time() > filter_condition[2]:
@@ -73,8 +74,6 @@
                     filter_condition[1] = set()
                     filter_condition[2] = None
                     return None
-                return item
-            elif item[2] == 100 and item[3] == '1':
                 return item
             return None
         return item

--
Gitblit v1.8.0