Fetch 2ndary stoploss order once the order triggered.
This commit is contained in:
parent
7c4dd4c48c
commit
7b8a5585dd
@ -97,11 +97,23 @@ class Gateio(Exchange):
|
|||||||
return trades
|
return trades
|
||||||
|
|
||||||
def fetch_stoploss_order(self, order_id: str, pair: str, params: Dict = {}) -> Dict:
|
def fetch_stoploss_order(self, order_id: str, pair: str, params: Dict = {}) -> Dict:
|
||||||
return self.fetch_order(
|
order = self.fetch_order(
|
||||||
order_id=order_id,
|
order_id=order_id,
|
||||||
pair=pair,
|
pair=pair,
|
||||||
params={'stop': True}
|
params={'stop': True}
|
||||||
)
|
)
|
||||||
|
if self.trading_mode == TradingMode.FUTURES:
|
||||||
|
if order['status'] == 'closed':
|
||||||
|
# Places a real order - which we need to fetch explicitly.
|
||||||
|
new_orderid = order.get('info', {}).get('trade_id')
|
||||||
|
if new_orderid:
|
||||||
|
order1 = self.fetch_order(order_id=new_orderid, pair=pair, params=params)
|
||||||
|
order1['id_stop'] = order1['id']
|
||||||
|
order1['id'] = order_id
|
||||||
|
order1['stopPrice'] = order.get('stopPrice')
|
||||||
|
|
||||||
|
return order1
|
||||||
|
return order
|
||||||
|
|
||||||
def cancel_stoploss_order(self, order_id: str, pair: str, params: Dict = {}) -> Dict:
|
def cancel_stoploss_order(self, order_id: str, pair: str, params: Dict = {}) -> Dict:
|
||||||
return self.cancel_order(
|
return self.cancel_order(
|
||||||
|
@ -53,6 +53,25 @@ def test_fetch_stoploss_order_gateio(default_conf, mocker):
|
|||||||
assert fetch_order_mock.call_args_list[0][1]['pair'] == 'ETH/BTC'
|
assert fetch_order_mock.call_args_list[0][1]['pair'] == 'ETH/BTC'
|
||||||
assert fetch_order_mock.call_args_list[0][1]['params'] == {'stop': True}
|
assert fetch_order_mock.call_args_list[0][1]['params'] == {'stop': True}
|
||||||
|
|
||||||
|
default_conf['trading_mode'] = 'futures'
|
||||||
|
default_conf['margin_mode'] = 'isolated'
|
||||||
|
|
||||||
|
exchange = get_patched_exchange(mocker, default_conf, id='gateio')
|
||||||
|
|
||||||
|
exchange.fetch_order = MagicMock(return_value={
|
||||||
|
'status': 'closed',
|
||||||
|
'id': '1234',
|
||||||
|
'stopPrice': 5.62,
|
||||||
|
'info': {
|
||||||
|
'trade_id': '222555'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
exchange.fetch_stoploss_order('1234', 'ETH/BTC')
|
||||||
|
assert exchange.fetch_order.call_count == 2
|
||||||
|
assert exchange.fetch_order.call_args_list[0][1]['order_id'] == '1234'
|
||||||
|
assert exchange.fetch_order.call_args_list[1][1]['order_id'] == '222555'
|
||||||
|
|
||||||
|
|
||||||
def test_cancel_stoploss_order_gateio(default_conf, mocker):
|
def test_cancel_stoploss_order_gateio(default_conf, mocker):
|
||||||
exchange = get_patched_exchange(mocker, default_conf, id='gateio')
|
exchange = get_patched_exchange(mocker, default_conf, id='gateio')
|
||||||
|
Loading…
Reference in New Issue
Block a user