diff --git a/freqtrade/strategy/informative_decorator.py b/freqtrade/strategy/informative_decorator.py index 3795f8126..15b18b67f 100644 --- a/freqtrade/strategy/informative_decorator.py +++ b/freqtrade/strategy/informative_decorator.py @@ -81,9 +81,12 @@ def __get_pair_formats(market: Optional[Dict[str, Any]]) -> Dict[str, str]: } -def _format_pair_name(config, pair: str) -> str: - return pair.format(stake_currency=config['stake_currency'], - stake=config['stake_currency']).upper() +def _format_pair_name(config, pair: str, market: Optional[Dict[str, Any]] = None) -> str: + return pair.format( + stake_currency=config['stake_currency'], + stake=config['stake_currency'], + **__get_pair_formats(market), + ).upper() def _create_and_merge_informative_pair(strategy, dataframe: DataFrame, metadata: dict, @@ -98,7 +101,8 @@ def _create_and_merge_informative_pair(strategy, dataframe: DataFrame, metadata: if asset: # Insert stake currency if needed. - asset = _format_pair_name(config, asset) + market1 = strategy.dp.market(metadata['pair']) + asset = _format_pair_name(config, asset, market1) else: # Not specifying an asset will define informative dataframe for current pair. asset = metadata['pair'] diff --git a/freqtrade/strategy/interface.py b/freqtrade/strategy/interface.py index 651ca14bf..bd846eb90 100644 --- a/freqtrade/strategy/interface.py +++ b/freqtrade/strategy/interface.py @@ -756,12 +756,23 @@ class IStrategy(ABC, HyperStrategyMixin): candle_type = (inf_data.candle_type if inf_data.candle_type else self.config.get('candle_type_def', CandleType.SPOT)) if inf_data.asset: - pair_tf = ( - _format_pair_name(self.config, inf_data.asset), - inf_data.timeframe, - candle_type, - ) - informative_pairs.append(pair_tf) + if any(s in inf_data.asset for s in ("{BASE}", "{base}")): + for pair in self.dp.current_whitelist(): + + pair_tf = ( + _format_pair_name(self.config, inf_data.asset, self.dp.market(pair)), + inf_data.timeframe, + candle_type, + ) + informative_pairs.append(pair_tf) + + else: + pair_tf = ( + _format_pair_name(self.config, inf_data.asset), + inf_data.timeframe, + candle_type, + ) + informative_pairs.append(pair_tf) else: for pair in self.dp.current_whitelist(): informative_pairs.append((pair, inf_data.timeframe, candle_type))