Stacked Markets
Order types on DEXs explained: market, limit, stop, TWAP and more
Published May 30, 2026 · By Stacked Markets Research Team
Contents
- Why order type selection matters more on DEXs than CEXs
- Market orders: immediate fill, unbounded slippage
- Limit orders: the default for most entries
- IOC: the right default for active DEX traders
- The reduce-only flag: don't skip this
- Stop-market vs stop-limit
- Take-market vs take-limit
- Scale orders: DCA entry and distribution exit
- TWAP: for large size, low urgency
- How Stacked Markets layers on top
- Which order type to use: a practical decision framework
- 7 common mistakes
- FAQs
Most traders spend hours on position sizing and entry timing, then submit a market order and wonder why their fill was 40 basis points off. Order type selection isn't a minor detail. On a DEX with 10x or 20x leverage, sloppy execution mechanics compound directly into your P&L before the trade even starts.
This article covers every order type available on Hyperliquid - market, limit, IOC, stop-market, stop-limit, take-market, take-limit, scale, and TWAP - plus the modifier flags that change how each one behaves. The goal is a working decision framework, not a glossary.
Why order type selection matters more on DEXs than CEXs
On a centralized exchange, a market order is a known quantity. The matching engine fills you at the best available price. On a DEX with on-chain settlement, the mechanics are slightly different - and the stakes are higher for three reasons.
First, DEX markets run 24/7 with no circuit breakers imposed by an exchange operator. Thin liquidity windows can produce spreads that would be unusual on a CEX during normal hours. Second, leverage amplifies execution slippage directly. A 0.3% slippage event on a 10x position costs 3% of your margin before the trade does anything. At 20x, that same slippage is 6% of margin. Third, on-chain execution is final. No support ticket, no trade reversal. What you sign is what executes.
Market orders: immediate fill, unbounded slippage
A market order fills immediately against the best available resting liquidity. You get speed. You give up price certainty.
On Hyperliquid, market orders are taker orders. The base taker fee is 0.045%, with up to 40% discount via HYPE staking and referral codes. That fee applies to full notional value, not just your margin.
At 10x leverage, a $1,000 margin position controls $10,000 notional. A 0.045% taker fee costs $4.50. Add 0.2% slippage in a thin market and you're down $24.50 before the trade moves at all - 2.45% of your margin, gone on entry alone.
Market orders make sense in specific situations: you need to exit immediately, the market is moving fast and fill certainty matters more than price, or your position size is small relative to order book depth. Outside those conditions, there are better options.
Limit orders: the default for most entries
A limit order rests in the order book at your specified price. It fills only if the market reaches that level. If it doesn't fill, it stays open until cancelled - GTC (good till cancelled) is the default - or you cancel it manually.
On Hyperliquid, resting limit orders are maker orders. The maker fee is 0.015%, one-third the taker rate. For active traders placing significant volume, that difference adds up.
Post-only and ALO flags
The post-only flag - also called ALO (add liquidity only) - ensures your limit order never crosses the spread and becomes a taker order. If the market has moved and your limit would immediately fill as a taker, the order is rejected rather than executed at the taker rate.
Use this flag when you're willing to miss the fill rather than pay the taker premium. Don't use it when you need certainty of execution.
GTC default
Good till cancelled means the order stays open indefinitely. On a 24/7 DEX, a GTC limit placed during a volatile session can sit and fill hours later in a completely different market context. Be deliberate about when you use GTC versus a time-bounded order type.
IOC: the right default for active DEX traders
IOC - immediate or cancel - is a limit order with a time constraint. It attempts to fill immediately at your specified price or better. Any unfilled portion is cancelled. No resting order is left in the book.
This matters for two reasons. You get the price discipline of a limit order. And you don't leave a resting order exposed to fills in market conditions you didn't intend.
The practical use case: you want to enter near the current mid-price, you're willing to accept a partial fill, and you don't want a GTC order sitting open overnight.
Slippage bounds and worst-case fill price
At Stacked Markets, IOC limit orders include slippage bounds. Before the wallet confirmation popup appears, the terminal shows you the worst-case fill price - the maximum you'll pay on a buy, or the minimum you'll receive on a sell - before you sign anything. No fake market orders dressed up as limit orders.
The worst-case fill is calculated from order book depth at the time of submission and displayed in plain numbers before you confirm.
The reduce-only flag: don't skip this
Reduce-only is a flag, not an order type. It can be applied to limit, stop, or take orders. When set, the order can only reduce or close an existing position - it cannot open or add to one.
Without this flag, a stop-loss or take-profit placed while you hold a long can, under certain conditions, flip into a short if the position was already closed by a liquidation or a separate manual close. The stop fires, finds no position to reduce, and opens a new position in the opposite direction. That's a real failure mode. Always use reduce-only on exit orders.
Stop-market vs stop-limit
Both are conditional orders that trigger when price reaches a specified level. The difference is what happens after the trigger fires.
Stop-market
Trigger fires, market order executes. You get certainty of fill. You give up price certainty. In a fast-moving market, the fill can be significantly worse than the trigger price.
Stop-limit
Trigger fires, limit order is placed. You get price certainty. You risk not filling at all if the market gaps through your limit price.
Trigger source: mark price vs last price
On Hyperliquid, stop orders trigger on mark price by default. Mark price is derived from an aggregated index of spot prices across multiple exchanges - not the last traded price on Hyperliquid itself. Last price can be wicked by a single large order or a thin liquidity event. Mark price can't be manipulated the same way.
Use mark price triggers for stop-losses. It reduces the risk of being stopped out by a wick that doesn't reflect real market conditions.
Direction conditions
For a long position, a stop triggers when mark price falls below your trigger price. For a short, it triggers when mark price rises above your trigger price. The terminal enforces these conditions - you can't accidentally set a stop that triggers immediately.
Take-market vs take-limit
Take-profit orders are the mirror of stops. Same mechanics, opposite direction.
A take-market fires a market order when your profit target is reached. A take-limit fires a limit order. For a long, a take-profit triggers when price rises above your target. For a short, it triggers when price falls below.
The same reduce-only logic applies. Set reduce-only on all take-profit orders.
Take-limit is generally preferable when you're not in a hurry. You get the maker fee rate and price certainty. The risk of non-fill is lower on exits than on stops, because a take-profit typically fires in a trending market with available liquidity.
Scale orders: DCA entry and distribution exit
A scale order places multiple limit orders across a price range. You define the range, the number of orders, and the total size. The terminal distributes that size across the range - evenly or weighted, depending on configuration.
Two scenarios where this is useful:
- DCA entry: You want to build a position between $X and $Y without chasing a single price. Each sub-order fills independently as the market moves through the range.
- Distribution exit: You want to close a large position without moving the market. Spreading the exit across a range reduces market impact and averages your exit price.
Scale orders don't improve your entry logic. They improve execution of a thesis you've already formed.
TWAP: for large size, low urgency
TWAP - time-weighted average price - breaks a large order into smaller sub-orders executed at regular intervals. On Hyperliquid, TWAP sub-orders execute at 30-second intervals.
The use case is specific: you have a large position to build or unwind, urgency is low, and you want to minimize market impact by spreading execution over time.
TWAP is not private. Sub-orders are visible on-chain. A sophisticated counterparty watching order flow can identify a TWAP in progress and trade against it. TWAP also carries price risk over the duration - if the market moves 2% against you during execution, your average entry is worse than a single order at the start would have been. Use TWAP when size and market impact are the primary concern, not when you're trying to hit a specific price level.
How Stacked Markets layers on top
The order types above are all available through Hyperliquid's protocol. Stacked Markets adds a specific layer of tooling on top of that execution infrastructure.
The most direct addition is IOC slippage bounds displayed before wallet confirmation. You see the worst-case fill price before you sign. No surprises after the fact.
The risk control layer is configurable by you, not imposed by the platform:
- Max leverage limits: Set a cap on the leverage you can apply to any position. Prevents accidental over-leverage during fast entries.
- Notional caps: Limit the total notional value of any single order. Useful when you want a hard size limit regardless of market conditions.
- Halt switches: Pause all order submission instantly. One action stops everything.
- Circuit breakers: Automatically halt order flow if a rapid burst of orders is detected. Protects against fat-finger sequences.
The terminal also handles deposit and withdraw flows in-product, bridging Arbitrum USDC into Hyperliquid margin without leaving the interface.
Which order type to use: a practical decision framework
| Scenario | Order type | Key flag |
|---|---|---|
| Fast exit, position at risk | Stop-market | Reduce-only |
| Planned exit at target | Take-limit | Reduce-only |
| Entry near current price, partial fill acceptable | IOC limit | None |
| Entry at specific price, willing to miss | Limit (GTC) | Post-only / ALO |
| Large entry, want to minimize impact | Scale or TWAP | Reduce-only if exit |
| Emergency close, any price | Market | Reduce-only |
| Entry with maker fee priority | Limit | Post-only |
The core matrix is urgency versus size. High urgency, small size: market or IOC. Low urgency, large size: scale or TWAP. Exits: always reduce-only. Price-sensitive entries: limit with post-only.
7 common mistakes
- Using market orders as the default. Market orders are for emergencies and fast exits. Routing routine entries through them at 10x+ leverage is expensive.
- Forgetting reduce-only on stop-losses. A stop that fires after a liquidation can open a position in the opposite direction. Set reduce-only on every exit order.
- Setting stop triggers on last price instead of mark price. Last price can be wicked. Mark price can't. Use mark price triggers.
- Placing GTC limits and not reviewing them. A limit placed during a volatile session can fill hours later in a completely different market context. Check your open orders.
- Using TWAP when urgency is high. TWAP is for large size with low urgency. If you need to be in or out quickly, it's the wrong tool.
- Setting stop-limit triggers too close to the limit price. In a fast market, price can gap through your limit and leave the order unfilled. Give stop-limits enough room between trigger and limit to catch a fast move.
- Ignoring the worst-case fill price. On Stacked Markets, the worst-case fill is shown before you confirm. Read it. If the number is worse than expected, the order book is telling you something about current liquidity.
IOC limits with slippage bounds, configurable risk controls, and worst-case fill price shown before you sign. Stacked Markets holds no funds and no keys.
FAQs
What is the difference between IOC and GTC on a DEX?
IOC (immediate or cancel) attempts to fill immediately at your price or better, then cancels any unfilled portion. GTC (good till cancelled) leaves the order resting in the book until it fills or you cancel it. IOC is better for active entries where you don't want a stale order sitting open. GTC is better when you're targeting a specific price and are willing to wait.
Why does Hyperliquid use mark price for stop triggers instead of last price?
Mark price is derived from an aggregated index of spot prices across multiple exchanges. Last price reflects only the most recent trade on Hyperliquid itself, which can be moved by a single large order or thin liquidity. Using mark price as the trigger source prevents stops from firing on wicks that don't reflect broader market conditions.
What does post-only (ALO) actually do?
Post-only - also called add liquidity only (ALO) - ensures your limit order is placed as a maker order. If the order would cross the spread and fill immediately as a taker, it's rejected rather than executed. This guarantees you pay the maker fee rate (0.015% on Hyperliquid) rather than the taker rate (0.045%).
When should I use a scale order instead of a single limit?
Use scale orders when you want to build or exit a position across a price range rather than at a single level. Useful for DCA entries where you're uncertain about the exact bottom, or for distributing a large exit to reduce market impact. Scale orders don't improve your entry thesis - they improve execution of a thesis you've already formed.
What are the risks of using TWAP on-chain?
Two main risks. First, TWAP sub-orders are visible on-chain, so other traders can identify the pattern and trade against it. Second, you carry price risk for the full duration. If the market moves against you during execution, your average price will be worse than a single order at the start. TWAP makes sense for large size with low urgency - not for time-sensitive entries.
What happens if I don't use reduce-only on a take-profit order?
If your position is closed by a liquidation or a manual close before the take-profit fires, the order executes without an existing position to reduce. Depending on the order direction, it can open a new position in the opposite direction. Reduce-only prevents this by ensuring the order can only reduce or close, never open.
How does Stacked Markets show the worst-case fill price before confirmation?
Stacked Markets calculates the worst-case fill price from current order book depth at the time of submission and displays it in the terminal before the wallet confirmation popup appears. You see the maximum price you'll pay - or minimum you'll receive - before signing. This applies to IOC limit orders with slippage bounds. There are no market orders disguised as limit orders.
