Summary
Take-profit/stop-loss (TP/SL) orders may fail to execute even when the target price is hit due to:
- Trigger price type discrepancies preventing actual activation.
- Limit-order settings causing post-trigger execution failures.
- Market volatility, liquidity depth, or insufficient margin affecting order fulfillment.
This guide explores 3 common scenarios and solutions.
1. Trigger Price Not Activated
TP/SL orders only proceed to the market if the specified trigger condition is met. Three price types can be set:
- Last Traded Price (current market price).
- Mark Price (fair value price, used for liquidation avoidance).
- Index Price (underlying asset reference price).
✅ Solution:
- Verify which price type your TP/SL references via the trading platform’s chart tools.
- Compare historical data of all three prices to confirm if the trigger condition was truly met.
Example:
An ETH/USDT long position (entry: 3,200) sets TP at 4,000 (Mark Price). If the Last Price hits 4,000 but the Mark Price doesn’t, the order won’t trigger.
2. Limit Orders Failing to Execute
TP/SL offers two order types:
- Market Orders: Fill immediately at best available price.
- Limit Orders: Fill only at your specified price (or better).
⚠️ Risk:
A tight limit (e.g., stop-loss at 3,200 with limit=3,200) may fail during rapid price drops.
✅ Solution:
- For sells, set the limit price below the trigger (e.g., 3,198).
- For buys, set it above the trigger to improve execution odds.
Example:
An ETH long sets a stop-loss at 3,200 (Last Price) with limit=3,198. If triggered, the 3,198 sell order has higher execution probability than 3,200.
3. Order Matching Rules & Constraints
Even triggered orders must comply with:
- Exchange rules (e.g., maximum order size).
- Margin requirements (insufficient funds cancel orders).
- Price-Time Priority: Markets fill the best-priced orders first; identical prices are filled chronologically.
✅ Solution:
- Ensure adequate margin and reasonable order size.
- Monitor real-time liquidity to anticipate slippage.
FAQ Section
Q1: Why did my TP/SL partially fill?
A: Partial fills occur when the available liquidity at your price point is insufficient. Use market orders or adjust limits for full execution.
Q2: How do I check which price type my order used?
A: Review order history/details on your exchange platform. Most display the trigger price type post-execution.
Q3: Can volatile markets skip my trigger price entirely?
A: Yes. Gaps in price (e.g., during news events) may bypass your trigger. Consider using guaranteed stop-losses if available.
Q4: Why did my limit order expire unfilled?
A: Limit orders remain active only until canceled or the session ends. They won’t execute if the market never reaches your specified price.
👉 Master Advanced Order Types to minimize execution risks.
👉 Optimize Your Trading Strategy with real-world backtesting tools.
Pro Tip: Always backtest TP/SL strategies in simulated environments before live trading. Adjust parameters based on asset volatility and historical price behavior.