From 7eb1a8ed1a007d80de41d131071ee38f5872700c Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 07 二月 2025 14:26:37 +0800
Subject: [PATCH] 辨识度票策略修改/恢复P撤/上传订阅涨幅

---
 l2/code_price_manager.py |   36 ++++++++++++++++++++++++++++++++++--
 1 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/l2/code_price_manager.py b/l2/code_price_manager.py
index 0f00fbe..df76595 100644
--- a/l2/code_price_manager.py
+++ b/l2/code_price_manager.py
@@ -2,8 +2,12 @@
 浠g爜浠锋牸绠$悊
 """
 import json
+import threading
+import time
+
+from code_attribute.gpcode_manager import CodePrePriceManager
 from db.redis_manager_delegate import RedisUtils
-from utils import tool
+from utils import tool, middle_api_protocol
 from db import redis_manager_delegate as redis_manager
 from log_module.log import logger_trade_queue_price_info
 
@@ -73,7 +77,6 @@
                                          (limit_up_time, open_limit_up_time))
         RedisUtils.setex_async(self.__db, f"buy1_price_limit_up_info-{code}", tool.get_expire(),
                                json.dumps((limit_up_time, open_limit_up_time)))
-
 
     def __get_buy1_price_limit_up_info_cache(self, code):
         cache_result = tool.CodeDataCacheUtil.get_cache(self.__buy1_price_limit_up_info_cache, code)
@@ -200,5 +203,34 @@
         return self.__latest_3m_buy1_money_list_dict.get(code)
 
 
+class CurrentPriceManager:
+    """
+    鐜颁环绠$悊
+    """
+    # 浠g爜娑ㄥ箙鏁版嵁
+    __current_rate_dict = {}
+    # 鏈�杩戜笂浼犳椂闂�
+    __latest_upload_time = 0
+
+    @classmethod
+    def set_current_price(cls, code, price):
+        """
+        璁剧疆鐜颁环
+        @param code:
+        @param price:
+        @return:
+        """
+        pre_close_price = CodePrePriceManager.get_price_pre_cache(code)
+        if pre_close_price:
+            rate = round((price - pre_close_price) * 100 / pre_close_price, 2)
+            cls.__current_rate_dict[code] = rate
+        # 鍒ゆ柇鏄惁瑕佷笂浼�
+        if time.time() - cls.__latest_upload_time >= 3:
+            # 闂撮殧3s涓婁紶
+            cls.__latest_upload_time = time.time()
+            threading.Thread(target=lambda: middle_api_protocol.request(
+                middle_api_protocol.load_l2_subscript_codes_rate(cls.__current_rate_dict)), daemon=True).start()
+
+
 if __name__ == "__main__":
     print(Buy1PriceManager().get_limit_up_info("002777"))

--
Gitblit v1.8.0