From 39613c0785a72f238d5a8479dbd61667c5d5a4ad Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 5 May 2024 19:32:29 +0200 Subject: [PATCH] no suspect function calls in function headers . . . --- freqtrade/persistence/trade_model.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/freqtrade/persistence/trade_model.py b/freqtrade/persistence/trade_model.py index 1421666ea..3ca681df5 100644 --- a/freqtrade/persistence/trade_model.py +++ b/freqtrade/persistence/trade_model.py @@ -1900,17 +1900,21 @@ class Trade(ModelBase, LocalTrade): return resp @staticmethod - def get_best_pair(start_date: datetime = datetime.fromtimestamp(0)): + def get_best_pair(start_date: Optional[datetime] = None): """ Get best pair with closed trade. NOTE: Not supported in Backtesting. :returns: Tuple containing (pair, profit_sum) """ + filters: List = [Trade.is_open.is_(False)] + if start_date: + filters.append(Trade.close_date >= start_date) + best_pair = Trade.session.execute( select( Trade.pair, func.sum(Trade.close_profit).label('profit_sum') - ).filter(Trade.is_open.is_(False) & (Trade.close_date >= start_date)) + ).filter(*filters) .group_by(Trade.pair) .order_by(desc('profit_sum')) ).first() @@ -1918,17 +1922,21 @@ class Trade(ModelBase, LocalTrade): return best_pair @staticmethod - def get_trading_volume(start_date: datetime = datetime.fromtimestamp(0)) -> float: + def get_trading_volume(start_date: Optional[datetime] = None) -> float: """ Get Trade volume based on Orders NOTE: Not supported in Backtesting. :returns: Tuple containing (pair, profit_sum) """ + filters = [ + Order.status == 'closed' + ] + if start_date: + filters.append(Order.order_filled_date >= start_date) trading_volume = Trade.session.execute( select( func.sum(Order.cost).label('volume') ).filter( - Order.order_filled_date >= start_date, - Order.status == 'closed' + *filters )).scalar_one() return trading_volume or 0.0