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

Method createOrder

java/lib/src/main/java/io/github/ccxt/exchanges/HtxCore.java:6035–6225  ·  view source on GitHub ↗

@method @name htx#createOrder @description create a trade order @see https://huobiapi.github.io/docs/spot/v1/en/#place-a-new-order // spot, margin @see https://huobiapi.github.io/docs/coin_margined_swap/v1/en/#place-an-order // coin-m swap @see https://huobiapi.githu

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

Source from the content-addressed store, hash-verified

6033 * @returns {object} an [order structure]{@link https://docs.ccxt.com/?id=order-structure}
6034 */
6035 public java.util.concurrent.CompletableFuture<Object> createOrder(Object symbol, Object type, Object side, Object amount, Object... optionalArgs)
6036 {
6037
6038 return java.util.concurrent.CompletableFuture.supplyAsync(() -> {
6039
6040 Object price = Helpers.getArg(optionalArgs, 0, null);
6041 Object parameters = Helpers.getArg(optionalArgs, 1, new java.util.HashMap<String, Object>() {{}});
6042 (this.loadMarkets()).join();
6043 Object market = this.market(symbol);
6044 Object triggerPrice = this.safeNumberN(parameters, new java.util.ArrayList<Object>(java.util.Arrays.asList("triggerPrice", "stopPrice", "trigger_price")));
6045 Object stopLossTriggerPrice = this.safeNumber2(parameters, "stopLossPrice", "sl_trigger_price");
6046 Object takeProfitTriggerPrice = this.safeNumber2(parameters, "takeProfitPrice", "tp_trigger_price");
6047 Object trailingPercent = this.safeNumber(parameters, "trailingPercent");
6048 Object isTrailingPercentOrder = !Helpers.isEqual(trailingPercent, null);
6049 Object isTrigger = !Helpers.isEqual(triggerPrice, null);
6050 Object isStopLossTriggerOrder = !Helpers.isEqual(stopLossTriggerPrice, null);
6051 Object isTakeProfitTriggerOrder = !Helpers.isEqual(takeProfitTriggerPrice, null);
6052 Object response = null;
6053 if (Helpers.isTrue(Helpers.GetValue(market, "spot")))
6054 {
6055 if (Helpers.isTrue(isTrailingPercentOrder))
6056 {
6057 throw new NotSupported((String)Helpers.add(this.id, " createOrder() does not support trailing orders for spot markets")) ;
6058 }
6059 Object spotRequest = (this.createSpotOrderRequest(symbol, type, side, amount, price, parameters)).join();
6060 response = (this.spotPrivatePostV1OrderOrdersPlace(spotRequest)).join();
6061 } else
6062 {
6063 Object contractRequest = this.createContractOrderRequest(symbol, type, side, amount, price, parameters);
6064 if (Helpers.isTrue(Helpers.GetValue(market, "linear")))
6065 {
6066 if (Helpers.isTrue(Helpers.isTrue(Helpers.isTrue(Helpers.isTrue(isTrigger) || Helpers.isTrue(isStopLossTriggerOrder)) || Helpers.isTrue(isTakeProfitTriggerOrder)) || Helpers.isTrue(isTrailingPercentOrder)))
6067 {
6068 response = (this.contractPrivatePostV5AlgoOrder(contractRequest)).join();
6069 } else
6070 {
6071 response = (this.contractPrivatePostV5TradeOrder(contractRequest)).join();
6072 }
6073 } else if (Helpers.isTrue(Helpers.GetValue(market, "inverse")))
6074 {
6075 Object offset = this.safeString(parameters, "offset");
6076 if (Helpers.isTrue(Helpers.isEqual(offset, null)))
6077 {
6078 throw new ArgumentsRequired((String)Helpers.add(this.id, " createOrder () requires an extra parameter params[\"offset\"] to be set to \"open\" or \"close\" when placing orders in inverse markets")) ;
6079 }
6080 if (Helpers.isTrue(Helpers.GetValue(market, "swap")))
6081 {
6082 if (Helpers.isTrue(isTrigger))
6083 {
6084 response = (this.contractPrivatePostSwapApiV1SwapTriggerOrder(contractRequest)).join();
6085 } else if (Helpers.isTrue(Helpers.isTrue(isStopLossTriggerOrder) || Helpers.isTrue(isTakeProfitTriggerOrder)))
6086 {
6087 response = (this.contractPrivatePostSwapApiV1SwapTpslOrder(contractRequest)).join();
6088 } else if (Helpers.isTrue(isTrailingPercentOrder))
6089 {
6090 response = (this.contractPrivatePostSwapApiV1SwapTrackOrder(contractRequest)).join();
6091 } else
6092 {

Callers 2

Calls 15

getArgMethod · 0.95
isEqualMethod · 0.95
isTrueMethod · 0.95
GetValueMethod · 0.95
addMethod · 0.95
parseOrderMethod · 0.95

Tested by

no test coverage detected