Prevent 2 parallel open orders through forceentry
this leads to forgetting the prior order closes #7765
This commit is contained in:
parent
4de9a46618
commit
12b471c64b
@ -774,6 +774,9 @@ class RPC:
|
|||||||
is_short = trade.is_short
|
is_short = trade.is_short
|
||||||
if not self._freqtrade.strategy.position_adjustment_enable:
|
if not self._freqtrade.strategy.position_adjustment_enable:
|
||||||
raise RPCException(f'position for {pair} already open - id: {trade.id}')
|
raise RPCException(f'position for {pair} already open - id: {trade.id}')
|
||||||
|
if trade.open_order_id is not None:
|
||||||
|
raise RPCException(f'position for {pair} already open - id: {trade.id} '
|
||||||
|
f'and has open order {trade.open_order_id}')
|
||||||
else:
|
else:
|
||||||
if Trade.get_open_trade_count() >= self._config['max_open_trades']:
|
if Trade.get_open_trade_count() >= self._config['max_open_trades']:
|
||||||
raise RPCException("Maximum number of trades is reached.")
|
raise RPCException("Maximum number of trades is reached.")
|
||||||
|
@ -1066,6 +1066,11 @@ def test_rpc_force_entry(mocker, default_conf, ticker, fee, limit_buy_order_open
|
|||||||
trade = rpc._rpc_force_entry(pair, 0.0001, order_type='limit', stake_amount=0.05)
|
trade = rpc._rpc_force_entry(pair, 0.0001, order_type='limit', stake_amount=0.05)
|
||||||
assert trade.stake_amount == 0.05
|
assert trade.stake_amount == 0.05
|
||||||
assert trade.buy_tag == 'force_entry'
|
assert trade.buy_tag == 'force_entry'
|
||||||
|
assert trade.open_order_id == 'mocked_limit_buy'
|
||||||
|
|
||||||
|
freqtradebot.strategy.position_adjustment_enable = True
|
||||||
|
with pytest.raises(RPCException, match=r'position for LTC/BTC already open.*open order.*'):
|
||||||
|
rpc._rpc_force_entry(pair, 0.0001, order_type='limit', stake_amount=0.05)
|
||||||
|
|
||||||
# Test not buying
|
# Test not buying
|
||||||
pair = 'XRP/BTC'
|
pair = 'XRP/BTC'
|
||||||
|
Loading…
Reference in New Issue
Block a user