Place Order

About 9 min

Place Order

Request:TigerRequest(TradeApiService.PLACE_ORDER)

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 Typessection,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

ArgumentTypeRequiredDescripton
accountstringYesAccount id, example: 402901
order_idintNoLocal order id. This order id is designed to prevent from placing replicate orders. if this argument is set to 0,the server will generate an order_id automatically. In this case it cannot prevent replicate orders from happening
symbolstringYesTicker symbol or identifier, example: AAPL(or 5-digit identifier of CBBC/Warrent)
sec_typestringYesSecurity Type (STK stock; OPT US stock option; WAR Hong Kong stock warrant; IOPT Hong Kong stock CBBC; FUT futures; FUND funds)
actionstringYesOrder direction: BUY/SELL
order_typestringYesOrder Types,'MKT'-Market Order / 'LMT'-Limit Order / 'STP'-Stop Order / 'STP_LMT'-Stop-Limit Order / 'TRAIL'-Trailing Stop Order
total_quantitylongNoOrder's quantity (There is a minimum quantity requirement for HK market)
total_quantity_scaleintNoThe 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.11
cash_amountDoubleNoOrder cash amount (Fund)
limit_pricedoubleNoLimit price, required if placing a limit order (inluding STP and STP_LMT)
aux_pricedoubleNoAuxilary price. it represents the stop price if placing a stop price, trailing price if placing a trailing stop order
trailing_percentdoubleNoTrailing activation price for trailing stop orders (by percentage). When the order type is TRAIL, 'aux_price' will be ignored when 'trailing_percent' already has a value
outside_rthbooleanNoif trade outside regular trading hours (only applicable to U.S. market). default allowed.(The market order is only valid during the intraday period, when 'order_type' is 'MKT'/'STP'/'TRAIL', the 'outside_rth' parameter will be ignored)
trading_session_typeTradeSessionNoOverNight: overnight order in the US market(LMT only)
marketstringNoMarket (US, HK, CN, etc.)
currencystringNoCurrency (USD, HKD, CNH, etc.)
time_in_forcestringNoTime in force,'DAY'-valid until market close,'GTC'-Good-Till-Cancel(The longest valid time is 180 days), 'GTD'-good until expire time,'DAY' by default
expire_timelongNoThe valid deadline of the order,13-bit timestamp, accurate to the second (required when time_in_force is GTD, invalid for other types)
exchangestringNoExchange code (U.S stocks SMART, Shanghai-Hong Kong Stock Connect-SEHK, A-Shares-SEHKNTL,Shenzhen-Hong Kong Stock Connect SEHKSZSE)
expirystringNoExpiration data for options, warrants and CBBC
strikestringNoStrike price for options, warrants and CBBC
rightstringNoPUT/CALL for options, warrants and CBBC
multiplierfloatNomultiplier for options, warrants and CBBC
local_symbolstringNoRequired when trading CBBC, This is the 5-digit number under the Warrant/CBBC list in the TigerTrade APP
secret_keystringNoSecret key for the trader of institutions, please config in client_config, ignore if you are a indiviual user
user_markstringNoRemarks of the order, which cannot be modified after the order is placed

Parameters for Attached Order

ParameterTypeRequiredDescription
attach_typestringNotype of the attach order, required if placing an attach order(order_type has to be LMT): PROFIT-Take profit,LOSS-stop loss,BRACKETS-bracket orders
profit_taker_orderIdintNoTake profit order id, you can get this id via get order id API. If the value is set to 0, a new order id will be generated on the server end
profit_taker_pricedoubleNoTake profit order price, required if placing a profit taker order.
profit_taker_tifstringNoTime in force, required when placing a profit taking order
profit_taker_rthbooleanNosee outside_rth
stop_loss_orderIdintNostop loss order id, you can get this id via get order id API. If the value is set to 0, a new order id will be generated on the server end
stop_loss_pricedoubleNoloss stop order's trigger price, required if placing a loss stop order.
stop_loss_limit_pricedoubleNoloss stop order‘s limit price, required if placing a loss stop order.
stop_loss_trailing_percentdoubleNoTrailing activation price for trailing stop orders (by percentage) when 'stop_loss_order_type' is TRAIL.
stop_loss_trailing_amountdoubleNoTrailing activation price for trailing stop orders (by amount) when 'stop_loss_order_type' is TRAIL.
stop_loss_tifstringNosee time_in_force, required when placing a stop loss order
  • 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("AAPL", Currency.USD.ToString());

// HK stocks
ContractItem contract = ContractItem.BuildStockContract("00700", Currency.HKD.ToString());

// 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.ToString());
// CBBC
ContractItem contract = ContractItem.BuildCbbcContract("50296", "20220331", 457D, Right.CALL.ToString());

// 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)

  static async Task<PlaceOrderResponse?> PlaceMarketOrderAsync(TradeClient tradeClient)
  {
    ContractItem contract = ContractItem.BuildStockContract("01810", Currency.HKD.ToString());

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = PlaceOrderModel.BuildMarketOrder(
        "20200821144442583", // tradeClient.GetDefaultAccount,
        contract,
        ActionType.BUY,
        200
      )
    };
    return await tradeClient.ExecuteAsync(request);
  }

Limit Order(LMT)

static async Task<PlaceOrderResponse?> PlaceLimitOrderAsync(TradeClient tradeClient)
  {
    ContractItem contract = ContractItem.BuildStockContract("AAPL", Currency.USD.ToString());

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = PlaceOrderModel.BuildLimitOrder(
        "20200821144442583", // tradeClient.GetDefaultAccount,
        contract,
        ActionType.BUY,
        1, 120.0
      )
    };
    // set user_mark
    ((PlaceOrderModel)request.ModelValue).UserMark = "test-lmt";
    // set GTD order's expire_time
    ((PlaceOrderModel)request.ModelValue).TimeInForce = TimeInForce.GTD;
    ((PlaceOrderModel)request.ModelValue).ExpireTime = DateUtil.ConvertTimestamp("2023-03-08 23:59:59", SymbolUtil.getZoneIdBySymbol("AAPL", tradeClient.GetConfigTimeZone));
    return await tradeClient.ExecuteAsync(request);
  }

// place overnight order in the US market
static async Task<PlaceOrderResponse?> PlaceOvernightLimitOrderAsync(TradeClient tradeClient)
  {
    ContractItem contract = ContractItem.BuildStockContract("AAPL", Currency.USD.ToString());

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = PlaceOrderModel.BuildLimitOrder(
        "402901", // tradeClient.GetDefaultAccount,
        contract,
        ActionType.BUY,
        1, 120.0
      )
    };
    // set place overnight order in the US market
    ((PlaceOrderModel)request.ModelValue).TradingSessionType = TradeSession.OverNight;
    return await tradeClient.ExecuteAsync(request);
  }

Auction Order(AM/AL)

  static async Task<PlaceOrderResponse?> PlaceAuctionOrderAsync(TradeClient tradeClient)
  {
    ContractItem contract = ContractItem.BuildStockContract("00700", Currency.HKD.ToString());

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = PlaceOrderModel.BuildAuctionOrder(
        "20200821144442583", // tradeClient.GetDefaultAccount,
        contract,
        ActionType.BUY,
        100,
        350.0,
        // 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
        OrderType.AL,  // AL(auction limit order) or AM(auction market order)
        TimeInForce.OPG // participate in the pre-market auction
      )
    };
    return await tradeClient.ExecuteAsync(request);
  }

Stop Order(STP)

  static async Task<PlaceOrderResponse?> PlaceStopOrderAsync(TradeClient tradeClient)
  {
    ContractItem contract = ContractItem.BuildStockContract("01810", Currency.HKD.ToString());

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = PlaceOrderModel.BuildStopOrder(
        "20200821144442583", // tradeClient.GetDefaultAccount,
        contract,
        ActionType.SELL,
        200, 10.0
      )
    };
    return await tradeClient.ExecuteAsync(request);
  }

Stop-Limit Orders (STP_LMT)

static async Task<PlaceOrderResponse?> PlaceStopLimitOrderAsync(TradeClient tradeClient)
  {
    ContractItem contract = ContractItem.BuildStockContract("01810", Currency.HKD.ToString());

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = PlaceOrderModel.BuildStopLimitOrder(
        "20200821144442583", // tradeClient.GetDefaultAccount,
        contract,
        ActionType.SELL,
        200, 10.0, 10.3
      )
    };
    return await tradeClient.ExecuteAsync(request);
  }

Trailing-stop Order (TRAIL)

  static async Task<PlaceOrderResponse?> PlaceTrailOrderAsync(TradeClient tradeClient)
  {
    ContractItem contract = ContractItem.BuildStockContract("01810", Currency.HKD.ToString());

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = PlaceOrderModel.BuildTrailOrder(
        "20200821144442583", // tradeClient.GetDefaultAccount,
        contract,
        ActionType.SELL,
        200, 10.0, 0 // use 'trailing_percent' = 10%
      )
    };
    return await tradeClient.ExecuteAsync(request);
  }

Main Order+Attached Take Profit Order


  static async Task<PlaceOrderResponse?> PlaceProfitTakerOrderAsync(TradeClient tradeClient)
  {
    ContractItem contract = ContractItem.BuildStockContract("01810", Currency.HKD.ToString());
    
    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = PlaceOrderModel.BuildLimitOrder(
        "20200821144442583", // tradeClient.GetDefaultAccount,
        contract,
        ActionType.BUY,
        200, 11.0
      ).addProfitTakerOrder(13.0, TimeInForce.DAY, true) // addProfitTakerOrder
    };
    return await tradeClient.ExecuteAsync(request);
  }

Main Order+Attached Stop Order

  static async Task<PlaceOrderResponse?> PlaceStopLossOrderAsync(TradeClient tradeClient)
  {
    ContractItem contract = ContractItem.BuildStockContract("01810", Currency.HKD.ToString());

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = PlaceOrderModel.BuildLimitOrder(
        "20200821144442583", // tradeClient.GetDefaultAccount,
        contract,
        ActionType.BUY,
        200, 11.0
      // addStopLossOrder(not support options)
      ).addStopLossOrder(10.0, TimeInForce.DAY)
      // addStopLossLimitOrder, the first price-1.0 is the activation price, the second price-0.9 is the limit price(Only available for prime account)
      // ).placeOrder.addStopLossLimitOrder(1.0, 0.9, TimeInForce.DAY)
    };
    // set other parameter
    ((PlaceOrderModel)request.ModelValue).UserMark = "test001";
    return await tradeClient.ExecuteAsync(request);
  }

Main Order+Attached Stop Trail Order

  static async Task<PlaceOrderResponse?> PlaceStopLossTrailOrderAsync(TradeClient tradeClient)
  {
    ContractItem contract = ContractItem.BuildStockContract("01810", Currency.HKD.ToString());
    PlaceOrderModel placeOrder = PlaceOrderModel.BuildLimitOrder(
        "20200821144442583", // tradeClient.GetDefaultAccount,
        contract,
        ActionType.BUY,
        200, 11.0
      );
    // addStopLossTrailOrder ('stopLossTrailingPercent' = 10%)
    placeOrder.addStopLossTrailOrder(10.0, 0, TimeInForce.DAY);
    // set other parameter
    placeOrder.UserMark = "test-attach-stoplosstrail";

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = placeOrder
    };
    return await tradeClient.ExecuteAsync(request);
  }

Main Order+Attached bracket Order

  static async Task<PlaceOrderResponse?> PlaceBracketsOrderAsync(TradeClient tradeClient)
  {
    ContractItem contract = ContractItem.BuildStockContract("01810", Currency.HKD.ToString());
    PlaceOrderModel placeOrder = PlaceOrderModel.BuildLimitOrder(
        "13810712",
        contract,
        ActionType.BUY,
        200, 11.0
      );
    // addBracketsOrder
    placeOrder.addBracketsOrder(13.0, TimeInForce.DAY, true, 10.0, TimeInForce.DAY);

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = placeOrder
    };
    return await tradeClient.ExecuteAsync(request);
  }

Forex Order

  static async Task<ForexTradeOrderResponse?> PlaceForexOrderAsync(TradeClient tradeClient)
  {
    TigerRequest<ForexTradeOrderResponse> request = new TigerRequest<ForexTradeOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_FOREX_ORDER,
      ModelValue = new ForexTradeOrderModel()
      {
        Account = "20200821144442583",
        SegType = SegmentType.SEC,
        SourceCurrency = Currency.HKD,
        SourceAmount = 10000.0,
        TargetCurrency = Currency.USD,
        TimeInForce = TimeInForce.DAY,
      }
    };
    return await tradeClient.ExecuteAsync(request);
  }

Fund Amount Order

  static async Task<PlaceOrderResponse?> PlaceFundOrderAsync(TradeClient tradeClient)
  {
    ContractItem contract = ContractItem.BuildFundContract("IE00B464Q616.USD", Currency.USD.ToString());

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = PlaceOrderModel.BuildAmountOrder(
        "13810712", // tradeClient.GetDefaultAccount,
        contract,
        ActionType.BUY,
        180.0
      )
    };
    return await tradeClient.ExecuteAsync(request);
  }

TWAP/VWAP Order

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

  static async Task<PlaceOrderResponse?> PlaceVWAPOrderAsync(TradeClient tradeClient)
  {
    // place VWAP order
    PlaceOrderModel placeOrder = PlaceOrderModel.BuildVWAPOrder(
      "13810712", "AAPL", ActionType.BUY, 1000,
      DateUtil.ConvertTimestamp("2023-06-20 10:30:00", CustomTimeZone.NY_ZONE),
      DateUtil.ConvertTimestamp("2023-06-20 12:30:00", CustomTimeZone.NY_ZONE),
      0.5, 160.0);

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = placeOrder
    };
    return await tradeClient.ExecuteAsync(request);
  }

  static async Task<PlaceOrderResponse?> PlaceTWAPOrderAsync(TradeClient tradeClient)
  {
    // place TWAP order
    PlaceOrderModel placeOrder = PlaceOrderModel.BuildTWAPOrder(
      "13810712", "AAPL", ActionType.BUY, 1000,
      DateUtil.ConvertTimestamp("2023-06-20 10:30:00", CustomTimeZone.NY_ZONE),
      DateUtil.ConvertTimestamp("2023-06-20 12:30:00", CustomTimeZone.NY_ZONE),
      160.0);

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = placeOrder
    };
    return await tradeClient.ExecuteAsync(request);
  }

Options Multi Legs Order

Only supports intraday orders

  static async Task<PlaceOrderResponse?> PlaceMultiLegOrderAsync(TradeClient tradeClient)
  {
    // place option multi-leg order
    ContractLeg leg1 = new ContractLeg()
    {
      SecType = SecType.OPT.ToString(),
      Symbol = "AAPL",
      Strike = "175.0",
      Expiry = "20231013",
      Right = Right.CALL.ToString(),
      Action = ActionType.BUY.ToString(),
      Ratio = 1
    };
    ContractLeg leg2 = new ContractLeg()
    {
      SecType = SecType.OPT.ToString(),
      Symbol = "AAPL",
      Strike = "180.0",
      Expiry = "20231013",
      Right = Right.CALL.ToString(),
      Action = ActionType.SELL.ToString(),
      Ratio = 1
    };
    List<ContractLeg> legs = new List<ContractLeg>() { leg1, leg2 };
    PlaceOrderModel placeOrder = PlaceOrderModel.BuildMultiLegOrder(
      "13810712", legs, ComboType.VERTICAL, ActionType.BUY, 1,
      OrderType.LMT, 0.6, null, null);

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = placeOrder
    };
    return await tradeClient.ExecuteAsync(request);
  }

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.

  static async Task<PlaceOrderResponse?> PlaceOCABracketsOrderAsync(TradeClient tradeClient)
  {
    // place OCA Brackets order
    ContractItem contract = ContractItem.BuildStockContract("BILI", Currency.USD.ToString());
    PlaceOrderModel placeOrder = PlaceOrderModel.BuildOCABracketsOrder(
      "13810712", contract, ActionType.SELL, 1,
      17.0, TimeInForce.DAY, true,
      12.0, TimeInForce.DAY, false);
    placeOrder.Lang = Language.en_US;
    placeOrder.UserMark = "test-oca";

    TigerRequest<PlaceOrderResponse> request = new TigerRequest<PlaceOrderResponse>()
    {
      ApiMethodName = TradeApiService.PLACE_ORDER,
      ModelValue = placeOrder
    };
    return await tradeClient.ExecuteAsync(request);
  }

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: