diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index 6dc8eacf9..926f22225 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -268,6 +268,10 @@ class FreqtradeBot(LoggingMixin): Update closed trades without close fees assigned. Only acts when Orders are in the database, otherwise the last orderid is unknown. """ + if self.config['dry_run']: + # Updating open orders in dry-run does not make sense and will fail. + return + trades: List[Trade] = Trade.get_sold_trades_without_assigned_fees() for trade in trades: diff --git a/tests/test_freqtradebot.py b/tests/test_freqtradebot.py index e6aff3352..6257a7e0b 100644 --- a/tests/test_freqtradebot.py +++ b/tests/test_freqtradebot.py @@ -4368,6 +4368,19 @@ def test_update_closed_trades_without_assigned_fees(mocker, default_conf, fee): freqtrade.update_closed_trades_without_assigned_fees() + # Does nothing for dry-run + trades = Trade.get_trades().all() + assert len(trades) == MOCK_TRADE_COUNT + for trade in trades: + assert trade.fee_open_cost is None + assert trade.fee_open_currency is None + assert trade.fee_close_cost is None + assert trade.fee_close_currency is None + + freqtrade.config['dry_run'] = False + + freqtrade.update_closed_trades_without_assigned_fees() + trades = Trade.get_trades().all() assert len(trades) == MOCK_TRADE_COUNT