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