diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index c6d3d0f44..3f7eab27a 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -511,7 +511,7 @@ class FreqtradeBot: trade.pair.startswith(exectrade['fee']['currency'])): fee_abs += exectrade['fee']['cost'] - if not isclose(amount, order_amount, rel_tol=constants.MATH_CLOSE_PREC): + if not isclose(amount, order_amount, abs_tol=constants.MATH_CLOSE_PREC): logger.warning(f"Amount {amount} does not match amount {trade.amount}") raise OperationalException("Half bought? Amounts don't match") real_amount = amount - fee_abs @@ -536,7 +536,7 @@ class FreqtradeBot: # Try update amount (binance-fix) try: new_amount = self.get_real_amount(trade, order) - if not isclose(order['amount'], new_amount, rel_tol=constants.MATH_CLOSE_PREC): + if not isclose(order['amount'], new_amount, abs_tol=constants.MATH_CLOSE_PREC): order['amount'] = new_amount # Fee was applied, so set to 0 trade.fee_open = 0 diff --git a/tests/test_freqtradebot.py b/tests/test_freqtradebot.py index dd535a0b0..ee28f2e58 100644 --- a/tests/test_freqtradebot.py +++ b/tests/test_freqtradebot.py @@ -3277,7 +3277,7 @@ def test_get_real_amount_wrong_amount_rounding(default_conf, trades_for_order, b # Amount changes by fee amount. assert isclose(freqtrade.get_real_amount(trade, limit_buy_order), amount - (amount * 0.001), - rel_tol=MATH_CLOSE_PREC,) + abs_tol=MATH_CLOSE_PREC,) def test_get_real_amount_invalid(default_conf, trades_for_order, buy_order_fee, mocker):