Why wasn’t my market conditional order filled after it was triggered?
Why was it triggered but not filled?
When a conditional order is triggered, it only means your condition has been reached. After that, the system still needs to run several risk and market checks before actually sending your market order. Because of these checks, a triggered conditional order is not guaranteed to be filled. The following reasons are all based on the situation at the exact moment your order is triggered. Below are the most common reasons:
1. Price deviation protection
If, at the time of trigger, the last traded price is very far away from the stock’s average traded price for the day, the system may treat this as an
abnormal price.
This can happen during:
- Sudden sharp moves (flash crash / spike)
- Very low liquidity
- Possible error trades
To protect you from being filled at an extreme or unreasonable price, the system may block your market order and not send it to the market.
2. Incomplete market data
Market orders need reliable, real‑time data such as:
- Last traded price
- Best bid price
- Best ask price
If any of these prices are missing or unavailable when your condition is triggered, it suggests the market data may be incomplete or abnormal.
In this case, to avoid executing your order with uncertain pricing, the system will reject the market order instead of sending it.
3. Not enough buying power
In a fast‑moving market, a market order can be filled at a price worse than the current last price (higher for buys, lower for sells).
To manage this risk, the system will:
- Estimate a safe maximum cost for your market order
- Check whether your available cash / buying power is enough
If your buying power is not sufficient to cover this estimated cost, the system will reject the market order to prevent overdrafts or excessive leverage.
What happens to an unfilled order?
The order will remain in the market waiting to be filled. However, please note: the conditional order has already been triggered and will not be triggered again.
Special rule for take-profit and stop-loss conditional orders
For take-profit and stop-loss conditional orders, the two conditions cancel each other out. Once one condition is triggered, the other is automatically invalidated. For example, if the take-profit condition is triggered, the stop-loss condition will no longer be effective even if the price later falls to the stop-loss level.
Recommendations
- Each conditional order is valid for one trigger only. After it is triggered, it will not work again. If you need continued protection, please set up a new conditional order.
- If you want both take-profit and stop-loss to work independently, consider setting up separate conditional orders — one for take-profit and one for stop-loss — to avoid the mutual cancellation effect.
- When setting up conditional orders, pay attention to the liquidity of the underlying instrument, and try to avoid periods of low liquidity.

