A stop loss triggered but the order not filled—this is one of the most frustrating situations in trading. The core reason is that a market stop loss order only guarantees "execution as quickly as possible" in fast-moving markets, not "execution at a specific price." If the price gaps beyond your acceptable range, the order may stall or be filled at an absurd price.
Here are 3 steps to understand and set up protection ranges correctly.
Prerequisite: Know Which Subtype of Stop Loss Order You're Using
Many people think there's only one type of stop loss order, but execution logic varies greatly across platforms. Before placing an order, confirm which types your platform supports:
Regular Market Stop Loss: Executes as a market order after triggering, with no guaranteed fill price—only best effort. This is the basic stop loss type on most platforms.
Limit Stop Loss: After triggering, a limit order is placed with a specified limit price. However, if the market gaps past the limit price, the order may not fill at all.
Protected Stop Loss / Guaranteed Stop Loss: After triggering, fills within a certain price protection range; if the market moves beyond that range, it becomes a pending limit order. Some platforms offer this feature, sometimes for an additional fee.
Different subtypes yield completely different fill behavior.
Step 1: Check if Your Stop Loss Order Has a "Protection Range"
Regular market stop orders have no price protection; the execution price depends entirely on the order book at the moment of triggering. In contrast, a stop loss order with a protection range (sometimes called a "protected stop") limits the acceptable fill price interval after triggering.
What to do: In the order type dropdown, confirm whether you're using a "Stop Market" order or a "Protected/Guaranteed Stop" order.
How to do it:
Case A (using a stop loss with a protection range): You need to understand how the platform calculates the protection range.
Binance allows users to customize slippage tolerance between 0.1% and 5%, after which a limit order is generated within that range.
Kraken's market order protection is around 1% of the current best bid/ask; if exceeded, the order is partially filled or canceled.
BitMart's guaranteed stop loss executes at the set price and charges a service fee, which varies by pair, e.g., BTC_USDT at 0.005%, ETH_USDT at 0.02%.
BingX's guaranteed stop loss/take profit is also a paid feature, guaranteeing a fill at the trigger price.
Case B (using a regular market stop loss): The system sets no price range. It enters the order book as a market order at trigger and fills at the best available market price.
Completion criteria: You clearly know whether your stop order has a protection range. If it does, you know the exact value or percentage.
Common pitfall: Selecting a "market stop" but forgetting to set a slippage tolerance, resulting in fills far from your expected price during fast moves.
Step 2: Set a Reasonable "Tolerance Range" Based on Liquidity
A protection range that's too wide or too narrow is suboptimal. Too small can cause the order to be canceled or partially filled; too large defeats its protective purpose.
What to do: Set a reasonable price tolerance range based on the asset's liquidity and volatility characteristics.
How to do it:
Check the asset's liquidity: For major coins like BTC/ETH with good order book depth, a narrower range (e.g., 1%–2%) can work; for small-cap altcoins with poor depth, set it wider (e.g., 3%–5%).
Check current volatility: Around major economic releases or during extreme market conditions, your usual tolerance range may not suffice—consider widening it appropriately.
If the platform doesn't offer a customizable range (e.g., fixed 1% rule on some platforms): at least be aware of this limitation, and know that orders might be canceled or partially filled during extreme moves.
Completion criteria: The protection range parameters are set based on the asset's characteristics and current market conditions—not just using default values.
Risk reminder: A protection range does not guarantee a fill at the trigger price. A protected stop only converts a market order into a "limit order within the protection boundary." If the price gaps past that boundary, the order hangs at the boundary price, and may not fill immediately.
Step 3: Strict Discipline—Set the Stop Protection Range Before Entry
All risk controls should be in place before entry. Don't wonder "should I adjust the settings?" after a loss has already occurred.
What to do: When opening a position, set the stop loss trigger price and protection range right away.
How to do it:
Submit a stop loss order with a protection range: In the order panel, choose "Stop Market" or "Stop Loss/Take Profit" from the order type dropdown, and fill in the slippage tolerance.
If the platform offers guaranteed stops: Consider whether paying an additional fee for zero slippage closing is worth it for this trade. The fee is usually a percentage of notional value.
Completion criteria: The stop loss order is active the moment you click the open position button. Not "I'll set it later," not "wait for the price to reach a certain level first."
How to Verify Everything Is Correct?
After placing the order, open the "Current Orders" or "Conditional Orders" panel on the trading page and confirm two things:
Stop loss order status: It should show as "Active" or "Pending Trigger," not "Invalid" or "Canceled."
Protection range parameter: It should match the values you set in Step 2 and align with your risk tolerance.
If the order is rejected because the protection range is too narrow (some platforms will show a prompt), widen it and resubmit. Remember this protection range setting and make it a standard practice for all future trades.


