diff --git a/freqtrade/rpc/api_server/api_schemas.py b/freqtrade/rpc/api_server/api_schemas.py index e582f6aa8..c324f8828 100644 --- a/freqtrade/rpc/api_server/api_schemas.py +++ b/freqtrade/rpc/api_server/api_schemas.py @@ -268,7 +268,7 @@ class DeleteTrade(BaseModel): class PlotConfig_(BaseModel): main_plot: Dict[str, Any] - subplots: Optional[Dict[str, Any]] + subplots: Dict[str, Any] class PlotConfig(BaseModel): diff --git a/freqtrade/rpc/rpc.py b/freqtrade/rpc/rpc.py index fd97ad7d4..d7564bc65 100644 --- a/freqtrade/rpc/rpc.py +++ b/freqtrade/rpc/rpc.py @@ -845,5 +845,7 @@ class RPC: df_analyzed, arrow.Arrow.utcnow().datetime) def _rpc_plot_config(self) -> Dict[str, Any]: - + if (self._freqtrade.strategy.plot_config and + 'subplots' not in self._freqtrade.strategy.plot_config): + self._freqtrade.strategy.plot_config['subplots'] = {} return self._freqtrade.strategy.plot_config diff --git a/tests/rpc/test_rpc_apiserver.py b/tests/rpc/test_rpc_apiserver.py index 69d312e65..fc0dee14b 100644 --- a/tests/rpc/test_rpc_apiserver.py +++ b/tests/rpc/test_rpc_apiserver.py @@ -1142,6 +1142,14 @@ def test_api_plot_config(botclient): assert_response(rc) assert rc.json() == ftbot.strategy.plot_config assert isinstance(rc.json()['main_plot'], dict) + assert isinstance(rc.json()['subplots'], dict) + + ftbot.strategy.plot_config = {'main_plot': {'sma': {}}} + rc = client_get(client, f"{BASE_URI}/plot_config") + assert_response(rc) + + assert isinstance(rc.json()['main_plot'], dict) + assert isinstance(rc.json()['subplots'], dict) def test_api_strategies(botclient):