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

Method create_orders

python/ccxt/async_support/bitget.py:5361–5456  ·  view source on GitHub ↗

create a list of trade orders(all orders should be of the same symbol) https://www.bitget.com/api-doc/spot/trade/Batch-Place-Orders https://www.bitget.com/api-doc/contract/trade/Batch-Order https://www.bitget.com/api-doc/margin/isolated/trade/Isolated-Batch-Order

(self, orders: List[OrderRequest], params={})

Source from the content-addressed store, hash-verified

5359 return self.parse_orders(data, market)
5360
5361 async def create_orders(self, orders: List[OrderRequest], params={}):
5362 """
5363 create a list of trade orders(all orders should be of the same symbol)
5364
5365 https://www.bitget.com/api-doc/spot/trade/Batch-Place-Orders
5366 https://www.bitget.com/api-doc/contract/trade/Batch-Order
5367 https://www.bitget.com/api-doc/margin/isolated/trade/Isolated-Batch-Order
5368 https://www.bitget.com/api-doc/margin/cross/trade/Cross-Batch-Order
5369 https://www.bitget.com/api-doc/uta/trade/Place-Batch
5370
5371 :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
5372 :param dict [params]: extra parameters specific to the api endpoint
5373 :param boolean [params.uta]: set to True for the unified trading account(uta), defaults to False
5374 :returns dict: an `order structure <https://docs.ccxt.com/?id=order-structure>`
5375 """
5376 await self.load_markets()
5377 uta = None
5378 uta, params = self.handle_option_and_params(params, 'createOrders', 'uta', False)
5379 if uta:
5380 return await self.create_uta_orders(orders, params)
5381 ordersRequests = []
5382 symbol = None
5383 marginMode = None
5384 for i in range(0, len(orders)):
5385 rawOrder = orders[i]
5386 marketId = self.safe_string(rawOrder, 'symbol')
5387 if symbol is None:
5388 symbol = marketId
5389 else:
5390 if symbol != marketId:
5391 raise BadRequest(self.id + ' createOrders() requires all orders to have the same symbol')
5392 type = self.safe_string(rawOrder, 'type')
5393 side = self.safe_string(rawOrder, 'side')
5394 amount = self.safe_value(rawOrder, 'amount')
5395 price = self.safe_value(rawOrder, 'price')
5396 orderParams = self.safe_value(rawOrder, 'params', {})
5397 marginResult = self.handle_margin_mode_and_params('createOrders', orderParams)
5398 currentMarginMode = marginResult[0]
5399 if currentMarginMode is not None:
5400 if marginMode is None:
5401 marginMode = currentMarginMode
5402 else:
5403 if marginMode != currentMarginMode:
5404 raise BadRequest(self.id + ' createOrders() requires all orders to have the same margin mode(isolated or cross)')
5405 orderRequest = self.create_order_request(marketId, type, side, amount, price, orderParams)
5406 ordersRequests.append(orderRequest)
5407 market = self.market(symbol)
5408 request = {
5409 'symbol': market['id'],
5410 'orderList': ordersRequests,
5411 }
5412 response = None
5413 if (market['swap']) or (market['future']):
5414 if marginMode is None:
5415 marginMode = 'cross'
5416 marginModeRequest = 'crossed' if (marginMode == 'cross') else 'isolated'
5417 request['marginMode'] = marginModeRequest
5418 request['marginCoin'] = market['settleId']

Callers

nothing calls this directly

Tested by

no test coverage detected