Trading

About 6 min

If you encountered any problem with placing orders, please refer to the common error below for a quick inspection. If the FAQs below cannot solve your problem, please contact us

In order to locate the issue quickly, please provide us with the following information

  • tiger_id
  • order_id(if any), you can use get_orders() to get your order_id
  • Full error message and error code

Q2: Inspect Trade Error

When an error is encountered in the order, try to use get_order to check the order status. Usually the reason for the failure will be marked in the order detail. Refer to the following examples, inspect the Order Object after calling create_order, place_order, get_order, and compare the values to inspect for any possible error.

Get order interface return error reason example:

status changes to REJECTED. reason field is filled with the reason for the rejection

Order({'account': 'U523', 'id': 154758864761483264, 'order_id': 297, 'parent_id': 0, 'order_time': 1550115294556, 'reason': '201:Order rejected - Reason: YOUR ORDER IS NOT ACCEPTED. MINIMUM OF 2000 USD (OR EQUIVALENT IN OTHER CURRENCIES) REQUIRED IN ORDER TO PURCHASE ON MARGIN, SELL SHORT, TRADE CURRENCY OR FUTURE', 'trade_time': 1550115294694, 'action': 'BUY', 'quantity': 100, 'filled': 0, 'avg_fill_price': 0, 'commission': 0, 'realized_pnl': 0, 'trail_stop_price': None, 'limit_price': 0.1, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': 'DAY', 'outside_rth': True, 'contract': ES, 'status': 'REJECTED', 'remaining': 100})

Q3: standard account response error(bad_request:Orders cannot be place at this moment)

Cause

Certain order type is not availble currently

Solution

Double check your order types with the trading rules of the exchange.

  • if you are using paper account

    Trade outside RTH is not available for certain assets. Try to place order during RTH. In the meantime, you can report this issue to us

  • If you are using prime account

    Refer to supported order types


Q4: standard account response error(BAD_REQUEST:You cannot place market or stop order during pre-market and after-hours trading)

Cause

You cannot place market or stop order during pre-market and after-hours trading

Solution

Check the time when you placed your orders and see if certain order types were allowed. Pay attention to timezone. Switch to other order types if needed. See supported order types for details


Q5: The order quantity you entered exceeds your currently available position

Cause

The order quantity you entered exceeds your currently available position.

Solution

Close out your current position first. Before trying to take a position on the opposite side


Q6: standard account response error(bad_request:We don’t support trading of this stock now(Error Code 4))

Reason

The asset is not available for trade now

Solution

Use Tiger Trade APP or API to check if an asset is currently available for trade.

Q7: status=illegal_price, msg=Sorry, your order price does not match the tick size: 0.05

Reason

order price does not match the tick size

Solution

Query the contract by a prime account or a paper trade account, the 'tickSizes' field in the returned contract includes the minTick value of different price ranges.The method provided by StockPriceUtils can judge whether the price match the tick size, and can fix the price up or down to make it meet the minTick requirements.

Example:

    ContractModel model = new ContractModel("00700");
    ContractRequest contractRequest = ContractRequest.newRequest(
        model, "402901");
    Double limitPrice = 352.3344d;
    ContractResponse contractResponse = client.execute(contractRequest);
    if (contractResponse.isSuccess() && contractResponse.getItem().getTickSizes() != null) {
      List<TickSizeItem> tickSizes = contractResponse.getItem().getTickSizes();
      System.out.println(JSONObject.toJSONString(tickSizes));
      boolean match = StockPriceUtils.matchTickSize(limitPrice, tickSizes);
      if (!match) {
        // limitPrice:352.3344, fixed limitPrice(increments the price):352.4
        System.out.println("limitPrice:" + limitPrice + ", fixed limitPrice(increments the price):"
            + StockPriceUtils.fixPriceByTickSize(limitPrice, tickSizes, true));

        // limitPrice:352.3344, fixed limitPrice(decrease the price):352.2
        System.out.println("limitPrice:" + limitPrice + ", fixed limitPrice(decrease the price):"
            + StockPriceUtils.fixPriceByTickSize(limitPrice, tickSizes, false));
      }
    }

Q8: Fail to place orders due to using the multiplier and minTick obtained in contract information, to configure the total_quantity and limit_price parameters in order placing API.

Solutions

Use QuoteStockTradeRequest instead, to obtain the lotSize and minTick information to calculate the total_quantity. The multiplier returned in get contract API is only used for futures contract, and the min_tick is simply the minimum of all possible tick sizes

Q9: How to judge that the order is partially completed?

How to judge the partial transaction status of comprehensive and demo accounts?

When the order status is not Initial and Filled (possibly one of PendingSubmit, Submitted, Canceled, Invalid, Inactive), it may be a partial transaction status, which can be judged by whether the order transaction quantity is greater than 0

How to judge the partial transaction status of Global Account?

The order status is Filled, and the order transaction quantity is greater than 0

Q10: Supported order types

U.S

stocks, ETFs

Order typeTime in forceIntradayOutside RTHAfter market orders
Limit ordersDAY/GTC
Market ordersDAY/GTC××
Stop limit ordersDAY/GTC×
Stop ordersDAY/GTC×
Conditional ordersDAY/GTC×××
Attached ordersDAY/GTC×
Bracket ordersDAY/GTC×
TWAP/VWAP ordersDAY××

Options

Order typeTime in forceIntradayAfter market orders
Limit ordersDAY/GTC
Market ordersDAY×
Stop Limit ordersDAY/GTC
Bracket ordersDAY/GTC

Futures

Order typeTime in forceIntradayAfter market orders
Limit orderDAY/GTC
Market orderDAY/GTC×
Stop limit orderDAY/GTC
Stop orderDAY/GTC
Conditional orderDAY/GTC××
Attached orderDAY/GTC×
Bracket orderDAY/GTC×

Hongkong

Placing orders are not allowed in a short period of time when the market has just closed

Stocks, ETFs

Order typeTime in forceIntradayAfter market orders
Limit OrderDAY/GTC
Market OrderDAY/GTC×
Stop Limit OrderDAY/GTC
Stop OrderDAY/GTC
Conditional OrderDAY/GTC××
Attached OrderDAY/GTC
Bracket orderDAY/GTC
Pre-market auction orderDAY×

Options

Order typeTime in forceIntradayAfter market orders
Limit OrderDAY/GTC
Market OrderDAY×
Stop Limit OrderDAY/GTC
Stop OrderDAY/GTC
Bracket orderDAY/GTC

Warrant、CBBC

Order typeTime in forceIntradayAfter market orders
Limit OrderDAY/GTC

Singapore

Placing orders are not allowed in a short period of time when the market has just closed

Stocks,ETFs

Order typeTime in forceAfter market orders
Limit ordersDAY/GTC
Market ordersDAY/GTC×
Stop limit ordersDAY/GTC
Stop ordersDAY/GTC×
Conditional ordersDAY/GTC×
Attached ordersDAY/GTC×
Pre-market ordersDAY×

Transaction hour

A shares

Only when the three trading markets in Shanghai, Shenzhen and Hong Kong are open, the trading of Shanghai Stock Connect and Shenzhen Stock Connect can be carried out. The trading time of Shanghai Stock Connect and Shenzhen Stock Connect is: the trading day when all three markets in Shanghai, Shenzhen and Hong Kong are open

9:30-11:30 am; 13:00-15:00 pm

US Stocks

Eastern Time:

Before the market: 04:00-9:30; during the market: 09:30-16:00; after the market: 16:00-20:00.

Beijing time:

Daylight saving time: before the market: 16:00-21:30; during the market: 21:30-04:00; after the market: 04:00-08:00

Winter time: before the market: 17:00-22:30; during the market: 22:30-05:00; after the market: 05:00-09:00

Hong Kong stocks

Pre-opening session

PeriodTrading Rules
Order input period 9:00-9:15You can submit, modify, cancel auction market orders and auction limit orders
Non-cancellable period 9:15-9:20Only bid market orders and bid limit orders can be submitted, and orders cannot be canceled or changed
Random order matching period 9:20-9:22 (Order matching will start at random from 9:20-9:22 according to the final reference equilibrium price)Matching order matching in the auction period
Pause period, end of random order matching-9:30Auction order: Uncompleted orders will be canceled by the system; Atauction limit orders: If the input price range of uncompleted orders does not deviate from the original order price by nine times or more, it will be canceled Converted to limit order and automatically transferred to continuous trading session

Continuous Trading Period

time periodtime
Morning market9:30-12:00
Noon break12:00-13:00
Lunch13:00-16:00

Note: Order changes are not allowed during the noon market break, and order cancellation is allowed between 12:30-13:00

Closing Auction Session

PeriodTrading Rules
Closing auction period 16:00-16:01Calculation and publication of reference prices; orders cannot be submitted
Enter order 16:01-16:06You can submit, modify, and cancel auction market orders and auction limit orders, and the price limit of auction limit orders must not exceed ±5% of the reference price
Cannot be canceled 16:06-16:08You can submit auction market orders and auction limit orders, which cannot be canceled or changed; the input price of auction limit orders must be between the lowest selling price and the highest buying price
Random closing 16:08-16:10During the random closing period, auction market orders and auction limit orders can still be submitted, which cannot be canceled or changed; the input price of auction limit orders must be between the lowest selling price and the highest buying price

Singapore

SessionAll-day tradingHalf-day trading
Opening hours
Before market open8:30 - 8:58/ 8:59*8:30 - 8:58 /8:59*
Irrevocable8:58 / 8:59 - 9:008:58 / 8:59 - 9:00
Trading9:00 - 12:009:00 - 12:00
lunch break
Before market open12:00 - 12:58 / 12:59*
Irrevocable12:58 / 12:59 - 13:00
Trading13:00 - 17:00
Closed time
Before market break17:00 - 17:04 / 17:05*12:00 - 12:04 / 12:05*
Irrevocable17:04/ 17:05* - 17:0612:04 / 12:05* - 12:06
Trading before market break17:06 - 17:1612:06 - 12:16
Closed17:1612:16

Australia

The trading hours of the Australian market are Monday to Friday, as follows: 10am - 4pm AEST

Futures Trading Hours

*According to the regulations of the exchange, the trading hours of different futures varieties are different, please check the details in the tiger trading software. The details are subject to the announcement of the exchange. *

US Futures

Chicago Mercantile Exchange

Commodity TypeTrading Hours
Stock Index FuturesMonday to Friday, 9:30 - 4:00 the next day (closing break: 16:15 - 16:30)
Agricultural FuturesMonday to Friday, 9:30 - 2:00 the next day (closing break: 13:15 - 14:00)
Energy FuturesMonday to Friday, 9:00 - 2:30 the next day (closing break: 13:15 - 14:00)
Metal FuturesMonday to Friday, 8:00 - 1:00 the next day (closing break: 13:15 - 14:00)

Hong Kong Futures

Commodity TypeTrading Hours
Hong Kong FuturesMonday to Friday, 9:00 - 16:30

Japanese Futures

Commodity TypeTrading Hours
Japan FuturesMonday to Friday, 8:45 - 15:30

Singapore Futures

Commodity TypeTrading Hours
Singapore FuturesMonday to Friday, 9:00 - 17:15

Please note that the above trading hours are for reference only, and the specific trading hours may be adjusted according to seasonal changes, holidays and other factors. It is recommended that you check the latest announcements from the official or relevant exchanges to obtain accurate trading time information before trading

Last update: