Why OKX Trigger Orders Fill at a Price Different from the Trigger Price

 / 
OKX
 / 
1

The trigger price is only responsible for "sending the order to the market", not for "filling the order at the trigger price". Once the trigger price is reached, the system places the order at your specified order price. Whether the order gets filled, and at what price, is determined by the order book depth, market volatility, and matching engine rules.

OKX Exchange
A leading global cryptocurrency platform,suitable for both beginners and experienced traders.
New user benefit: 20% off trading fees upon registration!!

1. First, Understand the Three Price Layers

OKX stop-loss / take-profit and algo orders use a three-layer price logic:

  • Trigger Price: The condition activation level. Only when this price is reached does the order get sent to the market.

  • Order Price: The price at which the order is placed once triggered. This can be a market price or a limit price you set.

  • Execution Price (Fill Price): The price at which the order is ultimately filled.

Trigger Price ≠ Order Price ≠ Fill Price. This is the basis for understanding the deviation.

2. Step 1: Confirm That Your Trigger Price Was Actually Triggered

There are three types of trigger prices to choose from:

  • Last Price: The last traded price on the order book.

  • Mark Price: The fair price of the contract, used for calculating liquidations.

  • Index Price: The weighted average price across spot markets.

These three prices do not always move in perfect sync. If your trigger price is set to "Mark Price", but the market's last price reaches the trigger level while the mark price does not, the order will not be sent to the market.

How to verify: On the candlestick chart, toggle between the three price lines and compare them against your trigger price to confirm whether it truly was reached.

3. Step 2: Check the Order Price Type

Once triggered, the price at which the order is placed determines how much the final fill price may deviate.

Case A: Order Price set to "Market"

A market order is placed at the best available market price at the moment of triggering, aiming for immediate execution. However, during high volatility, the actual fill price of a market order can deviate significantly from the trigger price because the resting orders on the order book get consumed, forcing the system to reach further into the book.

Case B: Order Price set to "Limit"

A limit order is placed at your fixed price. If your limit order price is set too close to the trigger price – for example, a long stop-loss with trigger price at 3200 and limit price also at 3200 – during a rapid drop, a sell limit at 3200 may find no buyer, resulting in a long period without a fill or only a partial fill.

Best practice: For a long stop-loss with trigger price at 3200, set the limit order price to 3198 (slightly below the trigger) to increase the probability of getting filled. For a short stop-loss, set the limit price slightly above the trigger.

4. Step 3: Order Book Depth and Matching Rules

Even after a successful trigger and order placement, the final fill price can still deviate from your expectations.

  • Insufficient order book depth: If there aren't enough resting orders, a market order will walk the book and fill at increasingly worse prices (slippage).

  • Price-time priority: After triggering, your order joins the queue with other orders. Orders with a better price (higher bid, lower ask) or placed earlier will get filled first.

OKX Exchange
A leading global cryptocurrency platform,suitable for both beginners and experienced traders.
New user benefit: 20% off trading fees upon registration!!

5. Step 4: Price Limit Rules May Interfere With Your Order Price

OKX spot and margin trading enforces price limit rules. If your order price falls outside the currently allowed price band, the system will not reject the order; instead, it will automatically adjust and place the order at the maximum or minimum allowed limit price.

For example: if the market is falling rapidly and the lowest allowed sell limit price is dynamically moving down, the system may cap your order price at a level above the market. Your order will then sit on the book waiting. The "fill price deviation" you observe might actually be the result of the system adjusting your price.

Prerequisites: Before placing an order, confirm that the trigger price type, order price type, and order quantity all meet the requirements, and that the account has sufficient margin. If the order exceeds the maximum single-order quantity, or if margin is insufficient at the time of triggering, the order will fail to be placed.

Risk notice: A trigger order is not "filled at the trigger price" but "placed when the trigger price is reached". During extreme market volatility, market orders can generate slippage far beyond expectations; limit orders may not get filled at all. It is recommended to set a reasonable gap between the trigger price and the order price, and to place the limit order price at a level that favours execution.

After performing these checks, how do you identify the root cause?

In OKX's "Order History" or "Order Records", locate the order and examine three fields: trigger price, order price, and average fill price. Then do three things:

  1. Check whether the trigger price was truly reached (compare with the candlestick chart).

  2. Check whether the order price matches the limit price you set (to rule out system price limit intervention).

  3. Compare the average fill price with the order price (to determine whether it is slippage or an unfilled limit order).

If the order remained unfilled after being triggered, the problem lies in the limit order price and order book depth. If it was filled but with a large price deviation, then a market order encountered slippage.