From 866f059d6ac15f603b4149a6131ab5662e857d29 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sat, 4 May 2024 11:25:07 +0200 Subject: [PATCH] Use FtPrecise to avoid rounding errors --- freqtrade/optimize/backtesting.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/freqtrade/optimize/backtesting.py b/freqtrade/optimize/backtesting.py index 59432bd97..131a88b47 100644 --- a/freqtrade/optimize/backtesting.py +++ b/freqtrade/optimize/backtesting.py @@ -42,6 +42,7 @@ from freqtrade.resolvers import ExchangeResolver, StrategyResolver from freqtrade.strategy.interface import IStrategy from freqtrade.strategy.strategy_wrapper import strategy_safe_wrapper from freqtrade.types import BacktestResultType, get_BacktestResultType_default +from freqtrade.util import FtPrecise from freqtrade.util.migrations import migrate_data from freqtrade.wallets import Wallets @@ -575,7 +576,8 @@ class Backtesting: if stake_amount is not None and stake_amount < 0.0: amount = amount_to_contract_precision( - abs(stake_amount * trade.amount / trade.stake_amount), + abs(float(FtPrecise(stake_amount) * FtPrecise(trade.amount) + / FtPrecise(trade.stake_amount))), trade.amount_precision, self.precision_mode, trade.contract_size) if amount == 0.0: