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

Method edit_order_request

python/ccxt/bybit.py:4346–4403  ·  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

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

Callers 2

edit_orderMethod · 0.95
edit_ordersMethod · 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