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

Method create_orders_request

python/ccxt/async_support/hyperliquid.py:2141–2249  ·  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

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