From 5cc01368bffe900d6a97ca1ca6e4fc485ec6023b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=AE=AE=E0=AE=A9=E0=AF=8B=E0=AE=9C=E0=AF=8D=E0=AE=95?= =?UTF-8?q?=E0=AF=81=E0=AE=AE=E0=AE=BE=E0=AE=B0=E0=AF=8D=20=E0=AE=AA?= =?UTF-8?q?=E0=AE=B4=E0=AE=A9=E0=AE=BF=E0=AE=9A=E0=AF=8D=E0=AE=9A=E0=AE=BE?= =?UTF-8?q?=E0=AE=AE=E0=AE=BF?= Date: Mon, 4 Apr 2022 19:25:39 +0530 Subject: [PATCH] updated profit calculation --- freqtrade/persistence/models.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/freqtrade/persistence/models.py b/freqtrade/persistence/models.py index 698d864c8..ed0babcfb 100644 --- a/freqtrade/persistence/models.py +++ b/freqtrade/persistence/models.py @@ -651,7 +651,9 @@ class LocalTrade(): exit_amount = order.safe_amount_after_fee exit_rate = order.safe_price exit_stake_amount = exit_rate * exit_amount * (1 - self.fee_close) - profit = self.calc_profit2(self.open_rate, exit_rate, exit_amount) + profit = self.calc_profit2(self.open_rate, exit_rate, exit_amount) * int(self.leverage) + if self.is_short: + profit *= -1 if is_closed: self.amount -= exit_amount self.stake_amount = self.open_rate * self.amount @@ -660,9 +662,12 @@ class LocalTrade(): 'Processed exit sub trade for %s', self ) - self.close_profit_abs = profit - self.close_profit = exit_stake_amount / (exit_stake_amount - profit) - 1 + if self.short: + self.close_profit = (exit_stake_amount - profit) / exit_stake_amount - 1 + else: + self.close_profit = exit_stake_amount / (exit_stake_amount - profit) - 1 + self.recalc_open_trade_value() def calc_profit2(self, open_rate: float, close_rate: float,