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

Method create_order_request

python/ccxt/async_support/bitget.py:5130–5313  ·  view source on GitHub ↗
(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={})

Source from the content-addressed store, hash-verified

5128 return self.extend(request, params)
5129
5130 def create_order_request(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
5131 market = self.market(symbol)
5132 marketType = None
5133 marginMode = None
5134 marketType, params = self.handle_market_type_and_params('createOrder', market, params)
5135 marginMode, params = self.handle_margin_mode_and_params('createOrder', params)
5136 request = {
5137 'symbol': market['id'],
5138 'orderType': type,
5139 }
5140 hedged = None
5141 hedged, params = self.handle_param_bool(params, 'hedged', False)
5142 # backward compatibility for `oneWayMode`
5143 oneWayMode = None
5144 oneWayMode, params = self.handle_param_bool(params, 'oneWayMode')
5145 if oneWayMode is not None:
5146 hedged = not oneWayMode
5147 isMarketOrder = type == 'market'
5148 triggerPrice = self.safe_value_2(params, 'stopPrice', 'triggerPrice')
5149 stopLossTriggerPrice = self.safe_value(params, 'stopLossPrice')
5150 takeProfitTriggerPrice = self.safe_value(params, 'takeProfitPrice')
5151 stopLoss = self.safe_value(params, 'stopLoss')
5152 takeProfit = self.safe_value(params, 'takeProfit')
5153 isTriggerOrder = triggerPrice is not None
5154 isStopLossTriggerOrder = stopLossTriggerPrice is not None
5155 isTakeProfitTriggerOrder = takeProfitTriggerPrice is not None
5156 hasStopLoss = stopLoss is not None
5157 hasTakeProfit = takeProfit is not None
5158 isStopLossOrTakeProfitTrigger = isStopLossTriggerOrder or isTakeProfitTriggerOrder
5159 isStopLossOrTakeProfit = hasStopLoss or hasTakeProfit
5160 trailingTriggerPrice = self.safe_string(params, 'trailingTriggerPrice', self.number_to_string(price))
5161 trailingPercent = self.safe_string_2(params, 'trailingPercent', 'callbackRatio')
5162 isTrailingPercentOrder = trailingPercent is not None
5163 # multipleTriggers = (isTriggerOrder and (isStopLossTriggerOrder or isTakeProfitTriggerOrder or isTrailingPercentOrder))
5164 # or (isStopLossTriggerOrder and (isTakeProfitTriggerOrder or isTrailingPercentOrder))
5165 # or (isTakeProfitTriggerOrder and isTrailingPercentOrder)
5166 # if multipleTriggers:
5167 # raise ExchangeError(self.id + ' createOrder() params can only contain one of triggerPrice, stopLossPrice, takeProfitPrice, trailingPercent')
5168 # }
5169 #
5170 if self.sum(isTriggerOrder, isStopLossTriggerOrder, isTakeProfitTriggerOrder, isTrailingPercentOrder) > 1:
5171 raise ExchangeError(self.id + ' createOrder() params can only contain one of triggerPrice, stopLossPrice, takeProfitPrice, trailingPercent')
5172 if type == 'limit':
5173 request['price'] = self.price_to_precision(symbol, price)
5174 triggerPriceType = self.safe_string_2(params, 'triggerPriceType', 'triggerType', 'mark_price')
5175 reduceOnly = self.safe_bool(params, 'reduceOnly', False)
5176 clientOrderId = self.safe_string_2(params, 'clientOid', 'clientOrderId')
5177 exchangeSpecificTifParam = self.safe_string_2(params, 'force', 'timeInForce')
5178 postOnly = None
5179 postOnly, params = self.handle_post_only(isMarketOrder, exchangeSpecificTifParam == 'post_only', params)
5180 defaultTimeInForce = self.safe_string_upper(self.options, 'defaultTimeInForce')
5181 timeInForce = self.safe_string_upper(params, 'timeInForce', defaultTimeInForce)
5182 if postOnly:
5183 request['force'] = 'post_only'
5184 elif timeInForce == 'GTC':
5185 request['force'] = 'GTC'
5186 elif timeInForce == 'FOK':
5187 request['force'] = 'FOK'

Callers 2

create_orderMethod · 0.95
create_ordersMethod · 0.95

Calls 15

ExchangeErrorClass · 0.90
BadRequestClass · 0.90
ArgumentsRequiredClass · 0.90
InvalidOrderClass · 0.90
NotSupportedClass · 0.90
handle_param_boolMethod · 0.80
safe_value_2Method · 0.80
safe_valueMethod · 0.80
safe_stringMethod · 0.80
safe_string_2Method · 0.80
safe_boolMethod · 0.80

Tested by

no test coverage detected