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
|
return resp
|
||||||
|
|
||||||
@staticmethod
|
@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.
|
Get best pair with closed trade.
|
||||||
NOTE: Not supported in Backtesting.
|
NOTE: Not supported in Backtesting.
|
||||||
:returns: Tuple containing (pair, profit_sum)
|
:returns: Tuple containing (pair, profit_sum)
|
||||||
"""
|
"""
|
||||||
filters: list = [Trade.is_open.is_(False)]
|
if not trade_filter:
|
||||||
if start_date:
|
trade_filter = []
|
||||||
filters.append(Trade.close_date >= start_date)
|
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()
|
best_pair = Trade.session.execute(pair_rates_query).first()
|
||||||
# returns pair, profit_ratio, abs_profit, count
|
# returns pair, profit_ratio, abs_profit, count
|
||||||
return best_pair
|
return best_pair
|
||||||
|
|||||||
@@ -612,7 +612,7 @@ class RPC:
|
|||||||
|
|
||||||
closed_trade_count = len([t for t in trades if not t.is_open])
|
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(
|
trading_volume = Trade.get_trading_volume(
|
||||||
[Order.order_filled_date >= start_date, dir_filter]
|
[Order.order_filled_date >= start_date, dir_filter]
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user