From db7f9598b02c327002d3901a6f0e09a35015fc7e Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 11 Oct 2023 18:17:39 +0200 Subject: [PATCH] add set_funding_fees method --- freqtrade/freqtradebot.py | 23 ++++++++++++----------- freqtrade/persistence/trade_model.py | 8 ++++++++ 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index 08c18ee42..d1138e3e1 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -317,13 +317,13 @@ class FreqtradeBot(LoggingMixin): trades: List[Trade] = Trade.get_open_trades() try: for trade in trades: - funding_fees = self.exchange.get_funding_fees( - pair=trade.pair, - amount=trade.amount, - is_short=trade.is_short, - open_date=trade.date_last_filled_utc + trade.set_funding_fees( + self.exchange.get_funding_fees( + pair=trade.pair, + amount=trade.amount, + is_short=trade.is_short, + open_date=trade.date_last_filled_utc) ) - trade.funding_fees = funding_fees except ExchangeError: logger.warning("Could not update funding fees for open trades.") @@ -1695,11 +1695,12 @@ class FreqtradeBot(LoggingMixin): :return: True if it succeeds False """ try: - trade.funding_fees = self.exchange.get_funding_fees( - pair=trade.pair, - amount=trade.amount, - is_short=trade.is_short, - open_date=trade.date_last_filled_utc, + trade.set_funding_fees( + self.exchange.get_funding_fees( + pair=trade.pair, + amount=trade.amount, + is_short=trade.is_short, + open_date=trade.date_last_filled_utc) ) except ExchangeError: logger.warning("Could not update funding fee.") diff --git a/freqtrade/persistence/trade_model.py b/freqtrade/persistence/trade_model.py index ad91c2c83..d29c73040 100644 --- a/freqtrade/persistence/trade_model.py +++ b/freqtrade/persistence/trade_model.py @@ -658,6 +658,14 @@ class LocalTrade: return self.liquidation_price = liquidation_price + def set_funding_fees(self, funding_fee: float) -> None: + """ + Assign funding fees to Trade. + """ + if funding_fee is None: + return + self.funding_fees = funding_fee + def __set_stop_loss(self, stop_loss: float, percent: float): """ Method used internally to set self.stop_loss.