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

Method create_orders

python/ccxt/bybit.py:4258–4344  ·  view source on GitHub ↗

create a list of trade orders https://bybit-exchange.github.io/docs/v5/order/batch-place :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 dic

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

Source from the content-addressed store, hash-verified

4256 return self.extend(request, params)
4257
4258 def create_orders(self, orders: List[OrderRequest], params={}) -> List[Order]:
4259 """
4260 create a list of trade orders
4261
4262 https://bybit-exchange.github.io/docs/v5/order/batch-place
4263
4264 :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
4265 :param dict [params]: extra parameters specific to the exchange API endpoint
4266 :returns dict: an `order structure <https://docs.ccxt.com/?id=order-structure>`
4267 """
4268 self.load_markets()
4269 accounts = self.is_unified_enabled()
4270 isUta = accounts[1]
4271 ordersRequests = []
4272 orderSymbols = []
4273 for i in range(0, len(orders)):
4274 rawOrder = orders[i]
4275 marketId = self.safe_string(rawOrder, 'symbol')
4276 orderSymbols.append(marketId)
4277 type = self.safe_string(rawOrder, 'type')
4278 side = self.safe_string(rawOrder, 'side')
4279 amount = self.safe_value(rawOrder, 'amount')
4280 price = self.safe_value(rawOrder, 'price')
4281 orderParams = self.safe_dict(rawOrder, 'params', {})
4282 orderRequest = self.create_order_request(marketId, type, side, amount, price, orderParams, isUta)
4283 del orderRequest['category']
4284 ordersRequests.append(orderRequest)
4285 symbols = self.market_symbols(orderSymbols, None, False, True, True)
4286 market = self.market(symbols[0])
4287 unifiedMarginStatus = self.safe_integer(self.options, 'unifiedMarginStatus', 6)
4288 category = None
4289 category, params = self.get_bybit_type('createOrders', market, params)
4290 if (category == 'inverse') and (unifiedMarginStatus < 5):
4291 raise NotSupported(self.id + ' createOrders does not allow inverse orders for non UTA2.0 account')
4292 request = {
4293 'category': category,
4294 'request': ordersRequests,
4295 }
4296 response = self.privatePostV5OrderCreateBatch(self.extend(request, params))
4297 result = self.safe_dict(response, 'result', {})
4298 data = self.safe_list(result, 'list', [])
4299 retInfo = self.safe_dict(response, 'retExtInfo', {})
4300 codes = self.safe_list(retInfo, 'list', [])
4301 # self.extend the error with the unsuccessful orders
4302 for i in range(0, len(codes)):
4303 code = codes[i]
4304 retCode = self.safe_integer(code, 'code')
4305 if retCode != 0:
4306 data[i] = self.extend(data[i], code)
4307 #
4308 # {
4309 # "retCode":0,
4310 # "retMsg":"OK",
4311 # "result":{
4312 # "list":[
4313 # {
4314 # "category":"linear",
4315 # "symbol":"LTCUSDT",

Callers

nothing calls this directly

Calls 15

is_unified_enabledMethod · 0.95
create_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

Tested by

no test coverage detected