Administrator
2025-03-11 7dc4ca8b88b92f51abb49fde1b2fb82a40edaa66
trade/sell_rule_manager.py
@@ -20,39 +20,22 @@
    MODE_CANCEL_MECHINE = 1
    __instance = None
    __auto_cancel_sell_mode = MODE_CANCEL_ALL
    redisManager = redis_manager.RedisManager(2)
    __code_auto_cancel_mode_dict = {}
    def __new__(cls, *args, **kwargs):
        if not cls.__instance:
            cls.__instance = super(AutoCancelSellModeManager, cls).__new__(cls, *args, **kwargs)
            # 初始化设置
            # 获取交易窗口的锁
            cls.__auto_cancel_sell_mode = cls.get_mode()
        return cls.__instance
    @classmethod
    def __get_redis(cls):
        return cls.redisManager.getRedis()
    def set_mode(self, mode):
    def set_mode(self, code, mode):
        if mode != self.MODE_CANCEL_ALL and mode != self.MODE_CANCEL_MECHINE:
            raise Exception("mode参数值错误")
        self.__auto_cancel_sell_mode = mode
        RedisUtils.setex(self.__get_redis(), "auto_cancel_sell_mode", tool.get_expire(), mode)
        self.__code_auto_cancel_mode_dict[code] = mode
    # 是否可以下单
    @classmethod
    def get_mode(cls):
        # 默认设置为可交易
        val = RedisUtils.get(cls.__get_redis(), "auto_cancel_sell_mode")
        if val is None:
            return cls.MODE_CANCEL_ALL
        return int(val)
    def get_mode_cache(self):
        return self.__auto_cancel_sell_mode
    def get_mode_cache(self, code):
        if code in self.__code_auto_cancel_mode_dict:
            return self.__code_auto_cancel_mode_dict[code]
        return self.MODE_CANCEL_ALL
class SellRule:
@@ -212,4 +195,4 @@
if __name__ == "__main__":
    printlog( TradeRuleManager().list_rules("2023-12-01"))
    printlog(TradeRuleManager().list_rules("2023-12-01"))