Administrator
12 小时以前 ad615df734b4d82f9a83a7d1805ac9fabdf01a53
settings/trade_setting.py
@@ -48,3 +48,56 @@
    def get_situation_cache(self):
        return self.__situation_cache
class TradeBlockBuyModeManager:
    # 第一位:保留   第二位:保留  第三位:买独苗  第四位:传统
    # 0bxxxx
    # 传统模式
    MODE_TRADITIONAL = 0b0001
    # 独苗模式
    MODE_UNIQUE_BLOCK = 0b0010
    __REDIS_KEY = "trade_block_buy_mode"
    __mode = int(MODE_TRADITIONAL)
    """
    板块买入模式管理
    """
    __instance = None
    __db = 2
    redisManager = redis_manager.RedisManager(2)
    def __new__(cls, *args, **kwargs):
        if not cls.__instance:
            cls.__instance = super(TradeBlockBuyModeManager, cls).__new__(cls, *args, **kwargs)
        return cls.__instance
    @classmethod
    def __load_data(cls):
        val = cls.__get_redis().get(cls.__REDIS_KEY)
        if val is not None:
            cls.__mode = int(val)
    @classmethod
    def __get_redis(cls):
        return cls.redisManager.getRedis()
    def __set_mode(self, mode: int):
        self.__mode = mode
        RedisUtils.setex_async(self.__db, self.__REDIS_KEY, tool.get_expire(), mode)
    def get_mode(self):
        return self.__mode
    def add_unique_block(self):
        mode = int(self.__mode | self.MODE_UNIQUE_BLOCK)
        self.__set_mode(mode)
    def remove_unique_block(self):
        mode = int(self.__mode & ~self.MODE_UNIQUE_BLOCK)
        self.__set_mode(mode)
    def can_buy_unique_block(self):
        r = self.__mode & self.MODE_UNIQUE_BLOCK > 1
        return r > 0