Invert order (exit trade 3 before trade 4)
This commit is contained in:
+19
-19
@@ -762,25 +762,6 @@ def test_rpc_force_exit(default_conf, ticker, fee, mocker) -> None:
|
|||||||
freqtradebot.config['max_open_trades'] = 3
|
freqtradebot.config['max_open_trades'] = 3
|
||||||
freqtradebot.enter_positions()
|
freqtradebot.enter_positions()
|
||||||
|
|
||||||
cancel_order_mock.reset_mock()
|
|
||||||
trade = Trade.session.scalars(select(Trade).filter(Trade.id == '2')).first()
|
|
||||||
amount = trade.amount
|
|
||||||
# make an limit-buy open trade, if there is no 'filled', don't sell it
|
|
||||||
mocker.patch(
|
|
||||||
f'{EXMS}.fetch_order',
|
|
||||||
return_value={
|
|
||||||
'status': 'open',
|
|
||||||
'type': 'limit',
|
|
||||||
'side': 'buy',
|
|
||||||
'filled': None
|
|
||||||
}
|
|
||||||
)
|
|
||||||
# check that the trade is called, which is done by ensuring exchange.cancel_order is called
|
|
||||||
msg = rpc._rpc_force_exit('4')
|
|
||||||
assert msg == {'result': 'Created exit order for trade 4.'}
|
|
||||||
assert cancel_order_mock.call_count == 1
|
|
||||||
assert trade.amount == amount
|
|
||||||
|
|
||||||
cancel_order_mock.reset_mock()
|
cancel_order_mock.reset_mock()
|
||||||
trade = Trade.session.scalars(select(Trade).filter(Trade.id == '3')).first()
|
trade = Trade.session.scalars(select(Trade).filter(Trade.id == '3')).first()
|
||||||
amount = trade.amount
|
amount = trade.amount
|
||||||
@@ -802,6 +783,25 @@ def test_rpc_force_exit(default_conf, ticker, fee, mocker) -> None:
|
|||||||
# status quo, no exchange calls
|
# status quo, no exchange calls
|
||||||
assert cancel_order_mock.call_count == 1
|
assert cancel_order_mock.call_count == 1
|
||||||
|
|
||||||
|
cancel_order_mock.reset_mock()
|
||||||
|
trade = Trade.session.scalars(select(Trade).filter(Trade.id == '2')).first()
|
||||||
|
amount = trade.amount
|
||||||
|
# make an limit-buy open trade, if there is no 'filled', don't sell it
|
||||||
|
mocker.patch(
|
||||||
|
f'{EXMS}.fetch_order',
|
||||||
|
return_value={
|
||||||
|
'status': 'open',
|
||||||
|
'type': 'limit',
|
||||||
|
'side': 'buy',
|
||||||
|
'filled': None
|
||||||
|
}
|
||||||
|
)
|
||||||
|
# check that the trade is called, which is done by ensuring exchange.cancel_order is called
|
||||||
|
msg = rpc._rpc_force_exit('4')
|
||||||
|
assert msg == {'result': 'Created exit order for trade 4.'}
|
||||||
|
assert cancel_order_mock.call_count == 1
|
||||||
|
assert trade.amount == amount
|
||||||
|
|
||||||
|
|
||||||
def test_performance_handle(default_conf_usdt, ticker, fee, mocker) -> None:
|
def test_performance_handle(default_conf_usdt, ticker, fee, mocker) -> None:
|
||||||
mocker.patch('freqtrade.rpc.telegram.Telegram', MagicMock())
|
mocker.patch('freqtrade.rpc.telegram.Telegram', MagicMock())
|
||||||
|
|||||||
Reference in New Issue
Block a user