Hyperfolio
Guide

Hyperliquid TP/SL Guide 2026: Take Profit & Stop Loss

Hyperliquid take profit and stop loss explained: mark triggers, market vs limit (10% slippage), position vs OCO parent orders, API trigger fields, and how to verify fills.

October 15, 20267 min

Hyperliquid Take Profit and Stop Loss (TP/SL) Guide 2026

The short version: Hyperliquid TP/SL orders are trigger orders that fire on the mark price, then execute as a market order (10% slippage tolerance) or a limit order you set. You can attach them to an open position (they can resize with the position) or to a parent entry order (OCO-style children). Most “my stop didn’t work” reports come from confusing mark vs trade price, using a tight limit after a gap, or canceling a partially filled parent and wiping the children.

What TP/SL means on Hyperliquid

A take profit (TP) closes (or reduces) a position when the mark has moved in your favor to a trigger you choose. A stop loss (SL) does the same when the mark has moved against you. Both are exits: they sit as untriggered trigger orders until mark crosses the trigger, then the exchange places the execution order.

That is different from a plain stop market / stop limit used to enter a position. Entry stops and position TP/SL share the trigger machinery, but TP/SL is meant to close risk you already have. For the full menu of order types see our order types guide.

Mark price triggers — not last trade

Official docs: the mark price is used to trigger TP/SL. Mark can diverge from the last trade and from the mid, especially in thin books or fast moves. Your fill then happens on the book (trade price). So you can see:

  • TP trigger at a “good” mark, then a fill that is worse because of slippage or a thin book
  • Mark touch your SL while the last print never quite got there

That is expected behavior, not a broken stop. Mark vs oracle also drives liquidation and funding math — see mark vs oracle and the liquidation guide.

Market vs limit TP/SL

ModeAfter triggerSlippage controlMain risk
Market TP/SLMarket-style executionBuilt-in 10% slippage toleranceFill can be far from trigger on illiquid names or large size
Limit TP/SLResting limit at your price pYou set how aggressive the limit isOrder may rest unfilled if price gaps through your limit

Docs example (long SL): trigger $10, limit $10 — if mark gaps from $11 to $9, the sell can rest at $10 and miss. Limit $8 instead and you are more likely to fill between $9 and $8. Same idea inverted for shorts: give the buy limit room above the spike.

Rule of thumb: market TP/SL when you care about getting flat; limit TP/SL when you care about a worst fill and accept the chance of still being in the trade. For large exits, also consider a TWAP or staged reduces to cut slippage and price impact.

Two ways to attach TP/SL

1) Attached to a position

From the position form, TP/SL size defaults to the entire position and will try to close whatever size you still have at trigger time. If you set a specific size, that size is fixed — it will not grow or shrink if you add or reduce later.

2) Attached to a parent entry (OCO-style children)

From the order form, TP/SL size is fixed to the parent order size. Placement rules from the docs:

  • Parent fully fills at placement → children TP/SL are placed immediately
  • Parent not fully filled → children stay untriggered / not yet live; cancel the unfilled parent → children cancel too
  • You cancel a partially filled parent yourself → children are fully canceled (you must place new TP/SL on the leftover position)
  • Parent partially fills then is canceled for insufficient margin → children are placed as if the order had fully filled

That last case is easy to miss when debugging “why did my OCO still fire?”

Long vs short: trigger and limit direction

Worked illustration (numbers are teaching examples, not live quotes). Suppose you are long and want SL trigger 95,000 with a limit that allows gap:

  • Long SL: sell to close when mark ≤ trigger; set limit ≤ trigger (more room = better chance to fill on a dump)
  • Long TP: sell to close when mark ≥ trigger; limit can sit slightly below trigger if you want a floor on the exit
  • Short SL: buy to close when mark ≥ trigger; set limit ≥ trigger so a spike can still fill
  • Short TP: buy to close when mark ≤ trigger; limit can sit slightly above trigger

Always set reduce-only on exit TP/SL so a fill cannot flip you into the opposite position.

UI tips that avoid self-inflicted errors

  • You can drag TP/SL on the TradingView chart. Dragging so the order would execute immediately is rejected — close manually from the position table or form if that is what you want.
  • After partial fills or scale-ins, re-check whether your TP/SL is still position-linked (resizing) or fixed-size.
  • If you cancel a parent entry with leftover size, assume children are gone until you see them on the open orders list.

API shape (exchange order)

Trigger legs use t.trigger with isMarket, triggerPx, and tpsl of "tp" or "sl". Batch with an entry using grouping: "normalTpsl" (entry + children) or "positionTpsl" (position-linked). Example pattern (sizes/prices must match the asset’s szDecimals):

{
  "type": "order",
  "grouping": "normalTpsl",
  "orders": [
    {"a": 0, "b": true, "p": "100000", "s": "0.0036", "r": false,
     "t": {"limit": {"tif": "Gtc"}}},
    {"a": 0, "b": false, "p": "94000", "s": "0.0036", "r": true,
     "t": {"trigger": {"isMarket": true, "triggerPx": "95000", "tpsl": "sl"}}},
    {"a": 0, "b": false, "p": "101200", "s": "0.0036", "r": true,
     "t": {"trigger": {"isMarket": true, "triggerPx": "105000", "tpsl": "tp"}}}
  ]
}

Here p is the limit used once triggered (even when isMarket is true in common SDK examples — confirm against current exchange docs for your client). Prefer an API / agent wallet for bots so the master key never signs routine cancels. Fast cancel flags reject trigger-order cancels; use the normal cancel path for TP/SL.

After the stop fires: fees, funding, and real PnL

A triggered exit still pays maker/taker fees on the fill notional, and any funding while you were open stays in the ledger. Closed PnL in the UI can look “wrong” vs your mental math if you ignore fees, funding, or builder fees. Track the full picture with Hyperfolio and our guides on real PnL, fees, and closed PnL. Referral code HYPERFOLIO cuts trading fees by 4% on your first $25M of volume.

Risk sizing before you place the SL

Your dollar risk is roughly position notional × distance from entry to SL (plus fees/slippage). Pick the loss you can take, then size — do not pick max leverage and hope the stop saves you. Use the position size workflow and keep liquidation well beyond the stop (leverage guide).

Track stops and outcomes with Hyperfolio

Hyperfolio is a free, read-only PWA for Hyperliquid wallets: paste an address (no keys) and review open perps, entries, marks, liquidations, and closed PnL after TP/SL fills. Multi-wallet tracking and Smart Money views help you study how other addresses manage exits — without connecting a wallet.

FAQ

Does Hyperliquid TP/SL use mark or last price?

Mark price. Execution after the trigger uses the order book (market with 10% tolerance, or your limit).

Why did my take profit fill at a loss?

Usually mark triggered in profit, then the market fill slipped, or a limit rested and filled later on a worse print. Illiquid markets and large size make this worse.

What happens if I cancel a partially filled entry that had TP/SL?

The child TP/SL orders are fully canceled. Place new position TP/SL on the remaining size.

Can I set TP/SL for only part of a position?

Yes — set an explicit size. That size is fixed and will not auto-resize with later adds/reduces.

Is TP/SL the same as a trailing stop?

No. Trailing stop is a separate order type that moves with price. TP/SL uses fixed triggers you set (or drag on the chart).

Try Hyperfolio for free

Track your Hyperliquid portfolio in real time with PnL, Smart Money, Markets, Perp Calculator, multi-venue portfolio and push alerts.

HYPERLIQUID

-4% fees

Trade on Hyperliquid · 4% off fees

Hyperfolio is an independent app — no ads, no commissions, no sponsors. Referrals are our only funding; we truly appreciate you trading through our link.

Use referral

Free for you · keeps Hyperfolio running

Related articles

Guide

Hyperliquid Historical Data 2026: Candles, Funding & S3

Where to get Hyperliquid historical data: candleSnapshot candles and the 5,000-candle limit, hourly funding history with pagination, your own fills, the S3 archives, rate limits and a Python script that exports candles to CSV.

Guide

Hyperliquid Open Interest 2026: Read OI, Caps & API

What open interest means on Hyperliquid, how to convert it to USD, how to read OI with price and funding, why orders get rejected at the open interest cap, HIP-3 caps, and a Python script to pull OI from the public API.

Guide

Hyperliquid Testnet Guide 2026: Faucet, API & Chain ID

How to use Hyperliquid testnet: claim 1,000 mock USDC from the faucet (mainnet deposit required), fix the email-login address issue, switch the API and Python SDK, and add HyperEVM testnet (chain ID 998).

Guide

Hyperliquid TWAP Orders Guide 2026: Duration, Slippage & API

How Hyperliquid TWAP works: 5 minutes to 7 days, $100 minimum, 30s interval floor, 3% suborder slippage, ±20% randomize, catch-up caps, and the twapOrder / twapCancel API.

Guide

Hyperliquid Slippage & Price Impact Guide

Learn what slippage and price impact cost you on Hyperliquid, how to estimate them from the order book and which order types (limit, IOC, TWAP) reduce them.

Guide

Hyperliquid Builder Codes & Builder Fees Explained (2026)

What Hyperliquid builder codes are, how bots, wallets and frontends add builder fees (up to 0.1% on perps, 1% on spot), what they cost per month, and how to check and revoke your approvals.