mirror of
https://github.com/freqtrade/freqtrade.git
synced 2025-12-17 05:11:15 +00:00
feat: update get_best_pair to allow better filtering
This commit is contained in:
@@ -2090,17 +2090,17 @@ class Trade(ModelBase, LocalTrade):
|
||||
return resp
|
||||
|
||||
@staticmethod
|
||||
def get_best_pair(start_date: datetime | None = None):
|
||||
def get_best_pair(trade_filter: list | None = 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)
|
||||
if not trade_filter:
|
||||
trade_filter = []
|
||||
trade_filter.append(Trade.is_open.is_(False))
|
||||
|
||||
pair_rates_query = Trade._generic_performance_query([Trade.pair], filters)
|
||||
pair_rates_query = Trade._generic_performance_query([Trade.pair], trade_filter)
|
||||
best_pair = Trade.session.execute(pair_rates_query).first()
|
||||
# returns pair, profit_ratio, abs_profit, count
|
||||
return best_pair
|
||||
|
||||
@@ -612,7 +612,7 @@ class RPC:
|
||||
|
||||
closed_trade_count = len([t for t in trades if not t.is_open])
|
||||
|
||||
best_pair = Trade.get_best_pair(start_date)
|
||||
best_pair = Trade.get_best_pair([Trade.close_date > start_date, dir_filter])
|
||||
trading_volume = Trade.get_trading_volume(
|
||||
[Order.order_filled_date >= start_date, dir_filter]
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user