Skip to content

Commit fb3d408

Browse files
committed
Respect max_open_trades when forceentering
closes freqtrade#7489
1 parent e9abe3c commit fb3d408

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

freqtrade/rpc/rpc.py

+3
Original file line numberDiff line numberDiff line change
@@ -773,6 +773,9 @@ def _rpc_force_entry(self, pair: str, price: Optional[float], *,
773773
is_short = trade.is_short
774774
if not self._freqtrade.strategy.position_adjustment_enable:
775775
raise RPCException(f'position for {pair} already open - id: {trade.id}')
776+
else:
777+
if Trade.get_open_trade_count() >= self._config['max_open_trades']:
778+
raise RPCException("Maximum number of trades is reached.")
776779

777780
if not stake_amount:
778781
# gen stake amount

tests/rpc/test_rpc.py

+5
Original file line numberDiff line numberDiff line change
@@ -1030,6 +1030,7 @@ def test_rpc_count(mocker, default_conf, ticker, fee) -> None:
10301030

10311031
def test_rpc_force_entry(mocker, default_conf, ticker, fee, limit_buy_order_open) -> None:
10321032
default_conf['force_entry_enable'] = True
1033+
default_conf['max_open_trades'] = 0
10331034
mocker.patch('freqtrade.rpc.telegram.Telegram', MagicMock())
10341035
buy_mm = MagicMock(return_value=limit_buy_order_open)
10351036
mocker.patch.multiple(
@@ -1044,6 +1045,10 @@ def test_rpc_force_entry(mocker, default_conf, ticker, fee, limit_buy_order_open
10441045
patch_get_signal(freqtradebot)
10451046
rpc = RPC(freqtradebot)
10461047
pair = 'ETH/BTC'
1048+
with pytest.raises(RPCException, match='Maximum number of trades is reached.'):
1049+
rpc._rpc_force_entry(pair, None)
1050+
freqtradebot.config['max_open_trades'] = 5
1051+
10471052
trade = rpc._rpc_force_entry(pair, None)
10481053
assert isinstance(trade, Trade)
10491054
assert trade.pair == pair

0 commit comments

Comments
 (0)