"""
|
涨停时间管理器
|
"""
|
from log_module import log_export, async_log_util
|
from log_module.log import logger_first_limit_up_time
|
from utils import tool, l2_huaxin_util
|
|
|
class FirstLimitUpTimeManager:
|
"""
|
首次涨停时间管理器
|
"""
|
__instance = None
|
__first_limit_up_price_dict = {}
|
|
def __new__(cls, *args, **kwargs):
|
if not cls.__instance:
|
cls.__instance = super(FirstLimitUpTimeManager, cls).__new__(cls, *args, **kwargs)
|
cls.__load_data()
|
return cls.__instance
|
|
def process(self, market_info):
|
"""
|
处理Market数据
|
:param market_info:
|
:return:
|
"""
|
# 只处理股票代码
|
if not tool.is_stock(market_info[0]):
|
return
|
if market_info[0] in self.__first_limit_up_price_dict:
|
return
|
limit_up_price = tool.get_limit_up_price(market_info[0], market_info[8])
|
if abs(float(limit_up_price) - market_info[1]) < 0.0001:
|
# 涨停价
|
time_str = l2_huaxin_util.convert_time(market_info[9])
|
async_log_util.info(logger_first_limit_up_time, f"{(market_info[0], time_str)}")
|
self.__first_limit_up_price_dict[market_info[0]] = time_str
|
|
def get_first_limit_up_time(self, code):
|
"""
|
获取首次涨停时间
|
:param code:
|
:return:
|
"""
|
self.__first_limit_up_price_dict.get(code)
|
|
@classmethod
|
def __load_data(cls):
|
cls.__first_limit_up_price_dict = log_export.load_first_limit_up_time()
|