Add support for {base} and {quote} in informative decorator
This commit is contained in:
@@ -81,9 +81,12 @@ def __get_pair_formats(market: Optional[Dict[str, Any]]) -> Dict[str, str]:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def _format_pair_name(config, pair: str) -> str:
|
def _format_pair_name(config, pair: str, market: Optional[Dict[str, Any]] = None) -> str:
|
||||||
return pair.format(stake_currency=config['stake_currency'],
|
return pair.format(
|
||||||
stake=config['stake_currency']).upper()
|
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,
|
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:
|
if asset:
|
||||||
# Insert stake currency if needed.
|
# 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:
|
else:
|
||||||
# Not specifying an asset will define informative dataframe for current pair.
|
# Not specifying an asset will define informative dataframe for current pair.
|
||||||
asset = metadata['pair']
|
asset = metadata['pair']
|
||||||
|
|||||||
@@ -756,12 +756,23 @@ class IStrategy(ABC, HyperStrategyMixin):
|
|||||||
candle_type = (inf_data.candle_type if inf_data.candle_type
|
candle_type = (inf_data.candle_type if inf_data.candle_type
|
||||||
else self.config.get('candle_type_def', CandleType.SPOT))
|
else self.config.get('candle_type_def', CandleType.SPOT))
|
||||||
if inf_data.asset:
|
if inf_data.asset:
|
||||||
pair_tf = (
|
if any(s in inf_data.asset for s in ("{BASE}", "{base}")):
|
||||||
_format_pair_name(self.config, inf_data.asset),
|
for pair in self.dp.current_whitelist():
|
||||||
inf_data.timeframe,
|
|
||||||
candle_type,
|
pair_tf = (
|
||||||
)
|
_format_pair_name(self.config, inf_data.asset, self.dp.market(pair)),
|
||||||
informative_pairs.append(pair_tf)
|
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:
|
else:
|
||||||
for pair in self.dp.current_whitelist():
|
for pair in self.dp.current_whitelist():
|
||||||
informative_pairs.append((pair, inf_data.timeframe, candle_type))
|
informative_pairs.append((pair, inf_data.timeframe, candle_type))
|
||||||
|
|||||||
Reference in New Issue
Block a user