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

Method edit_order

python/ccxt/extended.py:2695–2760  ·  view source on GitHub ↗

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={})

Source from the content-addressed store, hash-verified

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 # }

Callers

nothing calls this directly

Calls 13

parse_orderMethod · 0.95
ArgumentsRequiredClass · 0.90
safe_integerMethod · 0.80
safe_boolMethod · 0.80
safe_bool_2Method · 0.80
safe_string_2Method · 0.80
safe_dictMethod · 0.80
safe_numberMethod · 0.80
safe_stringMethod · 0.80

Tested by

no test coverage detected