MCPcopy Index your code
hub / github.com/ccxt/ccxt / createOrder

Method createOrder

java/lib/src/main/java/io/github/ccxt/exchanges/OkxCore.java:3724–3770  ·  view source on GitHub ↗

@method @name okx#createOrder @description create a trade order @see https://www.okx.com/docs-v5/en/#order-book-trading-trade-post-place-order @see https://www.okx.com/docs-v5/en/#order-book-trading-trade-post-place-multiple-orders @see https://www.okx.com/docs-v5/en/#order-book-trading-algo-trading

(Object symbol, Object type2, Object side, Object amount, Object... optionalArgs)

Source from the content-addressed store, hash-verified

3722 * @returns {object} an [order structure]{@link https://docs.ccxt.com/?id=order-structure}
3723 */
3724 public java.util.concurrent.CompletableFuture<Object> createOrder(Object symbol, Object type2, Object side, Object amount, Object... optionalArgs)
3725 {
3726 final Object type3 = type2;
3727 return java.util.concurrent.CompletableFuture.supplyAsync(() -> {
3728 Object type = type3;
3729 Object price = Helpers.getArg(optionalArgs, 0, null);
3730 Object parameters = Helpers.getArg(optionalArgs, 1, new java.util.HashMap<String, Object>() {{}});
3731 (this.loadMarkets()).join();
3732 Object market = this.market(symbol);
3733 Object request = this.createOrderRequest(symbol, type, side, amount, price, parameters);
3734 Object method = this.safeString(this.options, "createOrder", "privatePostTradeBatchOrders");
3735 Object requestOrdType = this.safeString(request, "ordType");
3736 if (Helpers.isTrue(Helpers.isTrue(Helpers.isTrue(Helpers.isTrue(Helpers.isTrue(Helpers.isTrue(Helpers.isTrue((Helpers.isEqual(requestOrdType, "trigger"))) || Helpers.isTrue((Helpers.isEqual(requestOrdType, "conditional")))) || Helpers.isTrue((Helpers.isEqual(requestOrdType, "move_order_stop")))) || Helpers.isTrue((Helpers.isEqual(type, "move_order_stop")))) || Helpers.isTrue((Helpers.isEqual(type, "oco")))) || Helpers.isTrue((Helpers.isEqual(type, "iceberg")))) || Helpers.isTrue((Helpers.isEqual(type, "twap")))))
3737 {
3738 method = "privatePostTradeOrderAlgo";
3739 }
3740 if (Helpers.isTrue(Helpers.isTrue(Helpers.isTrue((!Helpers.isEqual(method, "privatePostTradeOrder"))) && Helpers.isTrue((!Helpers.isEqual(method, "privatePostTradeOrderAlgo")))) && Helpers.isTrue((!Helpers.isEqual(method, "privatePostTradeBatchOrders")))))
3741 {
3742 throw new ExchangeError((String)Helpers.add(this.id, " createOrder() this.options[\"createOrder\"] must be either privatePostTradeBatchOrders or privatePostTradeOrder or privatePostTradeOrderAlgo")) ;
3743 }
3744 if (Helpers.isTrue(Helpers.isEqual(method, "privatePostTradeBatchOrders")))
3745 {
3746 // keep the request body the same
3747 // submit a single order in an array to the batch order endpoint
3748 // because it has a lower ratelimit
3749 request = new java.util.ArrayList<Object>(java.util.Arrays.asList(request));
3750 }
3751 Object response = null;
3752 if (Helpers.isTrue(Helpers.isEqual(method, "privatePostTradeOrder")))
3753 {
3754 response = (this.privatePostTradeOrder(request)).join();
3755 } else if (Helpers.isTrue(Helpers.isEqual(method, "privatePostTradeOrderAlgo")))
3756 {
3757 response = (this.privatePostTradeOrderAlgo(request)).join();
3758 } else
3759 {
3760 response = (this.privatePostTradeBatchOrders(request)).join();
3761 }
3762 Object data = this.safeList(response, "data", new java.util.ArrayList<Object>(java.util.Arrays.asList()));
3763 Object first = this.safeDict(data, 0, new java.util.HashMap<String, Object>() {{}});
3764 Object order = this.parseOrder(first, market);
3765 Helpers.addElementToObject(order, "type", type);
3766 Helpers.addElementToObject(order, "side", side);
3767 return order;
3768 });
3769
3770 }
3771
3772 /**
3773 * @method

Calls 15

getArgMethod · 0.95
createOrderRequestMethod · 0.95
isTrueMethod · 0.95
isEqualMethod · 0.95
addMethod · 0.95
parseOrderMethod · 0.95
addElementToObjectMethod · 0.95
privatePostTradeOrderMethod · 0.65
loadMarketsMethod · 0.45
marketMethod · 0.45

Tested by

no test coverage detected