(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={})
| 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 |
no test coverage detected