From d23d8303465252aff20d46a0ce85b710669ade50 Mon Sep 17 00:00:00 2001 From: kokimame Date: Fri, 15 Apr 2022 00:35:11 +0900 Subject: [PATCH 1/2] Avoid ignoring the case precision amount = 0 --- freqtrade/exchange/exchange.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index af3e4c3eb..e0da0878d 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -651,7 +651,7 @@ class Exchange: Re-implementation of ccxt internal methods - ensuring we can test the result is correct based on our definitions. """ - if self.markets[pair]['precision']['amount']: + if self.markets[pair]['precision']['amount'] is not None: amount = float(decimal_to_precision(amount, rounding_mode=TRUNCATE, precision=self.markets[pair]['precision']['amount'], counting_mode=self.precisionMode, From f61d4d36c337f618086c5e4084d1e9cde5ed9718 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 15 Apr 2022 14:48:09 +0200 Subject: [PATCH 2/2] Add test for 0 precision amount --- tests/exchange/test_exchange.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/exchange/test_exchange.py b/tests/exchange/test_exchange.py index cffeec5b3..e99121489 100644 --- a/tests/exchange/test_exchange.py +++ b/tests/exchange/test_exchange.py @@ -231,6 +231,10 @@ def test_validate_order_time_in_force(default_conf, mocker, caplog): (2.34559, 2, 3, 1, 2.345, 'spot'), (2.9999, 2, 3, 1, 2.999, 'spot'), (2.9909, 2, 3, 1, 2.990, 'spot'), + (2.9909, 2, 0, 1, 2, 'spot'), + (29991.5555, 2, 0, 1, 29991, 'spot'), + (29991.5555, 2, -1, 1, 29990, 'spot'), + (29991.5555, 2, -2, 1, 29900, 'spot'), # Tests for Tick-size (2.34559, 4, 0.0001, 1, 2.3455, 'spot'), (2.34559, 4, 0.00001, 1, 2.34559, 'spot'),