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

  • user id
  • order_id(if any), you can use get_orders() to get your order_id
  • Full error message and error code
  • The time when you placed the order
  • Account type(Global, prime, paper)
  • Market and product being trade
  • Order type(Market, Limit, etc.)

# Inspect Trade Error

See the common errors below when the SDK raises an exception. Contact us if you can't find an answer to you problem.

When you encountered an error, 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.

1. create order

No value in id field. Only order_id is available. status is NEW

Order({'account': 'U523', 'id': None, 'order_id': 297, 'parent_id': None, 'order_time': None, 'reason': None, 'trade_time': None, 'action': 'BUY', 'quantity': 100, 'filled': 0, 'avg_fill_price': 0, 'commission': None, 'realized_pnl': None, 'trail_stop_price': None, 'limit_price': 0.1, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': None, 'outside_rth': None, 'contract': ES/None/USD, 'status': 'NEW', 'remaining': 100}) 
1

2. place order

id is filled, status remains NEW. After calling palce order, only id field in the Order object changes. For the latest order status, use get_order.

Order({'account': 'U523', 'id': 154758864761483264, 'order_id': 297, 'parent_id': None, 'order_time': None, 'reason': None, 'trade_time': None, 'action': 'BUY', 'quantity': 100, 'filled': 0, 'avg_fill_price': 0, 'commission': None, 'realized_pnl': None, 'trail_stop_price': None, 'limit_price': 0.1, 'aux_price': None, 'trailing_percent': None, 'percent_offset': None, 'order_type': 'LMT', 'time_in_force': None, 'outside_rth': None, 'contract': ES/None/USD, 'status': 'NEW', 'remaining': 100})
1

3. get order

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})
1

Common Errors:

1.Error: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


2.Error: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


3.Error: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


4.Error: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.

# Supported order types

# U.S

stocks, ETFs

Order type Time in force Outside RTH After market orders
Limit orders DAY/GTC
Market orders DAY/GTC × ×
Stop limit orders DAY/GTC ×
Stop orders DAY/GTC ×
Conditional orders DAY/GTC × ×
Attached orders DAY/GTC × ×

Options

Order type Time in force After market orders
Limit orders DAY/GTC
Market orders DAY ×
Stop Limit orders DAY/GTC

Futures

Order type Time in force After market orders
Limit order DAY/GTC
Market order DAY/GTC ×
Stop limit order DAY/GTC
Stop order DAY/GTC
Conditional order DAY/GTC ×
Attached order DAY/GTC ×

# Hongkong

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

Stocks,ETFs

Order type Time in force After market orders
Limit Order DAY/GTC
Market Order DAY/GTC ×
Stop Limit Order DAY/GTC
Stop Order DAY/GTC
Conditional Order DAY/GTC ×
Attached Order DAY/GTC ×
Pre-market orders DAY ×

Options

Order type Time in force After market orders
Limit Order DAY/GTC
Market Order DAY ×
Stop Limit Order DAY/GTC
Stop Order DAY/GTC

Warrant、CBBC

Order type Time in force
Limit Order DAY/GTC

# Singapore

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

Stocks,ETFs

Order type Time in force After market orders
Limit orders DAY/GTC
Market orders DAY/GTC ×
Stop limit orders DAY/GTC
Stop orders DAY/GTC ×
Conditional orders DAY/GTC ×
Attached orders DAY/GTC ×
Pre-market orders DAY ×

# How can I tell if an order is partially filled status?

How to determine the partial transaction status of the standard and paper accounts? When the order status is not FILLED (may be HELD, CANCELLED, EXPIRED, REJECTED one of them), are likely to be partially traded state, can be judged by whether the number of orders traded greater than 0

How to determine the status of partial transaction of the global account? The order status is FILLED, and the order transaction quantity is greater than 0