{"record":{"id":"b41f9347943df3e1","repo":"freqtrade/freqtrade","slug":"freqtrade-does-not-support-mm-value-trading","errorCode":null,"errorMessage":"Freqtrade does not support '{mm_value}' '{trading_mode}' on {self.name}.","messagePattern":"Freqtrade does not support '(.+?)' '(.+?)' on (.+?)\\.","errorType":"exception","errorClass":"ConfigurationError","httpStatus":null,"severity":"error","filePath":"freqtrade/exchange/exchange.py","lineNumber":954,"sourceCode":"        Throws OperationalException:\n            If the trading_mode/margin_mode type are not supported by freqtrade on this exchange\n        \"\"\"\n        if trading_mode == TradingMode.SPOT:\n            return\n        if allow_none_margin_mode and margin_mode is None:\n            # Verify trading mode independent of margin mode\n            if not any(\n                trading_mode == pair[0] for pair in self._supported_trading_mode_margin_pairs\n            ):\n                raise ConfigurationError(\n                    f\"Freqtrade does not support '{trading_mode}' on {self.name}.\"\n                )\n\n        if not allow_none_margin_mode and (\n            (trading_mode, margin_mode) not in self._supported_trading_mode_margin_pairs\n        ):\n            mm_value = margin_mode and margin_mode.value\n            raise ConfigurationError(\n                f\"Freqtrade does not support '{mm_value}' '{trading_mode}' on {self.name}.\"\n            )\n\n    @classmethod\n    def combine_ft_has(cls, include_futures: bool) -> FtHas:\n        \"\"\"\n        Combine all ft_has options from the class hierarchy.\n        Child classes override parent classes.\n        Doesn't apply overrides from the configuration.\n        \"\"\"\n        _ft_has = deep_merge_dicts(cls._ft_has, deepcopy(cls._ft_has_default))\n\n        if include_futures:\n            _ft_has = deep_merge_dicts(cls._ft_has_futures, _ft_has)\n        return _ft_has\n\n    def build_ft_has(self, exchange_conf: ExchangeConfig) -> None:\n        \"\"\"","sourceCodeStart":936,"sourceCodeEnd":972,"githubUrl":"https://github.com/freqtrade/freqtrade/blob/1c8edfe4d1e8d11bd4b40e8fc3237c26c3a60e15/freqtrade/exchange/exchange.py#L936-L972","documentation":"Raised in validate_trading_mode_and_margin_mode() when margin_mode is provided and the exact (trading_mode, margin_mode) tuple is absent from the exchange's _supported_trading_mode_margin_pairs. Even if an exchange supports futures, it may only allow one margin mode (typically isolated); this error names the offending margin_mode value. The combination-level check is the authoritative gate for futures setups.","triggerScenarios":"\"trading_mode\": \"futures\", \"margin_mode\": \"cross\" on an exchange that only lists (FUTURES, ISOLATED); spot margin_mode combos that the subclass does not declare.","commonSituations":"Cross-margin configs copied from binance futures onto exchanges supporting only isolated; users assuming margin_mode is interchangeable; older freqtrade versions with fewer supported tuples after an exchange update.","solutions":["Set margin_mode to the one the exchange supports for that trading mode (usually \"isolated\" for futures).","Switch to an exchange supporting the desired (trading_mode, margin_mode) pair.","Update freqtrade — supported pairs lists expand over releases."],"exampleFix":"# config.json - before\n\"trading_mode\": \"futures\", \"margin_mode\": \"cross\"\n\n# after\n\"trading_mode\": \"futures\", \"margin_mode\": \"isolated\"","handlingStrategy":"validation","validationCode":"tm, mm = config.get('trading_mode'), config.get('margin_mode')\nif tm != 'spot' and mm is not None:\n    pairs = {(str(a), str(b)) for a, b in exchange._supported_trading_mode_margin_pairs}\n    if (tm, mm) not in pairs:\n        raise SystemExit(f\"({tm}, {mm}) not supported on {exchange.name}\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Match margin_mode to what the exchange supports (futures usually 'isolated').","Update freqtrade when adding new exchanges — supported mode pairs grow per release."],"tags":["exchange","trading-mode","margin-mode","futures","configuration"],"backgroundTag":null,"analyzedSha":"1c8edfe4d1e8d11bd4b40e8fc3237c26c3a60e15","analyzedAt":"2026-08-15T05:09:08.096Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}