create a list of trade orders https://bingx-api.github.io/docs-v3/#/en/Spot/Trades%20Endpoints/Place%20multiple%20orders https://bingx-api.github.io/docs-v3/#/en/Swap/Trades%20Endpoints/Place%20multiple%20orders :param Array orders: list of orders to create, each o
(self, orders: List[OrderRequest], params={})
| 3228 | return self.parse_order(result, market) |
| 3229 | |
| 3230 | async def create_orders(self, orders: List[OrderRequest], params={}): |
| 3231 | """ |
| 3232 | create a list of trade orders |
| 3233 | |
| 3234 | https://bingx-api.github.io/docs-v3/#/en/Spot/Trades%20Endpoints/Place%20multiple%20orders |
| 3235 | https://bingx-api.github.io/docs-v3/#/en/Swap/Trades%20Endpoints/Place%20multiple%20orders |
| 3236 | |
| 3237 | :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 |
| 3238 | :param dict [params]: extra parameters specific to the exchange API endpoint |
| 3239 | :param boolean [params.sync]: *spot only* if True, multiple orders are ordered serially and all orders do not require the same symbol/side/type |
| 3240 | :returns dict: an `order structure <https://docs.ccxt.com/?id=order-structure>` |
| 3241 | """ |
| 3242 | await self.load_markets() |
| 3243 | ordersRequests = [] |
| 3244 | marketIds = [] |
| 3245 | for i in range(0, len(orders)): |
| 3246 | rawOrder = orders[i] |
| 3247 | marketId = self.safe_string(rawOrder, 'symbol') |
| 3248 | type = self.safe_string(rawOrder, 'type') |
| 3249 | marketIds.append(marketId) |
| 3250 | side = self.safe_string(rawOrder, 'side') |
| 3251 | amount = self.safe_number(rawOrder, 'amount') |
| 3252 | price = self.safe_number(rawOrder, 'price') |
| 3253 | orderParams = self.safe_dict(rawOrder, 'params', {}) |
| 3254 | orderRequest = self.create_order_request(marketId, type, side, amount, price, orderParams) |
| 3255 | ordersRequests.append(orderRequest) |
| 3256 | symbols = self.market_symbols(marketIds, None, False, True, True) |
| 3257 | symbolsLength = len(symbols) |
| 3258 | market = self.market(symbols[0]) |
| 3259 | request = {} |
| 3260 | response = None |
| 3261 | if market['swap']: |
| 3262 | if symbolsLength > 5: |
| 3263 | raise InvalidOrder(self.id + ' createOrders() can not create more than 5 orders at once for swap markets') |
| 3264 | request['batchOrders'] = self.json(ordersRequests) |
| 3265 | response = await self.swapV2PrivatePostTradeBatchOrders(request) |
| 3266 | else: |
| 3267 | sync = self.safe_bool(params, 'sync', False) |
| 3268 | if sync: |
| 3269 | request['sync'] = True |
| 3270 | request['data'] = self.json(ordersRequests) |
| 3271 | response = await self.spotV1PrivatePostTradeBatchOrders(request) |
| 3272 | # |
| 3273 | # spot |
| 3274 | # |
| 3275 | # { |
| 3276 | # "code": 0, |
| 3277 | # "msg": "", |
| 3278 | # "debugMsg": "", |
| 3279 | # "data": { |
| 3280 | # "orders": [ |
| 3281 | # { |
| 3282 | # "symbol": "BTC-USDT", |
| 3283 | # "orderId": 1720661389564968960, |
| 3284 | # "transactTime": 1699072618272, |
| 3285 | # "price": "25000", |
| 3286 | # "origQty": "0.0002", |
| 3287 | # "executedQty": "0", |
nothing calls this directly
no test coverage detected