MCPcopy Create free account
hub / github.com/ccxt/ccxt / edit_orders

Method edit_orders

python/ccxt/async_support/bybit.py:4459–4542  ·  view source on GitHub ↗

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={})

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 15

edit_order_requestMethod · 0.95
get_bybit_typeMethod · 0.95
NotSupportedClass · 0.90
safe_stringMethod · 0.80
safe_valueMethod · 0.80
safe_dictMethod · 0.80
market_symbolsMethod · 0.80
safe_integerMethod · 0.80
safe_listMethod · 0.80
parse_ordersMethod · 0.80
rangeFunction · 0.50

Tested by

no test coverage detected