From 6ee38adbb5e20f890f88d290a516c77e593be381 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 27 Dec 2024 19:18:10 +0100 Subject: [PATCH] fix: round open_rate to tradable precisionThis prevents odd display issues with 16 decimals in case of multiple entries. --- freqtrade/persistence/trade_model.py | 6 +++++- tests/persistence/test_persistence.py | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/freqtrade/persistence/trade_model.py b/freqtrade/persistence/trade_model.py index 2ad5ade48..cbe928752 100644 --- a/freqtrade/persistence/trade_model.py +++ b/freqtrade/persistence/trade_model.py @@ -1249,7 +1249,11 @@ class LocalTrade: if current_amount_tr > 0.0: # Trade is still open # Leverage not updated, as we don't allow changing leverage through DCA at the moment. - self.open_rate = float(current_stake / current_amount) + self.open_rate = price_to_precision( + float(current_stake / current_amount), + self.price_precision, + self.precision_mode_price, + ) self.amount = current_amount_tr self.stake_amount = float(current_stake) / (self.leverage or 1.0) self.fee_open_cost = self.fee_open * float(self.max_stake_amount) diff --git a/tests/persistence/test_persistence.py b/tests/persistence/test_persistence.py index a5e237a45..9109fce43 100644 --- a/tests/persistence/test_persistence.py +++ b/tests/persistence/test_persistence.py @@ -8,6 +8,7 @@ from sqlalchemy import select from freqtrade.constants import CUSTOM_TAG_MAX_LENGTH, DATETIME_PRINT_FORMAT from freqtrade.enums import TradingMode from freqtrade.exceptions import DependencyException +from freqtrade.exchange.exchange_utils import TICK_SIZE from freqtrade.persistence import LocalTrade, Order, Trade, init_db from freqtrade.util import dt_now from tests.conftest import ( @@ -2833,6 +2834,8 @@ def test_recalc_trade_from_orders_dca(data) -> None: is_short=False, leverage=1.0, trading_mode=TradingMode.SPOT, + price_precision=0.001, + precision_mode_price=TICK_SIZE, ) Trade.session.add(trade)