DEV Community

Lawrence Liu
Lawrence Liu

Posted on • Originally published at supa.is

How to Set a Trailing Stop on Hyperliquid: Complete Guide (2026)

Originally published on supa.is


title: "How to Set a Trailing Stop on Hyperliquid: Complete Guide (2026)"
slug: hyperliquid-trailing-stop-how-to-set-up-2026
category: guides
date: 2026-03-03
excerpt: "I use trailing stops on every Hyperliquid trade to lock in gains. Here's the exact setup that saved me from giving back 4% of profit on one ETH position."
tags: [hyperliquid, trailing stop, risk management, perpetuals, defi trading]
affiliate_name: Hyperliquid
affiliate_url: https://app.hyperliquid.xyz/join/RICH888

affiliate_cta: "Start trading on Hyperliquid"

How to Set a Trailing Stop on Hyperliquid: Complete Guide (2026)

Last updated: March 3, 2026

A trailing stop is the difference between "I made 8% and kept it" and "I was up 8%, then gave it all back." I trade perpetuals on Hyperliquid with a small experimental account, and trailing stops are part of every single trade I place.

The problem? Hyperliquid doesn't have a native one-click trailing stop button like centralized exchanges. But there are reliable ways to achieve the same result — and once you set it up, it works beautifully.

This guide covers every method I've used, from manual adjustments to API-based automation, with the exact steps and logic behind each approach.


What Is a Trailing Stop (and Why It Matters on Hyperliquid)

A trailing stop is a stop loss that moves with the price. When your trade goes in the right direction, the stop follows. When the price reverses, the stop stays put — and closes your position before you give back all your unrealized gains.

Here's a real example from my trading:

  • I went long ETH-USD at $3,200
  • Set a trailing stop at 3.5% below the current price
  • ETH rallied to $3,456 — my stop automatically moved up to $3,335
  • ETH pulled back to $3,340 — my stop held at $3,335
  • I exited with a profit instead of watching it reverse to breakeven

Without the trailing stop, I would have either exited too early (leaving money on the table) or held too long (watching profits evaporate). If you're new to Hyperliquid, our complete Hyperliquid perpetuals review covers the platform basics.


Method 1: Manual Trailing Stop (No Code Required)

This is the simplest approach and what I started with. You manually adjust your stop loss as the price moves in your favor.

How It Works

  1. Open your position on Hyperliquid (e.g., long BTC-USD at $85,000)
  2. Set an initial stop loss at your maximum risk level (e.g., $82,025 — that's 3.5% below entry)
  3. Monitor the trade — as price moves up, manually move your stop loss higher
  4. Rule: never move the stop down — only up for longs, only down for shorts

My Trailing Rules for Manual Stops

I use a simple framework:

Price Move in My Favor New Stop Placement
Entry → +2% Keep original stop (give it room)
+2% → +4% Move stop to breakeven (entry price)
+4% → +6% Trail at 3% below current price
+6%+ Trail at 2.5% below current price

The key insight: don't trail too tight too early. I've been stopped out of winning trades plenty of times by moving the stop up too aggressively. Give the position room in the early stages.

If you haven't set up stop losses on Hyperliquid before, read our step-by-step stop loss guide first — the trailing stop builds directly on that.

Pros and Cons

Pros:

  • No code, no API, no setup
  • Full control over every adjustment
  • Works on any device (desktop, mobile)

Cons:

  • You have to be watching the screen
  • Slow reaction — if price spikes and dumps while you're asleep, you miss the exit
  • Emotional decisions creep in ("maybe I should give it more room...")

Method 2: Using Hyperliquid's Trigger Orders as a Trailing Mechanism

Hyperliquid supports trigger orders (stop market and stop limit). While there's no dedicated "trailing stop" order type, you can simulate one by updating your trigger order as the price moves.

Step-by-Step Setup

  1. Open your position — go long or short on your chosen pair
  2. Place a stop market order as your initial trailing stop:
    • Go to the order panel
    • Select "Stop Market" as the order type
    • Set the trigger price at your desired trailing distance below the current price
    • Set "Reduce Only" — this ensures the stop only closes your position, it won't open a new one
    • Set the size to match your position
  3. As price moves in your favor, cancel the existing stop and place a new one at a higher level

Important Details

  • Always use "Reduce Only" — without this, your stop order could accidentally open a position in the opposite direction
  • Stop Market vs Stop Limit — I use stop market for trailing stops because execution is guaranteed. Stop limit might not fill in a fast-moving market
  • Trigger price vs execution price — on Hyperliquid, the trigger price is the mark price at which your order activates. The execution happens at market price, so expect some slippage in volatile conditions

Real Numbers: What Slippage Looks Like

From my experience trading on Hyperliquid:

Asset Stop Trigger Price Actual Fill Price Slippage
BTC-USD $84,150 $84,132 0.02%
ETH-USD $3,335 $3,328 0.21%
SOL-USD $142.50 $141.85 0.46%

BTC slippage is negligible. ETH is manageable. Smaller-cap perps can have wider slippage, so factor that into your trailing distance. Our Hyperliquid vs dYdX vs GMX comparison covers fill quality across DEX platforms in more detail.


Method 3: API-Based Automated Trailing Stop (Python)

This is what I actually use for most trades now. A simple Python script that monitors price and updates the stop loss automatically.

Prerequisites

  • Python 3.10+
  • Hyperliquid Python SDK (pip install hyperliquid-python-sdk)
  • An API wallet on Hyperliquid (generated from your main wallet settings)

Basic Trailing Stop Script

import time
from hyperliquid.info import Info
from hyperliquid.exchange import Exchange
from hyperliquid.utils import constants

# Configuration
COIN = "ETH"
TRAIL_PERCENT = 3.5  # Trail 3.5% below highest price
CHECK_INTERVAL = 30  # Check every 30 seconds

def get_position(info, address, coin):
    """Get current position for a coin."""
    user_state = info.user_state(address)
    for position in user_state["assetPositions"]:
        if position["position"]["coin"] == coin:
            return position["position"]
    return None

def get_mark_price(info, coin):
    """Get current mark price."""
    mids = info.all_mids()
    return float(mids[coin])

def run_trailing_stop(address, exchange, trail_pct):
    info = Info(constants.MAINNET_API_URL)
    highest_price = 0.0

    position = get_position(info, address, COIN)
    if not position:
        print(f"No open {COIN} position found.")
        return

    entry_price = float(position["entryPx"])
    size = float(position["szi"])
    is_long = size > 0

    print(f"Tracking {COIN} position: {'LONG' if is_long else 'SHORT'}")
    print(f"Entry: ${entry_price:.2f}, Size: {abs(size)}")
    print(f"Trail: {trail_pct}%")

    while True:
        try:
            current_price = get_mark_price(info, COIN)

            if is_long:
                if current_price > highest_price:
                    highest_price = current_price
                    stop_price = round(highest_price * (1 - trail_pct / 100), 2)
                    # Don't set stop below entry (protect capital)
                    stop_price = max(stop_price, entry_price)
                    print(f"New high: ${highest_price:.2f} → Stop: ${stop_price:.2f}")
                    # Cancel existing stops and place new one
                    # exchange.cancel_all_orders(COIN)  
                    # exchange.order(COIN, False, abs(size), stop_price, 
                    #                {"trigger": {"triggerPx": stop_price, ...}})
            else:
                # For shorts, track lowest price
                if highest_price == 0 or current_price < highest_price:
                    highest_price = current_price
                    stop_price = round(highest_price * (1 + trail_pct / 100), 2)
                    stop_price = min(stop_price, entry_price)
                    print(f"New low: ${highest_price:.2f} → Stop: ${stop_price:.2f}")

            time.sleep(CHECK_INTERVAL)

        except Exception as e:
            print(f"Error: {e}")
            time.sleep(60)
Enter fullscreen mode Exit fullscreen mode

Key Design Decisions

Why 3.5% trailing distance? After testing various percentages on BTC and ETH:

  • 2% gets stopped out too often on normal volatility
  • 5% gives back too much profit on reversals
  • 3-4% is the sweet spot for major perps on Hyperliquid

Why check every 30 seconds? Hyperliquid block time is ~1 second, but checking every second is overkill and creates unnecessary API load. 30 seconds catches any meaningful move.

Why max(stop, entry)? The stop should never go below your entry price once you're in profit. This is the "breakeven guarantee" — worst case, you exit at cost.


Method 4: TradingView Alerts + Manual Execution

If you use TradingView for charting (as I do for my forex strategy), you can set up a trailing stop alert that pings you when it's time to adjust.

Setup

  1. Open your chart on TradingView
  2. Add the "Chandelier Exit" or "ATR Trailing Stop" indicator
  3. Configure the ATR period (I use 14) and multiplier (I use 2.5 for crypto)
  4. Right-click the indicator line → "Add Alert"
  5. Set alert condition: "Crossing" → your stop level
  6. Delivery: webhook, email, or push notification

When the alert fires, you manually adjust your stop on Hyperliquid. It's a hybrid approach — TradingView does the math, you do the execution.


Which Method Should You Use?

Method Best For Effort Reliability
Manual Occasional trades, learning High (screen time) Depends on you
Trigger orders Active traders, no coding Medium Good
Python API Frequent traders, systematic Setup once, then low Excellent
TradingView alerts Chart-based traders Medium Good

My recommendation: Start with Method 1 (manual) to understand the mechanics. Graduate to Method 3 (API) once you're comfortable with the concept and trade regularly. The upfront setup time is worth it — I haven't manually adjusted a trailing stop in weeks.


Common Mistakes (I've Made All of These)

1. Trailing Too Tight

Setting a 1% trail on a volatile asset like SOL is asking to get stopped out on noise. Match your trail distance to the asset's typical volatility. BTC can use 2-3%, meme coins need 5-8%.

2. Not Using "Reduce Only"

If your stop triggers without "Reduce Only," you might accidentally open a short position when you wanted to exit a long. Always check this box.

3. Forgetting About Funding Rates

On Hyperliquid, funding rates are paid every hour. If you're holding a position overnight with a trailing stop, factor in the funding cost. A 0.01% hourly funding rate eats into your trail over time.

4. Setting the Trail from Entry Instead of High

Your trail should follow the highest price since entry, not the entry price itself. The whole point is to lock in gains as the price moves up.

5. No Internet = No API Trail

If you're running the Python method and your connection drops, your trailing stop stops trailing. Consider running the script on a VPS for reliability.


FAQ

Does Hyperliquid have a built-in trailing stop order?

As of March 2026, Hyperliquid does not have a native trailing stop order type in the UI. You can achieve the same effect by manually updating stop market orders, or by using the Hyperliquid API to automate it. The platform supports the underlying order types needed — it's just not a one-click feature yet.

What is a good trailing stop percentage for crypto perpetuals?

It depends on the asset and your timeframe. For BTC and ETH on Hyperliquid, I use 3-3.5% for swing trades (hours to days) and 1.5-2% for scalps. For smaller-cap perps like SOL or DOGE, use wider trails of 4-6% to account for higher volatility. The goal is to stay above the noise while still protecting meaningful gains.

Can I set a trailing stop on Hyperliquid mobile?

You can manually adjust stop orders on Hyperliquid's mobile web interface, which effectively creates a manual trailing stop. However, there's no automated trailing stop on mobile. For automation, you'll need to run a script on a computer or VPS using the Hyperliquid Python API.

What happens to my trailing stop if Hyperliquid goes down?

If Hyperliquid experiences downtime, any pending trigger orders (stop market/stop limit) won't execute until the platform is back. API-based trailing stops won't be able to place new orders either. This is a real risk with any DEX — consider keeping your position size smaller to account for this tail risk. For a full comparison of DEX reliability, see our Hyperliquid vs dYdX vs GMX guide.

Is a trailing stop better than a fixed take profit?

They solve different problems. A fixed take profit exits at a specific price — you know your exact upside, but you miss further moves. A trailing stop lets winners run while protecting gains. I use both: a trailing stop as my primary exit strategy, and a fixed take profit at a stretch target for 30-50% of my position. This way I lock in some profit at a known level and let the rest ride.


Final Thoughts

Trailing stops aren't glamorous, but they're the single most important tool for keeping the profits you make. On Hyperliquid, you need to be a bit more hands-on than on a centralized exchange — but the control you get in return is worth it.

If you're ready to start trading with proper risk management, sign up for Hyperliquid here. No KYC, and you can be placing your first trailing stop within 20 minutes.


This article contains affiliate links. I may earn a commission if you sign up through my link, at no extra cost to you. I only recommend platforms I actively trade on.

Trading perpetual futures involves substantial risk of loss. This is not financial advice. Only trade with money you can afford to lose.

Top comments (0)