Place Order

About 12 min

Place Order TradeOrderRequest

Description

API for trading. Please refer to the demonstration below for how to set the asset to trade, order types, quantity, etc. **Please read the Introduction section of this documentation, as well as FAQ-Trade-Supported Order Typesopen in new windowsection,to make sure that the order types involved in your program are actually allowed ** If this method returns an error, or that your order gets canceled by the system, it is recommended that you refer to FAQ-Trade section for a quick inspection yourself.

  • Market Order(MKT)and Stop Order(STP)do not support pre-market and post-market transactions. When placing the order, you need to set 'outside_rth' to false
  • For the symbol that can be shorted, the lock-up function is not currently supported, so it is impossible to hold long and short positions of the same symbol at the same time
  • Attached Order currently only supports limit orders
  • The limit price does not match the tick size, you can use the 'StockPriceUtils' tool class to judge whether it matches, and fix the price to meet the tick size requirements
  • Market Order(MKT) and the paper trade account,GTC is not supported for 'time_in_force' parameter
  • The paper trade account currently does not support warrants and CBBC orders

Order Status Explanation

  • How can I determine the partial fulfillment status of my Prime or Paper accounts?

When the order status is not Initial and Filled (it may be one of PendingSubmit, Cancelled, Invalid, Inactive), it may be partially filled status, which can be judged by whether the number of orders filled is greater than 0.

  • How to determine the status of partial transaction of Global Account?

The order status is Filled, and the number of transactions is greater than 0.

Order Status Flow

Order Status Flow

Other Information

  • Trading of ETF options that expire on Wednesdays and are based on the underlying assets of the three ETFs, namely 【IWM/SPY/QQQ】, is supported. Other index options that do not expire on Fridays are not supported.
  • Directly opening a reverse position is not allowed. For example, selling 200 shares when holding 100 shares is not permitted. The position must be closed first.

Argument

Common attributes:

ParameterTypeDescriptionMarket OrderLimit OrderStop OrderStop Limit OrderTrailing Stop Order
accountstrUser authorization account: 402901
order_idintThe order number, which is used to prevent repeated orders. It can be obtained through the order number interface. If you pass 0, the server will automatically generate an order number. When you pass 0, you cannot prevent repeated orders. Please choose carefullyoptionaloptionaloptionaloptionaloptional
symbolstrStock code such as: AAPL; (when sec_typ is warrant CBBC, the 5 digits below the name in the app warrant/CBBC list)
sec_typestrcontract type (STK stock; OPT US stock option; WAR Hong Kong stock warrant; IOPT Hong Kong stock CBBC; FUT futures; FUND funds)
actionstrtrading direction BUY/SELL
order_typestrorder type. MKT (market order), LMT (limit order), STP (stop loss order), STP_LMT (stop loss limit order), TRAIL (trailing stop loss order)MKTLMTSTPSTP_LMTTRAIL
total_quantitylongOrder quantity (Hong Kong stocks, Shanghai-Hong Kong Stock Connect, warrants, CBBCs have a minimum quantity limit)
total_quantity_scaleintThe offset of the order quantity, default is 0. The combination of 'total_quantity' and 'total_quantity_scale' of odd lot orders represents the actual order quantity. For example, total_quantity=111 total_quantity_scale=2, then the real quantity=111*10^(-2)=1.11optionaloptionaloptionaloptionaloptional
cash_amountDoubleOrder cash amount (Fund)optional
limit_pricefloatlimit price, this parameter is required when order_type is LMT, STP_LMT
aux_pricefloatStock order stop loss trigger price. The meaning is the price difference, and it is covered by trailing_percent when it exists with trailing_percent. When the order_type is STP, STP_LMT, this parameter is required; when the order_type is TRAIL, it is the tracking amountOptional
trailing_percentfloatTrailing stop order - stop loss percentage. When the order_type is TRAIL, aux_price and trailing_percent are mutually exclusive, and trailing_percent is used preferentiallyoptional
outside_rthbooleantrue: Allow pre-market and after-hours trading (exclusive to US stocks), false: Not allowed, the default is allowed. (Market order, stop loss order, and trailing stop order are only valid in the intraday, and the outside_rth parameter will be ignored)optionaloptionaloptional
trading_session_typeTradeSessionOverNight: overnight order in the US market(LMT only)optionaloptional
adjust_limitfloatPrice fine-tuning range (default is 0 means no adjustment, positive number means upward adjustment, negative number means downward adjustment), and the incoming price is automatically adjusted to the legal price. For example: 0.001 is an upward adjustment of up to 0.1%; -0.001 is a downward adjustment of up to 0.1%. Default 0 means no adjustmentoptionaloptionaloptionaloptional
marketstrmarket (US stocks US Hong Kong stocks HK Shanghai-Hong Kong Stock Connect CN)optionaloptionaloptionaloptionaloptional
currencystrcurrency (US stocks USD Hong Kong stocks HKD Shanghai-Hong Kong Stock Connect CNH)optionaloptionaloptionaloptionaloptional
time_in_forcestrThe validity period of the order can only be DAY (valid on the current day), GTC (valid before cancellation, the longest valid time is 180 days), GTD (valid before the specified time), the default is DAYoptionaloptionaloptionaloptionaloptional
expire_timelongThe valid deadline of the order,13-bit timestamp, accurate to the second (required when time_in_force is GTD, invalid for other types)OptionalOptionaloptional
exchangestrExchange (US Stocks SMART Hong Kong Stocks SEHK Shanghai-Hong Kong Stock Connect SEHKNTL Shenzhen-Hong Kong Stock Connect SEHKSZSE) Nooptionaloptionaloptionaloptionaloptional
expirystrexpiry date (option, warrant, CBBC exclusive)optionaloptionaloptionaloptionaloptional
strikestrunderlying price (option, warrant, CBBC exclusive)optionaloptionaloptionaloptionaloptional
rightstroption direction PUT/CALL (option, warrant, CBBC exclusive)optionaloptionaloptionaloptionaloptional
multiplierfloat1 lot unit (option, warrant, CBBC exclusive)optionaloptionaloptionaloptionaloptional
local_symbolstrWarrant CBBC This field is required, the 5 digits below the name in the app warrant/CBBC listoptionaloptionaloptionaloptionaloptional
secret_keystrDedicated to institutional users, trader keyoptionaloptionaloptionaloptionaloptional
user_markstrorder note information, cannot be modified after order is placed, userMark information will be returned when querying an orderoptionaloptionaloptionaloptionaloptional
  • attached order parameter
  • Attached Order (Attached Order) refers to an order that can have a take-profit or stop-loss effect on the main order through an attached sub-order. Stop loss order (can be used to stop loss). Additional orders can be achieved by adding the following parameters
ParameterTypeDescriptionAdditional Stop LossAdditional Take ProfitAdditional Trailing StopAdditional Parentheses
attach_typestrAttachment order type, required when attaching an order. (order_type should be LMT): PROFIT-take-profit order, LOSS-stop-loss order, BRACKETS-bracket order (including take-profit order and stop-loss order)
profit_taker_order_idintTake profit order ID, which can be obtained through the order ID interface. If 0 is passed, the server will automatically generate a take profit order numberoptionaloptionaloptional
profit_taker_pricefloatTake profit order price, required when placing a take profit order
profit_taker_tifstrSame as the time_in_force field, the order validity period can only be DAY (valid on the day) and GTC (valid before cancellation), required when placing a take profit order
profit_taker_rthbooleanSame as outside_rth field
stop_loss_order_idintStop loss order ID, which can be obtained through the order ID interface. If 0 is passed, the server will automatically generate a stop loss order number
stop_loss_pricefloatStop loss order price (stop loss order trigger price), required when placing a stop loss order
stop_loss_limit_pricefloatExecution limit price of stop loss order (only valid for integrated account temporarily). If the limit price of the stop loss order is not filled in, it is an additional stop loss market order; when filled in, it is an additional stop loss limit order. When the main order transaction direction is BUY, it needs to meet stop_loss_price > stop_loss_limit_price, otherwise the main order transaction direction is SELL. stop_loss_price < stop_loss_limit_priceoptionaloptional
stop_loss_tifstrSame as the time_in_force field, the order validity period can only be DAY (valid on the day) and GTC (valid before cancellation), required when placing a stop loss order
stop_loss_trailing_percentfloatTrailing stop loss order-stop loss percentage, when trailing stop loss order, one of the stop loss percentage (stopLossTrailingPercent) and stop loss amount (stopLossTrailingAmount) must be filled in, if both are filled, the stop loss percentage will be used as the parameter.optionaloptional
stop_loss_trailing_amountfloatTrailing stop loss order-stop loss amount, when trailing stop loss order, one of stop loss percentage (stopLossTrailingPercent) and stop loss amount (stopLossTrailingAmount) must be filled in, if both are filled, the stop loss percentage will be used as parameter.optionaloptional
  • TWAP/VWAP order parameter

TWAP/VWAP order, only supports US stocks, and can only place orders in the market, does not support pre-orders

ParameterTypeAlgorithm parametersDescriptionTWAPVWAP
order_typestringorder type, TWAP/VWAP
accountstringaccount id
symbolstringStock code such as: AAPL
sec_typestringonly supports STK
total_quantitybooleanOrder quantity
algo_paramsList<TagValue>algorithm parametersoptionaloptional
-longstart_timeTime when order can start trading (time stamp)optionaloptional
-longend_timeTime when order can end trading(time stamp)optionaloptional
-stringparticipation_rateMaximum participation rate (volume is the maximum ratio of daily average volume, 0.01-0.5)optional

Response

NameTypeDescription
idlongorder id, this id is used to identify an order on the server
subIdsList<Long>When there is an additional order, return to the list of sub-order ID
ordersList<TradeOrder>order details

Construct Contract Object

// US stocks
ContractItem contract = ContractItem.buildStockContract("SPY", "USD");

// HK stocks
ContractItem contract = ContractItem.buildStockContract("00700", "HKD");

// Warrant(Attention: for the same symbol, global account and prime account may return different expiration datas)
ContractItem contract = ContractItem.buildWarrantContract("13745", "20211217", 719.38D, Right.CALL.name());
// CBBC
ContractItem contract = ContractItem.buildCbbcContract("50296", "20220331", 457D, Right.CALL.name());

// U.S Options
ContractItem contract = ContractItem.buildOptionContract("AAPL  190118P00160000");
ContractItem contract = ContractItem.buildOptionContract("AAPL", "20211119", 150.0D, "CALL");

// Futures

// Global Account
ContractItem contract = ContractItem.buildFutureContract("CL", "USD", "SGX", "20190328", 1.0D);

// Prime Account
ContractItem contract = ContractItem.buildFutureContract("CL2112", "USD");

Market Order(MKT)

// get contract(use default account)
ContractRequest contractRequest = ContractRequest.newRequest(
  new ContractModel("AAPL"));
ContractResponse contractResponse = client.execute(contractRequest);
ContractItem contract = contractResponse.getItem();
// market order(use default account)
TradeOrderRequest request = TradeOrderRequest.buildMarketOrder(contract, ActionType.BUY, 10);
TradeOrderResponse response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

// get contract(use account parameter)
ContractRequest contractRequest = ContractRequest.newRequest(
  new ContractModel("AAPL"), "402901");
ContractResponse contractResponse = client.execute(contractRequest);
ContractItem contract = contractResponse.getItem();
// market order(use account parameter)
request = TradeOrderRequest.buildMarketOrder("402901", contract, ActionType.BUY, 10);
response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

Limit Order(LMT)

// use default account
TradeOrderRequest request = TradeOrderRequest.buildLimitOrder(
  contract, ActionType.BUY, 1, 100.0d);
TradeOrderResponse response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

// use account parameter
request = TradeOrderRequest.buildLimitOrder(
  "402901", contract, ActionType.BUY, 1, 100.0d);
// set user_mark
request.setUserMark("test001");
// set GTD order's expire_time
request.setTimeInForce(TimeInForce.GTD);
request.setExpireTime(1669363583804L);
response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

// place overnight order in the US market
request = TradeOrderRequest.buildLimitOrder("402901", contract, ActionType.BUY, 1, 100.0d);
// set overnight order
request.setTradingSessionType(TradeSession.OverNight);
response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

Auction Order(AM/AL)

// auction order in hk market
TradeOrderRequest request = TradeOrderRequest.buildLimitOrder("402901", contract, ActionType.BUY, 100, 100.0d);
// pre-mardet auciton order: AM or AL + OPG(If there is no transaction, continue to participate in intraday trading); after-hours auction order: AM or AL + DAY
// participate in the pre-market auction, set auction limit order
request.setAuctionOrder(OrderType.AL, TimeInForce.OPG);
response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

request = TradeOrderRequest.buildMarketOrder("402901", contract, ActionType.BUY, 100);
// Participate in the after-hours auction, set auction market order
request.setAuctionOrder(OrderType.AM, TimeInForce.OPG);
response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

Stop Order(STP)

// use default account
TradeOrderRequest request = TradeOrderRequest.buildStopOrder(
  contract, ActionType.BUY, 1, 120.0d);
TradeOrderResponse response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

// use account parameter
request = TradeOrderRequest.buildStopOrder(
  "402901", contract, ActionType.BUY, 1, 120.0d);
response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

Stop-Limit Orders (STP_LMT)

// use default account
TradeOrderRequest request = TradeOrderRequest.buildStopLimitOrder(
  contract, ActionType.BUY, 1,
  150d,130.0d);
TradeOrderResponse response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

// use account parameter
request = TradeOrderRequest.buildStopLimitOrder(
  "402901", contract, ActionType.BUY, 1,
  150d,130.0d);
response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

Trailing-stop Order (TRAIL)

// use default account
TradeOrderRequest request = TradeOrderRequest.buildTrailOrder(
  contract, ActionType.BUY, 1,
  10d,130.0d);
TradeOrderResponse response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

// use account parameter. standard account currently not supported
request = TradeOrderRequest.buildTrailOrder(
  "402901", contract, ActionType.BUY, 1,
  10d,130.0d);
response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

Main Order+Attached Take Profit Order

// use default account
TradeOrderRequest request = TradeOrderRequest.buildLimitOrder(
  contract, ActionType.BUY, 1, 199d);
TradeOrderRequest.addProfitTakerOrder(request, 250D, TimeInForce.DAY, Boolean.FALSE);
TradeOrderResponse response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

// use account parameter
request = TradeOrderRequest.buildLimitOrder(
  "402901", contract, ActionType.BUY, 1, 199d);
TradeOrderRequest.addProfitTakerOrder(request, 250D, TimeInForce.DAY, Boolean.FALSE);
response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

Main Order+Attached Stop Order

// use default account
TradeOrderRequest request = TradeOrderRequest.buildLimitOrder(
  contract, ActionType.BUY, 1, 129d);
TradeOrderRequest.addStopLossOrder(request, 100D, TimeInForce.DAY);
TradeOrderResponse response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

// use account parameter
request = TradeOrderRequest.buildLimitOrder(
  "402901", contract, ActionType.BUY, 1, 129d);
// attach a stop order, the stop price is the activation price (not available to options)
TradeOrderRequest.addStopLossOrder(request, 100D, TimeInForce.DAY);
response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

// For options, please use stop limit order
ContractItem optionContract = ContractItem.buildOptionContract("AAPL",
                                                               "20211231", 175.0D, "CALL");
request = TradeOrderRequest.buildLimitOrder(
  "402901", optionContract, ActionType.BUY, 1, 2.0d);
// attach a stop limit order, the first price-1.7 is the activation price, the second price-1.69 is the limit price (Only available for prime account)
TradeOrderRequest.addStopLossLimitOrder(request, 1.7D, 1.69D, TimeInForce.DAY);
response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

Main Order+Attached Stop Trail Order

ContractItem contract = ContractItem.buildStockContract("AAPL", "USD");
// use default account
TradeOrderRequest request = TradeOrderRequest.buildLimitOrder(
  contract, ActionType.BUY, 1, 165D).setLang(Language.en_US);
TradeOrderRequest.addStopLossTrailOrder(request, 10.0D, null, TimeInForce.DAY);
TradeOrderResponse response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

// use account parameter
request = TradeOrderRequest.buildLimitOrder(
  "402901", contract, ActionType.BUY, 1, 165D);
TradeOrderRequest.addStopLossTrailOrder(request, 10.0D, null, TimeInForce.DAY);
response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

Main Order+Attached bracket Order

// use default account
TradeOrderRequest request = TradeOrderRequest.buildLimitOrder(
  contract, ActionType.BUY, 1, 199d);
TradeOrderRequest.addBracketsOrder(request, 250D, TimeInForce.DAY, Boolean.FALSE,
                                   180D, TimeInForce.GTC);
TradeOrderResponse response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

// use account parameter
request = TradeOrderRequest.buildLimitOrder(
  "13810712", contract, ActionType.BUY, 1, 199d);
TradeOrderRequest.addBracketsOrder(request, 250D, TimeInForce.DAY, Boolean.FALSE,
                                   180D, TimeInForce.GTC);
response = client.execute(request);
System.out.println(JSONObject.toJSONString(response));

Forex Order

ForexTradeOrderRequest request = ForexTradeOrderRequest.buildRequest("402901", 
    SegmentType.SEC, Currency.HKD, 1000D, Currency.USD);

ForexTradeOrderResponse response = client.execute(request);
if (response.isSuccess()) {
  System.out.println(JSONObject.toJSONString(response));
} else {
  System.out.println(response.getMessage());
}

Fund Amount Order

    ContractItem contract = ContractItem.buildFundContract("IE00B464Q616.USD", "USD");
    TradeOrderRequest request = TradeOrderRequest.buildAmountOrder(
        "13810712", contract, ActionType.BUY, 100.0D);
    request.setUserMark("test-amount-order");
    TradeOrderResponse response = client.execute(request);
    if (response.isSuccess()) {
      System.out.println(JSONObject.toJSONString(response));
    } else {
      System.out.println(response.getMessage());
    }

TWAP/VWAP Order

Only supports U.S. stocks, and only supports intraday orders

// TWAP order
TradeOrderRequest twapRequest = TradeOrderRequest.buildTWAPOrder(
    "572386", "DM", ActionType.BUY, 500,
    DateUtils.getTimestamp("2023-06-20 09:30:00", TimeZoneId.NewYork),
    DateUtils.getTimestamp("2023-06-20 11:00:00", TimeZoneId.NewYork),
     1.5D)
  .setUserMark("testTWAP001")
  .setLang(Language.en_US);

TradeOrderResponse twapResponse = client.execute(twapRequest);
if (twapResponse.isSuccess()) {
  System.out.println(JSONObject.toJSONString(twapResponse));
} else {
  System.out.println(twapResponse.getMessage());
}

// VWAP order
TradeOrderRequest vwapRequest = TradeOrderRequest.buildVWAPOrder(
    "572386", "DM", ActionType.BUY, 500,
    DateUtils.getTimestamp("2023-06-20 09:30:00", TimeZoneId.NewYork),
    DateUtils.getTimestamp("2023-06-20 11:00:00", TimeZoneId.NewYork),
    0.5D, 1.5D)
  .setUserMark("testVWAP001")
  .setLang(Language.en_US);

TradeOrderResponse vwapResponse = client.execute(vwapRequest);
if (vwapResponse.isSuccess()) {
  System.out.println(JSONObject.toJSONString(vwapResponse));
} else {
  System.out.println(vwapResponse.getMessage());
}

Options Multi Legs Order

Only supports intraday orders

List<ContractLeg> contractLegs = new ArrayList<>();
ContractLeg leg1 = new ContractLeg(SecType.OPT, "AAPL",
    "170.0", "20231013", Right.CALL,
    ActionType.BUY, 1);
contractLegs.add(leg1);
ContractLeg leg2 = new ContractLeg(SecType.OPT, "AAPL",
    "170.0", "20231013", Right.PUT,
    ActionType.BUY, 1);
contractLegs.add(leg2);

TradeOrderRequest request = TradeOrderRequest.buildMultiLegOrder(
    "572386", contractLegs, ComboType.CUSTOM,
        ActionType.BUY, 3,
        OrderType.LMT, 2.01d, null, null)
    .setLang(Language.en_US)
    .setUserMark("test_multi_leg");
TradeOrderResponse response = client.execute(request);
if (response.isSuccess()) {
  System.out.println(JSONObject.toJSONString(response));
} else {
  System.out.println(response.getMessage());
}

OCA Bracket Order

The two orders in the OCA order group have the same symbol, one is a take-profit limit order, and the other is a stop-loss order or stop-loss limit order. When one of the orders is completed, the other order is automatically canceled. Placing an order returns two order objects. If the 'ocaGroupId' in the order is the same, it is a combination. Paper Account is not supported.

ContractItem contract = ContractItem.buildStockContract("BILI", "USD");
TradeOrderRequest request = TradeOrderRequest.buildOCABracketsOrder(
        "13810712", contract, ActionType.SELL, 1,
        17.0D, TimeInForce.DAY, Boolean.TRUE,
        12.0D, null, TimeInForce.DAY, Boolean.FALSE);
request.setLang(Language.en_US).setUserMark("test-oca");

TradeOrderResponse response = client.execute(request);
if (response.isSuccess()) {
  System.out.println(JSONObject.toJSONString(response));
  // get oca order info
  List<TradeOrder> ocaOrders = response.getItem().getOrders();
} else {
  System.out.println(response.getMessage());
}

Response Example Additional brackets order

{
    "id":30325712346546176,
    "orderId":0,
    "subIds":[
        30325712346546177,
        30325712346677250
    ],
    "orders":[
        {
            "account":"13810712",
            "action":"BUY",
            "algoStrategy":"LMT",
            "attrDesc":"",
            "avgFillPrice":0,
            "canCancel":true,
            "canModify":true,
            "commission":0,
            "currency":"HKD",
            "discount":0,
            "filledQuantity":0,
            "id":30325712346546176,
            "identifier":"00700",
            "latestPrice":385.8,
            "latestTime":1680266023000,
            "limitPrice":295,
            "liquidation":false,
            "market":"HK",
            "name":"TENCENT",
            "openTime":1680266023000,
            "orderId":91,
            "orderType":"LMT",
            "outsideRth":true,
            "realizedPnl":0,
            "remark":"",
            "secType":"STK",
            "source":"OpenApi",
            "status":"Initial",
            "symbol":"00700",
            "timeInForce":"DAY",
            "totalQuantity":100,
            "updateTime":1680266023000,
            "userMark":"test_bracket"
        },
        {
            "account":"13810712",
            "action":"SELL",
            "algoStrategy":"LMT",
            "attrDesc":"",
            "avgFillPrice":0,
            "canCancel":true,
            "canModify":true,
            "commission":0,
            "currency":"HKD",
            "discount":0,
            "filledQuantity":0,
            "id":30325712346546177,
            "identifier":"00700",
            "latestPrice":385.8,
            "latestTime":1680266023000,
            "limitPrice":320,
            "liquidation":false,
            "market":"HK",
            "name":"TENCENT",
            "ocaGroupId":87055,
            "openTime":1680266023000,
            "orderId":92,
            "orderType":"LMT",
            "outsideRth":true,
            "parentId":30325712346546176,
            "realizedPnl":0,
            "remark":"",
            "secType":"STK",
            "source":"OpenApi",
            "status":"Initial",
            "symbol":"00700",
            "timeInForce":"DAY",
            "totalQuantity":100,
            "updateTime":1680266023000,
            "userMark":"test_bracket"
        },
        {
            "account":"13810712",
            "action":"SELL",
            "algoStrategy":"STP_LMT",
            "attrDesc":"",
            "auxPrice":280,
            "avgFillPrice":0,
            "canCancel":true,
            "canModify":true,
            "commission":0,
            "currency":"HKD",
            "discount":0,
            "filledQuantity":0,
            "id":30325712346677248,
            "identifier":"00700",
            "latestPrice":385.8,
            "latestTime":1680266023000,
            "limitPrice":278,
            "liquidation":false,
            "market":"HK",
            "name":"TENCENT",
            "ocaGroupId":87055,
            "openTime":1680266023000,
            "orderId":93,
            "orderType":"STP_LMT",
            "outsideRth":true,
            "parentId":30325712346546176,
            "realizedPnl":0,
            "remark":"",
            "secType":"STK",
            "source":"OpenApi",
            "status":"Initial",
            "symbol":"00700",
            "timeInForce":"DAY",
            "totalQuantity":100,
            "updateTime":1680266023000,
            "userMark":"test_bracket"
        }
    ]
}
Last update: