edit a trade order https://api.docs.extended.exchange/#create-or-edit-order :param str id: order id assigned by Extended :param str symbol: unified symbol of the market to edit an order in :param str type: 'limit' or 'market' :param str side: 'buy'
(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={})
| 2693 | return self.parse_order(self.extend(request, data), market) |
| 2694 | |
| 2695 | def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}) -> Order: |
| 2696 | """ |
| 2697 | edit a trade order |
| 2698 | |
| 2699 | https://api.docs.extended.exchange/#create-or-edit-order |
| 2700 | |
| 2701 | :param str id: order id assigned by Extended |
| 2702 | :param str symbol: unified symbol of the market to edit an order in |
| 2703 | :param str type: 'limit' or 'market' |
| 2704 | :param str side: 'buy' or 'sell' |
| 2705 | :param float [amount]: how much of currency you want to trade in units of base currency |
| 2706 | :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency |
| 2707 | :param dict [params]: extra parameters specific to the exchange API endpoint |
| 2708 | :returns dict: an `order structure <https://docs.ccxt.com/?id=order-structure>` |
| 2709 | """ |
| 2710 | if id is None: |
| 2711 | raise ArgumentsRequired(self.id + ' editOrder() requires an id argument') |
| 2712 | expiryEpochMillis = self.safe_integer(params, 'expiryEpochMillis') |
| 2713 | postOnly = self.safe_bool(params, 'postOnly') |
| 2714 | reduceOnly = self.safe_bool_2(params, 'reduceOnly', 'reduce_only') |
| 2715 | cancelId = self.safe_string_2(params, 'cancelId', 'previousOrderId') |
| 2716 | if (amount is None) or (price is None) or (expiryEpochMillis is None) or (postOnly is None) or (reduceOnly is None) or (cancelId is None): |
| 2717 | response = self.v1PrivateGetUserOrdersId({'id': id}) |
| 2718 | order = self.safe_dict(response, 'data', {}) |
| 2719 | if amount is None: |
| 2720 | amount = self.safe_number(order, 'qty') |
| 2721 | if price is None: |
| 2722 | price = self.safe_number(order, 'price') |
| 2723 | if expiryEpochMillis is None: |
| 2724 | expiryEpochMillis = self.safe_integer(order, 'expireTime') |
| 2725 | if postOnly is None: |
| 2726 | postOnly = self.safe_bool(order, 'postOnly', False) |
| 2727 | if reduceOnly is None: |
| 2728 | reduceOnly = self.safe_bool(order, 'reduceOnly', False) |
| 2729 | if cancelId is None: |
| 2730 | cancelId = self.safe_string(order, 'externalId') |
| 2731 | if amount is None: |
| 2732 | raise ArgumentsRequired(self.id + ' editOrder() requires an amount argument or an existing order with qty') |
| 2733 | if price is None: |
| 2734 | raise ArgumentsRequired(self.id + ' editOrder() requires a price argument or an existing order with price') |
| 2735 | params = self.extend({ |
| 2736 | 'postOnly': postOnly, |
| 2737 | 'reduceOnly': reduceOnly, |
| 2738 | }, params) |
| 2739 | requestParams = self.extend(params, { |
| 2740 | 'cancelId': cancelId, |
| 2741 | 'expiryEpochMillis': expiryEpochMillis, |
| 2742 | }) |
| 2743 | extendedOrderRequest = self.create_extended_order_request(symbol, type, side, amount, price, requestParams) |
| 2744 | request = self.safe_dict(extendedOrderRequest, 'request', {}) |
| 2745 | editResponse = self.v1PrivatePostUserOrder(request) |
| 2746 | # |
| 2747 | # { |
| 2748 | # "status": "OK", |
| 2749 | # "data": { |
| 2750 | # "id": "2051479786538188800", |
| 2751 | # "externalId": "3480985089570526249141260266819446928410958787024864860785196119336740291620" |
| 2752 | # } |
nothing calls this directly
no test coverage detected