Hyperfolio
Guide

Hyperliquid Sharpe Ratio: Risk-Adjusted Returns Guide (2026)

Calculate the Sharpe and Sortino ratio of any Hyperliquid wallet or vault from public data. Real leaderboard and HLP examples, common traps and a Python script.

October 30, 202612 min

The short version: PnL tells you how much a trader made; the Sharpe ratio tells you how much risk they took to make it. Hyperliquid does not show a Sharpe ratio anywhere, but you can calculate it for any public address from the free portfolio endpoint. In our snapshot of 30 October 2026 (08:07 UTC), covering daily samples from 29 September to 30 October, the wallet with the biggest monthly PnL on the leaderboard (+$110.5M) had an annualised Sharpe of 4.72, while a wallet that made five times less (+$22.0M) scored 8.62 because its daily swings were a quarter of the size. Over the same month, simply holding BTC scored −2.73.

Leaderboards rank by PnL and ROI. Both reward size and luck as much as skill: a wallet running 20x leverage in a trending month will top the table and then give it all back. If you are choosing a vault to deposit in, a trader to follow, or judging your own results, you need a number that puts the gain next to the bumps along the way. This guide explains the Sharpe and Sortino ratios in plain terms, shows exactly how to compute them from Hyperliquid's public data without being fooled by deposits and withdrawals, walks through real dated examples, and ends with a short Python script you can run with no account and no API key.

What the Sharpe ratio measures

The Sharpe ratio is the average return per period divided by the standard deviation of those returns, usually scaled to a year:

Sharpe = mean(daily return − risk-free rate) ÷ stdev(daily return) × √365

  • Above 0: the strategy made money on average. Below 0, it lost money.
  • Around 1: the typical long-run figure for a decent strategy; returns roughly equal to their annual volatility.
  • 2 to 3 sustained over a year or more: rare and impressive.
  • Very high values over a month: common, and usually say more about the short window than about skill (more on this below).

We use √365 rather than the stock-market convention of √252 because crypto perps trade every day. We set the risk-free rate to zero to keep the example readable; if you want to subtract a stablecoin yield, pass it to the script and the ratio will drop slightly.

The Sortino ratio is the same idea, but it divides by downside deviation only, so a strategy is not penalised for big up days. It is the better number when returns are lopsided, for example a trend follower that has many small losses and a few large wins.

Where the data comes from on Hyperliquid

The info API's portfolio request (POST https://api.hyperliquid.xyz/info with {"type": "portfolio", "user": "0x..."}) returns, for each window (day, week, month, allTime and perp-only versions), two time series:

  • accountValueHistory: the equity of the account at each sample.
  • pnlHistory: cumulative PnL since the start of the window.

The samples are not evenly spaced. For the HLP vault on 30 October, the month window had 47 points over 31 days, week had 67 and allTime had 102 points stretching back to May 2023. So the first step is to resample to one value per UTC day (we keep the last sample of each day). We covered the same endpoint for losses in our drawdown and equity curve guide.

The mistake that ruins most Sharpe calculations

The obvious approach is to compute daily returns from account value: today's equity divided by yesterday's, minus one. On Hyperliquid that is wrong for almost every active wallet, because account value jumps whenever the owner deposits or withdraws. A $5M deposit looks like a huge winning day; a withdrawal looks like a crash.

The fix is to measure performance with PnL and scale it by the capital that was in the account:

daily return = (PnL today − PnL yesterday) ÷ account value yesterday

Deposits and withdrawals change account value but not PnL, so they no longer show up as performance. The same logic is behind our guide to real PnL after fees and funding: PnL on Hyperliquid already includes funding and fees, so the return series reflects what the trader actually kept.

Real example: the top of the monthly leaderboard

We took the public leaderboard on 30 October 2026, kept wallets with more than $1M in account value, sorted them by monthly PnL and ran the method above on each. All figures are annualised, risk-free rate zero, daily samples from 29 September to 30 October 2026 UTC (the last day is partial, up to 08:07 UTC).

WalletLeaderboard month PnLReturn (our method)Annual volatilitySharpeSortinoWorst day
0x5b5d…c060+$110.5M+54.5%124%4.7211.2−6.5%
0xb83d…6e36+$89.1M+43.4%104%4.5910.2−6.3%
0x393d…2109+$68.0M+6.1%82%1.232.5−4.7%
0xecb6…2b00+$22.0M+22.9%29%8.6234.4−1.0%
0xfc66…ca06+$19.8M+18.3%38%5.4017.1−1.9%
0xfe7c…b7ae+$19.3M+80.3%233%4.127.3−28.9%

For comparison, over the same 31 daily periods (daily candles up to the 29 October close), buying and holding the perp would have given: BTC −6.6% return, 28.0% volatility, Sharpe −2.73; ETH −16.3%, 35.6%, −5.68; HYPE +1.7%, 63.1%, +0.62.

What the table shows:

  • PnL rank is not risk-adjusted rank. The wallet in fourth place by dollars has the best Sharpe of the group, with a worst day of about −1%. The wallet in third place made $68M, but on a very large account that was only about 6% with 82% volatility, so its Sharpe is the lowest of the six.
  • Similar Sharpe, very different ride. 0xfe7c…b7ae returned 80% with a Sharpe of 4.12, close to the leaders, but one day cost almost 29% of the account. Sharpe treats large up and down days alike, which is why you should always look at the worst day and the maximum drawdown next to it.
  • Our return is not the leaderboard ROI. We compound daily PnL over the capital in the account each day; the leaderboard uses its own ROI definition. The two can differ a lot for wallets with large flows, so do not mix them in one comparison.

Two traps where the number lies

1. Smooth series give absurd ratios

The HLP vault (0xdfc2…f303) earned about +0.34% over the same month, with annualised volatility of just 0.1% and 90% of days positive. That produces a Sharpe of about 36.9 and a Sortino above 1,700. Neither is a useful prediction. A market-making vault books small, steady gains most days and takes its risk in rare, sharp events that a 30-day window may simply not contain. When volatility is close to zero, any positive mean makes the ratio explode. Read it as "this month was calm for this strategy", nothing more, and look at long-run drawdowns instead. Our vaults guide covers how HLP makes and loses money.

2. New or freshly funded accounts

One wallet in the leaderboard top five (0x659d…9d63, +$51.5M monthly PnL) had only 11 days of history in the month window. Because early PnL was divided by a tiny starting balance before the main deposit, our method gave a return of about +595% and annualised volatility above 3,500%. Its Sharpe of 5.7 looks normal, but it is built on meaningless inputs. Rule of thumb: ignore any Sharpe with fewer than 30 daily returns, and check that the account value was not near zero at the start.

How to use Sharpe in practice

  • Choosing a vault or trader to follow: shortlist by Sharpe and Sortino over the longest window available, then reject anything with a worst day or drawdown you could not live with. Our copy trading guide explains why size and timing matter too.
  • Judging your own trading: a Sharpe below zero over several months means the strategy loses money after funding and fees, whatever the win rate says. Pair it with win rate, profit factor and expectancy to see whether the problem is the size of losses or how often you lose.
  • Comparing with just holding: if your Sharpe is below the coin you trade most, a simple hold would have given you more return per unit of risk.
  • Lowering risk without lowering edge: cutting leverage scales return and volatility down together, so Sharpe stays about the same. Improving Sharpe means better trades, better diversification and hedging or position sizing based on volatility, not just smaller size.

Python script: Sharpe and Sortino for any Hyperliquid address

Requires Python 3 and requests. Replace the address with any wallet or vault. It uses only public endpoints, so it never needs a private key or API wallet.

import math, time, requests
from datetime import datetime, timezone

API = "https://api.hyperliquid.xyz/info"
ADDRESS = "0xdfc24b077bc1425ad1dea75bcb6f8158e10df303"  # HLP vault; any public address works

def post(body):
    r = requests.post(API, json=body, timeout=10)
    r.raise_for_status()
    return r.json()

def day(ms):
    return datetime.fromtimestamp(ms / 1000, tz=timezone.utc).date()

def daily_last(points):
    """Keep the last sample of each UTC day: {date: value}."""
    out = {}
    for t, v in points:
        out[day(t)] = float(v)
    return out

def wallet_returns(user, window="month"):
    """Daily returns = PnL change / previous account value, so deposits and
    withdrawals do not count as performance."""
    w = dict(post({"type": "portfolio", "user": user}))[window]
    pnl, av = daily_last(w["pnlHistory"]), daily_last(w["accountValueHistory"])
    days = sorted(set(pnl) & set(av))
    rets = []
    for a, b in zip(days, days[1:]):
        if av[a] > 0:
            rets.append((pnl[b] - pnl[a]) / av[a])
    return days, rets

def coin_returns(coin, n_days=30):
    now = int(time.time() * 1000)
    c = post({"type": "candleSnapshot", "req": {"coin": coin, "interval": "1d",
             "startTime": now - (n_days + 2) * 86_400_000, "endTime": now}})
    closes = [float(x["c"]) for x in c[:-1]]  # drop today's unfinished candle
    closes = closes[-(n_days + 1):]
    return [b / a - 1 for a, b in zip(closes, closes[1:])]

def stats(rets, periods_per_year=365, rf_annual=0.0):
    n = len(rets)
    rf = rf_annual / periods_per_year
    ex = [r - rf for r in rets]
    mean = sum(ex) / n
    sd = math.sqrt(sum((r - mean) ** 2 for r in ex) / (n - 1))
    downside = math.sqrt(sum(min(r, 0) ** 2 for r in ex) / n)
    total = math.prod(1 + r for r in rets) - 1
    return {
        "days": n,
        "total_return": total,
        "ann_vol": sd * math.sqrt(periods_per_year),
        "sharpe": mean / sd * math.sqrt(periods_per_year) if sd else float("nan"),
        "sortino": mean / downside * math.sqrt(periods_per_year) if downside else float("nan"),
        "worst_day": min(rets),
        "up_days": sum(r > 0 for r in rets) / n,
    }

def show(name, s):
    print(f"{name:6} days={s['days']:2}  return {s['total_return']:+.2%}  vol {s['ann_vol']:.1%}  "
          f"Sharpe {s['sharpe']:+.2f}  Sortino {s['sortino']:+.2f}  "
          f"worst day {s['worst_day']:+.2%}  up days {s['up_days']:.0%}")

days, rets = wallet_returns(ADDRESS)
print(f"Wallet window {days[0]} -> {days[-1]} (UTC)")
show("wallet", stats(rets))
for coin in ("BTC", "ETH", "HYPE"):
    show(coin, stats(coin_returns(coin, n_days=len(rets))))

Typical output (30 October 2026, HLP vault):

Wallet window 2026-09-29 -> 2026-10-30 (UTC)
wallet days=31  return +0.34%  vol 0.1%  Sharpe +36.85  Sortino +1765.49  worst day -0.00%  up days 90%
BTC    days=31  return -6.60%  vol 28.0%  Sharpe -2.73  Sortino -3.19  worst day -4.15%  up days 48%
ETH    days=31  return -16.27%  vol 35.6%  Sharpe -5.68  Sortino -5.97  worst day -4.59%  up days 45%
HYPE   days=31  return +1.70%  vol 63.1%  Sharpe +0.62  Sortino +0.98  worst day -6.64%  up days 52%

To use the longest history, change window="month" to "allTime", but remember the all-time samples are sparse, so each "day" in the resampled series may cover several days. For a deeper pull of trades and candles, see our historical data guide and the Hyperliquid API Python guide.

Track the inputs without code

You do not need a script to keep an eye on the numbers that feed a Sharpe ratio. Hyperfolio is a free, read-only PWA: paste any Hyperliquid address and see account value, PnL over time, open positions, leverage and funding, for your own wallets or the ones you follow. No sign-up, no keys. If you track several accounts, see how to track multiple Hyperliquid wallets.

FAQ

Does Hyperliquid show a Sharpe ratio?

No. The app and the leaderboard show PnL, ROI and volume, but no Sharpe, Sortino or volatility figures. You calculate them from the public portfolio endpoint, as in the script above.

What is a good Sharpe ratio for a crypto trader?

Over a year or more, around 1 is decent and 2 or higher is excellent. Over a single month, values of 4 to 8 appeared among the top leaderboard wallets in our 30 October 2026 snapshot, which shows how much a short window flatters the number.

Why not just use account value to compute returns?

Because deposits and withdrawals change account value without any trading. Use the change in cumulative PnL divided by the previous day's account value.

Should I use Sharpe or Sortino?

Look at both. Sortino only penalises losing days, so it is fairer to strategies with large winning days. A big gap between the two tells you the returns are lopsided.

Does the Sharpe ratio include funding and fees?

Yes, if you build it from Hyperliquid's PnL history, because that PnL already includes realised trades, funding and fees.

Is a higher Sharpe always safer?

No. A very smooth strategy can show a huge Sharpe until a rare bad day arrives. Always check the worst day and maximum drawdown alongside it.

Trade for less. New to Hyperliquid? Use referral code HYPERFOLIO for 4% off trading fees (how the referral works), then track your PnL and risk for free in Hyperfolio.

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, free to use with no subscription. We're funded by Hyperliquid referrals, ad space and donations; we truly appreciate you trading through our link.

Use referral

Free for you · keeps Hyperfolio running

Related articles

Guide

Hyperliquid Liquidation Map: Real Liquidation Levels (2026)

Build a Hyperliquid liquidation map from real on-chain positions instead of estimated heatmaps. Dated example from the 300 largest accounts on 2 Nov 2026, how to read clusters and concentration, and a Python script.

Guide

Best Time to Trade on Hyperliquid: Hours & Days (2026)

When Hyperliquid volume and volatility peak, by UTC hour and weekday, measured from 672 hourly candles (4 Oct to 1 Nov 2026) for BTC, ETH, HYPE and SOL, with what it means for slippage, stops and funding, plus a Python script.

Guide

Hyperliquid Long/Short Ratio: Read Trader Positioning (2026)

Why the market-wide long/short ratio on Hyperliquid is always 1, how to measure it for a cohort of wallets from public data, a dated example of the top 100 leaderboard traders, and a Python script.

Guide

Hyperliquid Correlation & Beta: Hedging Crypto Perps (2026)

Measure correlation and beta on Hyperliquid from the public candle API: dated 30- and 90-day matrices for BTC, ETH, HYPE, SOL, XRP and DOGE, three portfolio and hedge examples, and a Python script.

Guide

Hyperliquid Volatility & ATR: Stops, Size, Leverage (2026)

Measure Hyperliquid volatility yourself from the public candle API: realized volatility and ATR for BTC, ETH, HYPE, SOL, XRP and DOGE on a dated snapshot, plus stop, position size and leverage examples and a Python script.

Guide

Hyperliquid New Listings: Find New Coins & Delistings (2026)

How to find new listings on Hyperliquid yourself: asset index order, delisted flags, HIP-1 spot and HIP-3 deploy auctions, a dated real snapshot of the newest perps and a Python script.