Add freqaimodel to pair history endpoint

closes #8566
This commit is contained in:
Matthias 2023-05-02 19:51:33 +02:00
parent fb5fac164d
commit f419d7870d
3 changed files with 11 additions and 5 deletions

View File

@ -247,14 +247,17 @@ def pair_candles(
@router.get('/pair_history', response_model=PairHistory, tags=['candle data']) @router.get('/pair_history', response_model=PairHistory, tags=['candle data'])
def pair_history(pair: str, timeframe: str, timerange: str, strategy: str, def pair_history(pair: str, timeframe: str, timerange: str, strategy: str,
freqaimodel: Optional[str] = None,
config=Depends(get_config), exchange=Depends(get_exchange)): config=Depends(get_config), exchange=Depends(get_exchange)):
# The initial call to this endpoint can be slow, as it may need to initialize # The initial call to this endpoint can be slow, as it may need to initialize
# the exchange class. # the exchange class.
config = deepcopy(config) config = deepcopy(config)
config.update({ config.update({
'strategy': strategy, 'strategy': strategy,
'timerange': timerange,
'freqaimodel': freqaimodel if freqaimodel else config.get('freqaimodel'),
}) })
return RPC._rpc_analysed_history_full(config, pair, timeframe, timerange, exchange) return RPC._rpc_analysed_history_full(config, pair, timeframe, exchange)
@router.get('/plot_config', response_model=PlotConfig, tags=['candle data']) @router.get('/plot_config', response_model=PlotConfig, tags=['candle data'])

View File

@ -1216,8 +1216,8 @@ class RPC:
@staticmethod @staticmethod
def _rpc_analysed_history_full(config: Config, pair: str, timeframe: str, def _rpc_analysed_history_full(config: Config, pair: str, timeframe: str,
timerange: str, exchange) -> Dict[str, Any]: exchange) -> Dict[str, Any]:
timerange_parsed = TimeRange.parse_timerange(timerange) timerange_parsed = TimeRange.parse_timerange(config.get('timerange'))
_data = load_data( _data = load_data(
datadir=config["datadir"], datadir=config["datadir"],
@ -1228,7 +1228,8 @@ class RPC:
candle_type=config.get('candle_type_def', CandleType.SPOT) candle_type=config.get('candle_type_def', CandleType.SPOT)
) )
if pair not in _data: if pair not in _data:
raise RPCException(f"No data for {pair}, {timeframe} in {timerange} found.") raise RPCException(
f"No data for {pair}, {timeframe} in {config.get('timerange')} found.")
from freqtrade.data.dataprovider import DataProvider from freqtrade.data.dataprovider import DataProvider
from freqtrade.resolvers.strategy_resolver import StrategyResolver from freqtrade.resolvers.strategy_resolver import StrategyResolver
strategy = StrategyResolver.load_strategy(config) strategy = StrategyResolver.load_strategy(config)

View File

@ -348,12 +348,13 @@ class FtRestClient():
params['limit'] = limit params['limit'] = limit
return self._get("pair_candles", params=params) return self._get("pair_candles", params=params)
def pair_history(self, pair, timeframe, strategy, timerange=None): def pair_history(self, pair, timeframe, strategy, timerange=None, freqaimodel=None):
"""Return historic, analyzed dataframe """Return historic, analyzed dataframe
:param pair: Pair to get data for :param pair: Pair to get data for
:param timeframe: Only pairs with this timeframe available. :param timeframe: Only pairs with this timeframe available.
:param strategy: Strategy to analyze and get values for :param strategy: Strategy to analyze and get values for
:param freqaimodel: FreqAI model to use for analysis
:param timerange: Timerange to get data for (same format than --timerange endpoints) :param timerange: Timerange to get data for (same format than --timerange endpoints)
:return: json object :return: json object
""" """
@ -361,6 +362,7 @@ class FtRestClient():
"pair": pair, "pair": pair,
"timeframe": timeframe, "timeframe": timeframe,
"strategy": strategy, "strategy": strategy,
"freqaimodel": freqaimodel,
"timerange": timerange if timerange else '', "timerange": timerange if timerange else '',
}) })