(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={})
| 5027 | return self.parse_order(data, market) |
| 5028 | |
| 5029 | def create_uta_order_request(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}): |
| 5030 | market = self.market(symbol) |
| 5031 | productType = None |
| 5032 | productType, params = self.handle_product_type_and_params(market, params) |
| 5033 | if productType == 'SPOT': |
| 5034 | marginMode = None |
| 5035 | marginMode, params = self.handle_margin_mode_and_params('createOrder', params) |
| 5036 | if marginMode is not None: |
| 5037 | productType = 'MARGIN' |
| 5038 | request = { |
| 5039 | 'category': productType, |
| 5040 | 'symbol': market['id'], |
| 5041 | 'qty': self.amount_to_precision(symbol, amount), |
| 5042 | 'side': side, |
| 5043 | } |
| 5044 | clientOrderId = self.safe_string_2(params, 'clientOid', 'clientOrderId') |
| 5045 | if clientOrderId is not None: |
| 5046 | request['clientOid'] = clientOrderId |
| 5047 | params = self.omit(params, 'clientOrderId') |
| 5048 | stopLossTriggerPrice = self.safe_number(params, 'stopLossPrice') |
| 5049 | takeProfitTriggerPrice = self.safe_number(params, 'takeProfitPrice') |
| 5050 | stopLoss = self.safe_value(params, 'stopLoss') |
| 5051 | takeProfit = self.safe_value(params, 'takeProfit') |
| 5052 | hasStopLoss = stopLoss is not None |
| 5053 | hasTakeProfit = takeProfit is not None |
| 5054 | isStopLossTrigger = stopLossTriggerPrice is not None |
| 5055 | isTakeProfitTrigger = takeProfitTriggerPrice is not None |
| 5056 | isStopLossOrTakeProfitTrigger = isStopLossTrigger or isTakeProfitTrigger |
| 5057 | if isStopLossOrTakeProfitTrigger: |
| 5058 | if isStopLossTrigger: |
| 5059 | slType = self.safe_string(params, 'slTriggerBy', 'mark') |
| 5060 | request['slTriggerBy'] = slType |
| 5061 | request['stopLoss'] = self.price_to_precision(symbol, stopLossTriggerPrice) |
| 5062 | if price is not None: |
| 5063 | request['slLimitPrice'] = self.price_to_precision(symbol, price) |
| 5064 | request['slOrderType'] = self.safe_string(params, 'slOrderType', 'limit') |
| 5065 | else: |
| 5066 | request['slOrderType'] = self.safe_string(params, 'slOrderType', 'market') |
| 5067 | elif isTakeProfitTrigger: |
| 5068 | tpType = self.safe_string(params, 'tpTriggerBy', 'mark') |
| 5069 | request['tpTriggerBy'] = tpType |
| 5070 | request['takeProfit'] = self.price_to_precision(symbol, takeProfitTriggerPrice) |
| 5071 | if price is not None: |
| 5072 | request['tpLimitPrice'] = self.price_to_precision(symbol, price) |
| 5073 | request['tpOrderType'] = self.safe_string(params, 'tpOrderType', 'limit') |
| 5074 | else: |
| 5075 | request['tpOrderType'] = self.safe_string(params, 'tpOrderType', 'market') |
| 5076 | params = self.omit(params, ['stopLossPrice', 'takeProfitPrice']) |
| 5077 | else: |
| 5078 | if hasStopLoss: |
| 5079 | slTriggerPrice = self.safe_number_2(stopLoss, 'triggerPrice', 'stopPrice') |
| 5080 | slLimitPrice = self.safe_number(stopLoss, 'price') |
| 5081 | request['stopLoss'] = self.price_to_precision(symbol, slTriggerPrice) |
| 5082 | if slLimitPrice is not None: |
| 5083 | request['slLimitPrice'] = self.price_to_precision(symbol, slLimitPrice) |
| 5084 | request['slOrderType'] = self.safe_string(params, 'slOrderType', 'limit') |
| 5085 | else: |
| 5086 | request['slOrderType'] = self.safe_string(params, 'slOrderType', 'market') |
no test coverage detected