From 0ed2c53acd278d57a39390fd4db78c5aaf088e0a Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 21 四月 2023 18:03:54 +0800
Subject: [PATCH] 开盘啦数据解析

---
 l2/code_price_manager.py |   35 +++++++++++++++++++++--------------
 1 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/l2/code_price_manager.py b/l2/code_price_manager.py
index 4cdbd6b..7a1f517 100644
--- a/l2/code_price_manager.py
+++ b/l2/code_price_manager.py
@@ -5,10 +5,12 @@
 
 import tool
 from db import redis_manager
+from log import logger_trade_queue_price_info
 
 
 class Buy1PriceManager:
     __redisManager = redis_manager.RedisManager(1)
+    __latest_data = {}
 
     @classmethod
     def __get_redis(cls):
@@ -30,15 +32,24 @@
 
     # 澶勭悊
     @classmethod
-    def process(cls, code, buy_1_price, time_str, limit_up_price):
+    def process(cls, code, buy_1_price, time_str, limit_up_price, sell_1_price, sell_1_volumn):
+        data_str = f"{buy_1_price},{time_str},{limit_up_price},{sell_1_price},{sell_1_volumn}"
+        if cls.__latest_data.get(code) == data_str:
+            return
+        cls.__latest_data[code] = data_str
+        # 璁板綍鏃ュ織
+        logger_trade_queue_price_info.info(
+            f"code={code} data: time_str-{time_str}, buy_1_price-{buy_1_price},limit_up_price-{limit_up_price},sell_1_price-{sell_1_price},sell_1_volumn-{sell_1_volumn}")
         # 涔�1浠锋牸涓嶈兘灏忎簬1鍧�
         if float(buy_1_price) < 1.0:
             return
+
         is_limit_up = abs(float(limit_up_price) - float(buy_1_price)) < 0.01
         old_limit_up_time, old_open_limit_up_time = cls.__get_buy1_price_info(code)
         if old_limit_up_time and old_open_limit_up_time:
             return
-        if is_limit_up and old_limit_up_time is None:
+        if is_limit_up and old_limit_up_time is None and float(sell_1_price) < 0.1 and int(sell_1_volumn) <= 0:
+            # 鍗�1娑堝け锛屼拱1涓烘定鍋滀环鍒欒〃绀烘定鍋�
             cls.__save_buy1_price_info(code, time_str, None)
         elif old_limit_up_time and not is_limit_up and old_open_limit_up_time is None:
             # 鏈夋定鍋滄椂闂达紝褰撳墠娌℃湁娑ㄥ仠锛屼箣鍓嶆病鏈夋墦寮�娑ㄥ仠
@@ -55,21 +66,17 @@
     # 鑾峰彇娑ㄥ仠淇℃伅
     # 杩斿洖娑ㄥ仠鏃堕棿涓庣偢鏉挎椂闂�
     @classmethod
-    def get_limit_up_info(cls,code):
+    def get_limit_up_info(cls, code):
         old_limit_up_time, old_open_limit_up_time = cls.__get_buy1_price_info(code)
         return old_limit_up_time, old_open_limit_up_time
 
-
+    # 璁剧疆娑ㄥ仠鏃堕棿
+    @classmethod
+    def set_limit_up_time(cls, code, time_str):
+        limit_up_time, open_limit_up_time = cls.get_limit_up_info(code)
+        if limit_up_time is None:
+            cls.__save_buy1_price_info(code, time_str, None)
 
 
 if __name__ == "__main__":
-    code = "000333"
-    limit_up_price = "54.00"
-    Buy1PriceManager.process("000333", "53.00", "09:56:00", limit_up_price)
-    print(Buy1PriceManager.is_can_buy(code))
-    Buy1PriceManager.process("000333", "54.00", "09:57:00", limit_up_price)
-    print(Buy1PriceManager.is_can_buy(code))
-    Buy1PriceManager.process("000333", "53.00", "09:58:00", limit_up_price)
-    print(Buy1PriceManager.is_can_buy(code))
-    Buy1PriceManager.process("000333", "54.00", "09:59:00", limit_up_price)
-    print(Buy1PriceManager.is_can_buy(code))
+    print(Buy1PriceManager.get_limit_up_info("002777"))

--
Gitblit v1.8.0