diff --git a/freqtrade/persistence/trade_model.py b/freqtrade/persistence/trade_model.py index e66c22372..a4f8ff024 100644 --- a/freqtrade/persistence/trade_model.py +++ b/freqtrade/persistence/trade_model.py @@ -1053,7 +1053,7 @@ class LocalTrade: price = avg_price if is_exit else tmp_price current_stake += price * tmp_amount * side - if current_amount > ZERO: + if current_amount > ZERO and not is_exit: avg_price = current_stake / current_amount if is_exit: diff --git a/tests/persistence/test_persistence.py b/tests/persistence/test_persistence.py index 64c565e9d..e949b9deb 100644 --- a/tests/persistence/test_persistence.py +++ b/tests/persistence/test_persistence.py @@ -2392,9 +2392,8 @@ def test_recalc_trade_from_orders_kucoin(): trade.update_trade(order3) # assert trade.amount == o1_amount + o2_amount assert trade.is_open is False - # The below values are wrong. assert trade.amount == 8e-09 - assert trade.close_profit_abs == -8270.49735089 + assert trade.close_profit_abs == 3.90069871 @pytest.mark.parametrize('is_short', [True, False])