From 5793216d5c5ba14affce19aaea59837a3c6d6a7f Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 28 Nov 2024 18:14:57 +0100 Subject: [PATCH] properly account for fee when assigning order.cost in backtesting (although it's not relevant for operations, it shouldn't be obivously wrong). closes #11003 --- freqtrade/optimize/backtesting.py | 2 +- tests/optimize/test_backtesting.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/freqtrade/optimize/backtesting.py b/freqtrade/optimize/backtesting.py index 18c7288dd..47f920e01 100644 --- a/freqtrade/optimize/backtesting.py +++ b/freqtrade/optimize/backtesting.py @@ -1139,7 +1139,7 @@ class Backtesting: amount=amount, filled=0, remaining=amount, - cost=amount * propose_rate + trade.fee_open, + cost=amount * propose_rate * (1 + self.fee), ft_order_tag=entry_tag, ) order._trade_bt = trade diff --git a/tests/optimize/test_backtesting.py b/tests/optimize/test_backtesting.py index 7c14956e7..05ebf2298 100644 --- a/tests/optimize/test_backtesting.py +++ b/tests/optimize/test_backtesting.py @@ -632,7 +632,7 @@ def test_backtest__enter_trade_futures(default_conf_usdt, fee, mocker) -> None: trade = backtesting._enter_trade(pair, row=row, direction="short") assert pytest.approx(trade.liquidation_price) == 0.11787191 assert pytest.approx(trade.orders[0].cost) == ( - trade.stake_amount * trade.leverage + trade.fee_open + trade.stake_amount * trade.leverage * (1 + fee.return_value) ) assert pytest.approx(trade.orders[-1].stake_amount) == trade.stake_amount