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

Method create_orders

python/ccxt/bitget.py:5360–5455  ·  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

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

Callers

nothing calls this directly

Tested by

no test coverage detected