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

Method edit_orders

python/ccxt/bybit.py:4458–4541  ·  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

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",

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