edit a list of trade orders https://bybit-exchange.github.io/docs/v5/order/batch-amend :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params :param dict
(self, orders: List[OrderRequest], params={})
| 4456 | }, market) |
| 4457 | |
| 4458 | def edit_orders(self, orders: List[OrderRequest], params={}) -> List[Order]: |
| 4459 | """ |
| 4460 | edit a list of trade orders |
| 4461 | |
| 4462 | https://bybit-exchange.github.io/docs/v5/order/batch-amend |
| 4463 | |
| 4464 | :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params |
| 4465 | :param dict [params]: extra parameters specific to the exchange API endpoint |
| 4466 | :returns dict: an `order structure <https://docs.ccxt.com/?id=order-structure>` |
| 4467 | """ |
| 4468 | self.load_markets() |
| 4469 | ordersRequests = [] |
| 4470 | orderSymbols = [] |
| 4471 | for i in range(0, len(orders)): |
| 4472 | rawOrder = orders[i] |
| 4473 | symbol = self.safe_string(rawOrder, 'symbol') |
| 4474 | orderSymbols.append(symbol) |
| 4475 | id = self.safe_string(rawOrder, 'id') |
| 4476 | type = self.safe_string(rawOrder, 'type') |
| 4477 | side = self.safe_string(rawOrder, 'side') |
| 4478 | amount = self.safe_value(rawOrder, 'amount') |
| 4479 | price = self.safe_value(rawOrder, 'price') |
| 4480 | orderParams = self.safe_dict(rawOrder, 'params', {}) |
| 4481 | orderRequest = self.edit_order_request(id, symbol, type, side, amount, price, orderParams) |
| 4482 | del orderRequest['category'] |
| 4483 | ordersRequests.append(orderRequest) |
| 4484 | orderSymbols = self.market_symbols(orderSymbols, None, False, True, True) |
| 4485 | market = self.market(orderSymbols[0]) |
| 4486 | unifiedMarginStatus = self.safe_integer(self.options, 'unifiedMarginStatus', 6) |
| 4487 | category = None |
| 4488 | category, params = self.get_bybit_type('editOrders', market, params) |
| 4489 | if (category == 'inverse') and (unifiedMarginStatus < 5): |
| 4490 | raise NotSupported(self.id + ' editOrders does not allow inverse orders for non UTA2.0 account') |
| 4491 | request = { |
| 4492 | 'category': category, |
| 4493 | 'request': ordersRequests, |
| 4494 | } |
| 4495 | response = self.privatePostV5OrderAmendBatch(self.extend(request, params)) |
| 4496 | result = self.safe_dict(response, 'result', {}) |
| 4497 | data = self.safe_list(result, 'list', []) |
| 4498 | retInfo = self.safe_dict(response, 'retExtInfo', {}) |
| 4499 | codes = self.safe_list(retInfo, 'list', []) |
| 4500 | # self.extend the error with the unsuccessful orders |
| 4501 | for i in range(0, len(codes)): |
| 4502 | code = codes[i] |
| 4503 | retCode = self.safe_integer(code, 'code') |
| 4504 | if retCode != 0: |
| 4505 | data[i] = self.extend(data[i], code) |
| 4506 | # |
| 4507 | # { |
| 4508 | # "retCode": 0, |
| 4509 | # "retMsg": "OK", |
| 4510 | # "result": { |
| 4511 | # "list": [ |
| 4512 | # { |
| 4513 | # "category": "option", |
| 4514 | # "symbol": "ETH-30DEC22-500-C", |
| 4515 | # "orderId": "b551f227-7059-4fb5-a6a6-699c04dbd2f2", |
nothing calls this directly
no test coverage detected