def place_order(self, is_buy, trading_pair, amount, order_type, price, nonce, get_resp, market_connector=None): global EXCHANGE_ORDER_ID order_id, exch_order_id = None, None if MOCK_API_ENABLED: exch_order_id = f"OKEX_{EXCHANGE_ORDER_ID}" EXCHANGE_ORDER_ID += 1 self._t_nonce_mock.return_value = nonce resp = FixtureOKEx.ORDER_PLACE.copy() resp["data"][0]["ordId"] = exch_order_id # resp = exch_order_id side = 'buy' if is_buy else 'sell' order_id = f"{side}-{trading_pair}-{nonce}" self.web_app.update_response("post", API_BASE_URL, "/" + OKEX_PLACE_ORDER, resp) market = self.market if market_connector is None else market_connector if is_buy: order_id = market.buy(trading_pair, amount, order_type, price) else: order_id = market.sell(trading_pair, amount, order_type, price) if MOCK_API_ENABLED: resp = get_resp.copy() # resp is the response passed by parameter resp["data"][0]["ordId"] = exch_order_id resp["data"][0]["clOrdId"] = order_id self.web_app.update_response("get", API_BASE_URL, '/' + OKEX_ORDER_DETAILS_URL.format(ordId=exch_order_id, trading_pair="ETH-USDT"), resp) return order_id, exch_order_id
def cancel_order(self, trading_pair, order_id, exchange_order_id, get_resp): if MOCK_API_ENABLED: resp = FixtureOKEx.ORDER_CANCEL.copy() resp["data"][0]["ordId"] = exchange_order_id resp["data"][0]["clOrdId"] = order_id self.web_app.update_response("post", API_BASE_URL, '/' + OKEX_ORDER_CANCEL, resp, params={"ordId": exchange_order_id}) self.market.cancel(trading_pair, order_id) if MOCK_API_ENABLED: resp = get_resp.copy() resp["data"][0]["ordId"] = exchange_order_id resp["data"][0]["clOrdId"] = order_id self.web_app.update_response("get", API_BASE_URL, '/' + OKEX_ORDER_DETAILS_URL.format(ordId=exchange_order_id, trading_pair="ETH-USDT"), resp)
def cancel_order(self, trading_pair, order_id, exchange_order_id, get_resp): global EXCHANGE_ORDER_ID if MOCK_API_ENABLED: resp = FixtureOKEx.ORDER_CANCEL.copy() resp["order_id"] = exchange_order_id self.web_app.update_response("post", API_BASE_URL, '/' + OKEX_ORDER_CANCEL.format(exchange_order_id=order_id), resp) self.market.cancel(trading_pair, order_id) if MOCK_API_ENABLED: resp = get_resp.copy() resp["order_id"] = exchange_order_id resp["client_oid"] = order_id self.web_app.update_response("get", API_BASE_URL, '/' + OKEX_ORDER_DETAILS_URL.format(exchange_order_id=exchange_order_id), resp)