From ad295946c0ed81aaaf05e1cfd7d1548d4a1ce3d5 Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 17 Sep 2024 20:19:22 +0200 Subject: [PATCH] fix: use precise calculation for decrease adjustment calculations --- freqtrade/freqtradebot.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index 15a3ae6ee..0bc11e0fd 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -62,7 +62,7 @@ from freqtrade.rpc.rpc_types import ( ) from freqtrade.strategy.interface import IStrategy from freqtrade.strategy.strategy_wrapper import strategy_safe_wrapper -from freqtrade.util import MeasureTime +from freqtrade.util import FtPrecise, MeasureTime from freqtrade.util.migrations.binance_mig import migrate_binance_futures_names from freqtrade.wallets import Wallets @@ -784,7 +784,14 @@ class FreqtradeBot(LoggingMixin): if stake_amount is not None and stake_amount < 0.0: # We should decrease our position amount = self.exchange.amount_to_contract_precision( - trade.pair, abs(float(stake_amount * trade.amount / trade.stake_amount)) + trade.pair, + abs( + float( + FtPrecise(stake_amount) + * FtPrecise(trade.amount) + / FtPrecise(trade.stake_amount) + ) + ), ) if amount == 0.0: