From 52c4cb753226d69e9ca04ff73ffa6e8ba79dd917 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期三, 06 十二月 2023 16:36:35 +0800 Subject: [PATCH] 强势时间段调整 --- trade/l2_trade_util.py | 141 +++++++--------------------------------------- 1 files changed, 22 insertions(+), 119 deletions(-) diff --git a/trade/l2_trade_util.py b/trade/l2_trade_util.py index 1fa4817..e7b89fd 100644 --- a/trade/l2_trade_util.py +++ b/trade/l2_trade_util.py @@ -1,147 +1,50 @@ # 鏄惁鍦ㄧ姝氦鏄撲唬鐮佷腑 +from code_attribute import gpcode_manager from db import redis_manager_delegate as redis_manager -from db.redis_manager_delegate import RedisUtils from log_module import async_log_util from log_module.log import logger_trade from trade import trade_record_log_util -from utils import tool __redis_manager = redis_manager.RedisManager(2) -class WhiteListCodeManager: - __instance = None - __redis_manager = redis_manager.RedisManager(2) - - def __new__(cls, *args, **kwargs): - if not cls.__instance: - cls.__instance = super(WhiteListCodeManager, cls).__new__(cls, *args, **kwargs) - # 鍒濆鍖栬缃� - # 鑾峰彇浜ゆ槗绐楀彛鐨勯攣 - cls.__instance.__white_codes_cache = RedisUtils.smembers(cls.__get_redis(), "white_list_codes") - - return cls.__instance - - @classmethod - def __get_redis(cls): - return cls.__redis_manager.getRedis() - - def sync(self): - data = RedisUtils.smembers(self.__get_redis(), "white_list_codes") - self.__white_codes_cache.clear() - if data: - self.__white_codes_cache |= data - - def add_code(self, code): - self.__white_codes_cache.add(code) - RedisUtils.sadd(self.__get_redis(), "white_list_codes", code) - RedisUtils.expire(self.__get_redis(), "white_list_codes", tool.get_expire()) - - def remove_code(self, code): - self.__white_codes_cache.discard(code) - RedisUtils.srem(self.__get_redis(), "white_list_codes", code) - - def is_in(self, code): - return RedisUtils.sismember(self.__get_redis(), "white_list_codes", code) - - def is_in_cache(self, code): - return code in self.__white_codes_cache - - def list_codes(self): - return RedisUtils.smembers(self.__get_redis(), "white_list_codes") - - def list_codes_cache(self): - return self.__white_codes_cache - - def clear(self): - self.__white_codes_cache.clear() - RedisUtils.delete(self.__get_redis(), "white_list_codes") - - -class BlackListCodeManager: - __instance = None - __db = 2 - __redis_manager = redis_manager.RedisManager(2) - - def __new__(cls, *args, **kwargs): - if not cls.__instance: - cls.__instance = super(BlackListCodeManager, cls).__new__(cls, *args, **kwargs) - # 鍒濆鍖栬缃� - # 鑾峰彇浜ゆ槗绐楀彛鐨勯攣 - cls.__instance.__forbidden_trade_codes_cache = RedisUtils.smembers(cls.__get_redis(), - "forbidden-trade-codes") - - return cls.__instance - - @classmethod - def __get_redis(cls): - return cls.__redis_manager.getRedis() - - def add_code(self, code): - self.__forbidden_trade_codes_cache.add(code) - RedisUtils.sadd_async(self.__db, "forbidden-trade-codes", code) - RedisUtils.expire_async(self.__db, "forbidden-trade-codes", tool.get_expire()) - - def sync(self): - data = RedisUtils.smembers(self.__get_redis(), - "forbidden-trade-codes") - self.__forbidden_trade_codes_cache.clear() - if data: - self.__forbidden_trade_codes_cache |= data - - def remove_code(self, code): - self.__forbidden_trade_codes_cache.discard(code) - RedisUtils.srem(self.__get_redis(), "forbidden-trade-codes", code) - - def is_in(self, code): - return RedisUtils.sismember(self.__get_redis(), "forbidden-trade-codes", code) - - def is_in_cache(self, code): - return code in self.__forbidden_trade_codes_cache - - def list_codes(self): - codes = RedisUtils.smembers(self.__get_redis(), "forbidden-trade-codes") - self.__forbidden_trade_codes_cache = codes - return codes - - def list_codes_cache(self): - return self.__forbidden_trade_codes_cache - - def clear(self): - self.__forbidden_trade_codes_cache.clear() - RedisUtils.delete(self.__get_redis(), "forbidden-trade-codes") - - # 鍒濆鍖栫姝氦鏄撲唬鐮佸簱 def init_forbidden_trade_codes(): - BlackListCodeManager().clear() - BlackListCodeManager().add_code("000000") + gpcode_manager.BlackListCodeManager().clear() + gpcode_manager.BlackListCodeManager().add_code("000000") # 绉婚櫎绂佹浜ゆ槗浠g爜 def remove_from_forbidden_trade_codes(code): - BlackListCodeManager().remove_code(code) + gpcode_manager.BlackListCodeManager().remove_code(code) # 娣诲姞浠g爜鍒扮姝氦鏄� def add_to_forbidden_trade_codes(code): - BlackListCodeManager().add_code(code) + gpcode_manager.BlackListCodeManager().add_code(code) # 绂佹浠g爜浜ゆ槗 -def forbidden_trade(code, msg=None): - if not is_in_forbidden_trade_codes(code): - trade_record_log_util.add_forbidden_buy_log(code, msg) - add_to_forbidden_trade_codes(code) - async_log_util.warning(logger_trade, f"{code}鍔犲叆榛戝悕鍗曞師鍥狅細{msg}") +# force 鏄惁寮哄埗鍔犲叆榛戝悕鍗� +def forbidden_trade(code, msg=None, force=False): + need_add = False + if force: + need_add = True + else: + # 妫�鏌ユ槸鍚﹀湪鎯充拱鍗曚腑 + if gpcode_manager.WantBuyCodesManager().is_in_cache(code): + need_add = False + else: + need_add = True + if need_add: + if not is_in_forbidden_trade_codes(code): + trade_record_log_util.add_forbidden_buy_log(code, msg) + add_to_forbidden_trade_codes(code) + async_log_util.warning(logger_trade, f"{code}鍔犲叆榛戝悕鍗曞師鍥狅細{msg}") # l2_data_manager.remove_from_l2_fixed_codes(code) # l2_code_operate.L2CodeOperate.get_instance().remove_l2_listen(code, "绂佹浠g爜浜ゆ槗") def is_in_forbidden_trade_codes(code): - return BlackListCodeManager().is_in_cache(code) + return gpcode_manager.BlackListCodeManager().is_in_cache(code) - -if __name__ == "__main__": - # add_to_forbidden_trade_codes("000977") - WhiteListCodeManager().add_code("002977") -- Gitblit v1.8.0