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

Method create_orders_request

python/ccxt/hyperliquid.py:2140–2248  ·  view source on GitHub ↗

create a list of trade orders https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#place-an-order :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amou

(self, orders, params={})

Source from the content-addressed store, hash-verified

2138 return orderObj
2139
2140 def create_orders_request(self, orders, params={}) -> dict:
2141 """
2142 create a list of trade orders
2143 https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#place-an-order
2144 :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
2145 :returns dict: an `order structure <https://docs.ccxt.com/?id=order-structure>`
2146 """
2147 self.check_required_credentials()
2148 defaultSlippage = self.safe_string(self.options, 'defaultSlippage')
2149 defaultSlippage = self.safe_string(params, 'slippage', defaultSlippage)
2150 hasClientOrderId = False
2151 for i in range(0, len(orders)):
2152 rawOrder = orders[i]
2153 orderParams = self.safe_dict(rawOrder, 'params', {})
2154 clientOrderId = self.safe_string_2(orderParams, 'clientOrderId', 'client_id')
2155 if clientOrderId is not None:
2156 hasClientOrderId = True
2157 if hasClientOrderId:
2158 for i in range(0, len(orders)):
2159 rawOrder = orders[i]
2160 orderParams = self.safe_dict(rawOrder, 'params', {})
2161 clientOrderId = self.safe_string_2(orderParams, 'clientOrderId', 'client_id')
2162 if clientOrderId is None:
2163 raise ArgumentsRequired(self.id + ' createOrders() all orders must have clientOrderId if at least one has a clientOrderId')
2164 params = self.omit(params, ['slippage', 'clientOrderId', 'client_id', 'slippage', 'triggerPrice', 'stopPrice', 'stopLossPrice', 'takeProfitPrice', 'timeInForce'])
2165 nonce = self.milliseconds()
2166 orderReq = []
2167 grouping = 'na'
2168 for i in range(0, len(orders)):
2169 rawOrder = orders[i]
2170 marketId = self.safe_string(rawOrder, 'symbol')
2171 market = self.market(marketId)
2172 symbol = market['symbol']
2173 type = self.safe_string_upper(rawOrder, 'type')
2174 side = self.safe_string_upper(rawOrder, 'side')
2175 amount = self.safe_string(rawOrder, 'amount')
2176 price = self.safe_string(rawOrder, 'price')
2177 orderParams = self.safe_dict(rawOrder, 'params', {})
2178 slippage = self.safe_string(orderParams, 'slippage', defaultSlippage)
2179 orderParams['slippage'] = slippage
2180 stopLoss = self.safe_value(orderParams, 'stopLoss')
2181 takeProfit = self.safe_value(orderParams, 'takeProfit')
2182 hasStopLoss = (stopLoss is not None)
2183 hasTakeProfit = (takeProfit is not None)
2184 orderParams = self.omit(orderParams, ['stopLoss', 'takeProfit'])
2185 mainOrderObj = self.create_order_request(symbol, type, side, amount, price, orderParams)
2186 if hasStopLoss or hasTakeProfit:
2187 # grouping opposed orders for sl/tp
2188 stopLossOrderTriggerPrice = self.safe_string_n(stopLoss, ['triggerPrice', 'stopPrice'])
2189 stopLossOrderType = self.safe_string(stopLoss, 'type', 'limit')
2190 stopLossOrderLimitPrice = self.safe_string_n(stopLoss, ['price', 'stopLossPrice'], stopLossOrderTriggerPrice)
2191 takeProfitOrderTriggerPrice = self.safe_string_n(takeProfit, ['triggerPrice', 'stopPrice'])
2192 takeProfitOrderType = self.safe_string(takeProfit, 'type', 'limit')
2193 takeProfitOrderLimitPrice = self.safe_string_n(takeProfit, ['price', 'takeProfitPrice'], takeProfitOrderTriggerPrice)
2194 grouping = self.safe_string(orderParams, 'grouping', 'normalTpsl')
2195 if grouping == 'positionTpsl':
2196 amount = '0'
2197 stopLossOrderType = 'market'

Callers 1

create_ordersMethod · 0.95

Calls 15

marketMethod · 0.95
create_order_requestMethod · 0.95
format_vault_addressMethod · 0.95
sign_l1_actionMethod · 0.95
ArgumentsRequiredClass · 0.90
NotSupportedClass · 0.90
safe_stringMethod · 0.80
safe_dictMethod · 0.80
safe_string_2Method · 0.80
safe_string_upperMethod · 0.80
safe_valueMethod · 0.80

Tested by

no test coverage detected