From ef86b4113dfbeecc01278dfb49380282eda4a00b Mon Sep 17 00:00:00 2001 From: Matthias Date: Sat, 15 Nov 2025 13:11:10 +0100 Subject: [PATCH] feat: add trading-mode to list-timeframes some exchanges provide different timeframe configurations depending on the market type --- freqtrade/commands/arguments.py | 2 +- freqtrade/exchange/exchange.py | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/freqtrade/commands/arguments.py b/freqtrade/commands/arguments.py index e6805ed5a..ca3b2b422 100755 --- a/freqtrade/commands/arguments.py +++ b/freqtrade/commands/arguments.py @@ -104,7 +104,7 @@ ARGS_BACKTEST_SHOW = [ ARGS_LIST_EXCHANGES = ["print_one_column", "list_exchanges_all", "trading_mode", "dex_exchanges"] -ARGS_LIST_TIMEFRAMES = ["exchange", "print_one_column"] +ARGS_LIST_TIMEFRAMES = ["exchange", "print_one_column", "trading_mode"] ARGS_LIST_PAIRS = [ "exchange", diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index 20d8e20c4..dcd1e4f18 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -430,7 +430,15 @@ class Exchange: @property def timeframes(self) -> list[str]: - return list((self._api.timeframes or {}).keys()) + market_type = ( + "spot" + if self.trading_mode != TradingMode.FUTURES + else self._ft_has["ccxt_futures_name"] + ) + timeframes = self._api.options.get("timeframes", {}).get(market_type) + if timeframes is None: + timeframes = self._api.timeframes + return list((timeframes or {}).keys()) @property def markets(self) -> dict[str, Any]: