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

Method edit_order_request

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

Source from the content-addressed store, hash-verified

4345 return self.parse_orders(data)
4346
4347 def edit_order_request(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
4348 market = self.market(symbol)
4349 request = {
4350 'symbol': market['id'],
4351 # 'orderId': id,
4352 # 'orderLinkId': 'string', # unique client order id, max 36 characters
4353 # 'takeProfit': 123.45, # take profit price, only take effect upon opening the position
4354 # 'stopLoss': 123.45, # stop loss price, only take effect upon opening the position
4355 # 'triggerPrice': 123.45, # trigger price, required for conditional orders
4356 # 'triggerBy': 'MarkPrice', # IndexPrice, MarkPrice, LastPrice
4357 # 'tpTriggerby': 'MarkPrice', # IndexPrice, MarkPrice, LastPrice
4358 # 'slTriggerBy': 'MarkPrice', # IndexPrice, MarkPrice, LastPrice
4359 # Valid for option only.
4360 # 'orderIv': '0', # Implied volatility; parameters are passed according to the real value; for example, for 10%, 0.1 is passed
4361 }
4362 clientOrderId = self.safe_string_2(params, 'orderLinkId', 'clientOrderId')
4363 if clientOrderId is None:
4364 request['orderId'] = id
4365 else:
4366 request['orderLinkId'] = clientOrderId
4367 category = None
4368 category, params = self.get_bybit_type('editOrderRequest', market, params)
4369 request['category'] = category
4370 if amount is not None:
4371 request['qty'] = self.get_amount(symbol, amount)
4372 if price is not None:
4373 request['price'] = self.get_price(symbol, self.number_to_string(price))
4374 triggerPrice = self.safe_string_2(params, 'triggerPrice', 'stopPrice')
4375 stopLossTriggerPrice = self.safe_string(params, 'stopLossPrice')
4376 takeProfitTriggerPrice = self.safe_string(params, 'takeProfitPrice')
4377 stopLoss = self.safe_value(params, 'stopLoss')
4378 takeProfit = self.safe_value(params, 'takeProfit')
4379 isStopLossOrder = stopLossTriggerPrice is not None
4380 isTakeProfitOrder = takeProfitTriggerPrice is not None
4381 hasStopLoss = stopLoss is not None
4382 hasTakeProfit = takeProfit is not None
4383 if isStopLossOrder or isTakeProfitOrder:
4384 triggerPrice = stopLossTriggerPrice if isStopLossOrder else takeProfitTriggerPrice
4385 if triggerPrice is not None:
4386 triggerPriceRequest = triggerPrice if (triggerPrice == '0') else self.get_price(symbol, triggerPrice)
4387 request['triggerPrice'] = triggerPriceRequest
4388 triggerBy = self.safe_string(params, 'triggerBy', 'LastPrice')
4389 request['triggerBy'] = triggerBy
4390 if hasStopLoss or hasTakeProfit:
4391 if hasStopLoss:
4392 slTriggerPrice = self.safe_string_2(stopLoss, 'triggerPrice', 'stopPrice', stopLoss)
4393 stopLossRequest = slTriggerPrice if (slTriggerPrice == '0') else self.get_price(symbol, slTriggerPrice)
4394 request['stopLoss'] = stopLossRequest
4395 slTriggerBy = self.safe_string(params, 'slTriggerBy', 'LastPrice')
4396 request['slTriggerBy'] = slTriggerBy
4397 if hasTakeProfit:
4398 tpTriggerPrice = self.safe_string_2(takeProfit, 'triggerPrice', 'stopPrice', takeProfit)
4399 takeProfitRequest = tpTriggerPrice if (tpTriggerPrice == '0') else self.get_price(symbol, tpTriggerPrice)
4400 request['takeProfit'] = takeProfitRequest
4401 tpTriggerBy = self.safe_string(params, 'tpTriggerBy', 'LastPrice')
4402 request['tpTriggerBy'] = tpTriggerBy
4403 params = self.omit(params, ['stopPrice', 'stopLossPrice', 'takeProfitPrice', 'triggerPrice', 'clientOrderId', 'stopLoss', 'takeProfit'])
4404 return request

Callers 3

edit_orderMethod · 0.95
edit_ordersMethod · 0.95
edit_order_wsMethod · 0.95

Calls 8

get_bybit_typeMethod · 0.95
get_amountMethod · 0.95
get_priceMethod · 0.95
safe_string_2Method · 0.80
safe_stringMethod · 0.80
safe_valueMethod · 0.80
marketMethod · 0.45
omitMethod · 0.45

Tested by

no test coverage detected