Hyperfolio
指南

Hyperliquid 夏普比率:风险调整后收益指南(2026)

用公开数据计算任意 Hyperliquid 钱包或金库的夏普与索提诺比率。真实排行榜与 HLP 示例、常见陷阱及 Python 脚本。

2026年10月30日12 分钟

简要结论:PnL 告诉你一个交易者赚了多少,夏普比率告诉你他为此承担了多少风险。Hyperliquid 没有在任何地方显示夏普比率,但你可以用免费的 portfolio 接口为任何公开地址计算它。在我们 2026 年 10 月 30 日(08:07 UTC)的快照中(9 月 29 日至 10 月 30 日的每日样本),排行榜月度 PnL 最高的钱包(+1.105 亿美元)年化夏普为 4.72,而一个赚得少五倍的钱包(+2,200 万美元)达到 8.62,因为它的每日波动只有前者的四分之一。同一个月里,单纯持有 BTC 的夏普为 −2.73。

排行榜按 PnL 和 ROI 排名。两者奖励的规模和运气不亚于技术:在趋势月里开 20 倍杠杆的钱包会登顶,随后又全部吐回。如果你要选择存入哪个金库、跟随哪个交易者,或评估自己的成绩,你需要一个把收益和过程中的颠簸放在一起看的数字。本指南用通俗语言解释夏普比率和索提诺比率,说明如何用 Hyperliquid 公开数据计算它们而不被充值和提现误导,给出带日期的真实示例,最后附上一个无需账户、无需 API key 的 Python 脚本。

夏普比率衡量什么

夏普比率是每期平均收益除以这些收益的标准差,通常换算为年化:

夏普 = 平均(日收益 − 无风险利率) ÷ 标准差(日收益) × √365

  • 大于 0:策略平均赚钱;小于 0 则亏钱。
  • 约为 1:一个像样策略的典型长期水平,收益大致等于年化波动率。
  • 一年以上持续 2 到 3:少见且出色。
  • 一个月内的极高数值:很常见,通常更多反映窗口太短而不是能力(见下文)。

我们使用 √365 而不是股票市场惯用的 √252,因为加密永续合约每天都交易。为便于阅读,无风险利率设为零;如果你想减去稳定币收益率,把它传给脚本,比率会略微下降。

索提诺比率思路相同,但只除以下行偏差,因此不会惩罚大涨的日子。当收益分布不对称时(例如趋势跟踪策略,很多小亏、少数大赚),它是更合适的指标。

Hyperliquid 上的数据来源

info API 的 portfolio 请求(POST https://api.hyperliquid.xyz/info,参数 {"type": "portfolio", "user": "0x..."})会为每个窗口(day、week、month、allTime 以及仅永续版本)返回两条时间序列:

  • accountValueHistory:每个样本点的账户权益。
  • pnlHistory:窗口开始以来的累计 PnL。

样本间隔并不均匀。10 月 30 日 HLP 金库的 month 窗口在 31 天内有 47 个点,week 有 67 个,allTime 有 102 个点,最早可追溯到 2023 年 5 月。因此第一步是重采样为每个 UTC 日一个值(我们保留每天最后一个样本)。我们在回撤与权益曲线指南中也用同一个接口分析亏损。

毁掉大多数夏普计算的错误

最直接的做法是用账户价值计算日收益:今天的权益除以昨天的,再减一。在 Hyperliquid 上,这对几乎所有活跃钱包都是错的,因为每次充值或提现账户价值都会跳变。500 万美元的充值看起来像大赚的一天,一次提现看起来像暴跌。

正确方法是用 PnL 衡量表现,并按账户中的资金进行缩放:

日收益 = (今天 PnL − 昨天 PnL) ÷ 昨天账户价值

充值和提现会改变账户价值但不改变 PnL,因此不会再被算作表现。这与我们的扣除手续费与资金费后的真实 PnL 指南逻辑一致:Hyperliquid 的 PnL 已经包含资金费和手续费,所以收益序列反映的是交易者真正留下的部分。

真实示例:月度排行榜前列

我们取 2026 年 10 月 30 日的公开排行榜,保留账户价值超过 100 万美元的钱包,按月度 PnL 排序,并对每个钱包使用上述方法。所有数字均为年化,无风险利率为零,样本为 2026 年 9 月 29 日至 10 月 30 日 UTC 的每日数据(最后一天不完整,截至 08:07 UTC)。

钱包排行榜月度 PnL收益(本文方法)年化波动率夏普索提诺最差一天
0x5b5d…c060+1.105 亿美元+54.5%124%4.7211.2−6.5%
0xb83d…6e36+8,910 万美元+43.4%104%4.5910.2−6.3%
0x393d…2109+6,800 万美元+6.1%82%1.232.5−4.7%
0xecb6…2b00+2,200 万美元+22.9%29%8.6234.4−1.0%
0xfc66…ca06+1,980 万美元+18.3%38%5.4017.1−1.9%
0xfe7c…b7ae+1,930 万美元+80.3%233%4.127.3−28.9%

作为对比,在相同的 31 个日周期内(日 K 线截至 10 月 29 日收盘),买入并持有永续合约的结果为:BTC 收益 −6.6%,波动率 28.0%,夏普 −2.73;ETH −16.3%、35.6%、−5.68;HYPE +1.7%、63.1%、+0.62。

这张表说明:

  • PnL 排名不等于风险调整后排名。按美元排第四的钱包夏普最高,最差一天只有约 −1%。排第三的钱包赚了 6,800 万美元,但在巨大的账户上只相当于约 6%,波动率却有 82%,所以它的夏普是六个中最低的。
  • 夏普相近,过程截然不同。0xfe7c…b7ae 收益 80%,夏普 4.12,与领先者接近,但有一天亏掉了近 29% 的账户。夏普对大涨和大跌一视同仁,因此一定要同时看最差一天和最大回撤。
  • 本文的收益不是排行榜 ROI。我们按每天账户中的资金复利计算每日 PnL,排行榜则使用自己的 ROI 定义。对资金进出很大的钱包,两者可能相差很多,不要混在同一个比较里。

数字会骗人的两个陷阱

1. 平滑的序列会得出荒谬的比率

HLP 金库(0xdfc2…f303)同月收益约 +0.34%,年化波动率仅 0.1%,90% 的日子为正。由此得到的夏普约为 36.9,索提诺超过 1,700。两者都不是有用的预测。做市金库大多数日子获得小而稳定的收益,而风险集中在罕见的剧烈事件中,30 天的窗口可能根本没有包含这样的事件。当波动率接近零时,任何正的均值都会让比率爆炸。只把它理解为“这个月对这个策略来说很平静”,并更多关注长期回撤。我们的金库指南介绍了 HLP 如何赚钱和亏钱。

2. 新账户或刚注资的账户

排行榜前五中的一个钱包(0x659d…9d63,月度 PnL +5,150 万美元)在月度窗口中只有 11 天的历史。由于早期 PnL 是除以主要充值之前极小的余额,本文方法得出的收益约为 +595%,年化波动率超过 3,500%。它 5.7 的夏普看起来正常,但建立在没有意义的输入上。经验法则:日收益少于 30 个的夏普一律忽略,并确认起始账户价值不接近零。

实际如何使用夏普比率

  • 选择金库或跟随的交易者:在可用的最长窗口内按夏普和索提诺初筛,然后剔除最差一天或回撤超出你承受范围的对象。我们的跟单交易指南解释了为什么仓位大小和时机同样重要。
  • 评估自己的交易:连续几个月夏普为负,意味着扣除资金费和手续费后策略在亏钱,无论胜率看起来如何。结合胜率、盈利因子与期望值,判断问题出在亏损幅度还是亏损频率。
  • 与单纯持有比较:如果你的夏普低于你最常交易的币种,单纯持有反而能带来更高的单位风险收益。
  • 降低风险而不降低优势:降低杠杆会让收益和波动同比例缩小,夏普基本不变。要提高夏普,需要更好的交易、更好的分散与对冲,或基于波动率的仓位管理,而不只是缩小仓位。

Python 脚本:计算任意 Hyperliquid 地址的夏普与索提诺

需要 Python 3 和 requests。把地址换成任意钱包或金库即可。脚本只使用公开接口,永远不需要私钥或 API 钱包。

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))))

典型输出(2026 年 10 月 30 日,HLP 金库):

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%

如果要使用完整历史,把 window="month" 改为 "allTime",但要注意全历史样本较稀疏,重采样后的每个“日”可能覆盖好几天。如需拉取更多成交和 K 线数据,请参阅历史数据指南和 Hyperliquid API Python 指南。

无需写代码也能跟踪这些数据

你不需要脚本也能关注构成夏普比率的数据。Hyperfolio 是一款免费、只读的 PWA:粘贴任意 Hyperliquid 地址,即可查看账户价值、PnL 走势、持仓、杠杆和资金费,适用于你自己的钱包或你关注的钱包。无需注册,无需密钥。如果你管理多个账户,请看如何跟踪多个 Hyperliquid 钱包。

常见问题

Hyperliquid 会显示夏普比率吗?

不会。应用和排行榜显示 PnL、ROI 和交易量,但没有夏普、索提诺或波动率。你需要像上面的脚本那样,用公开的 portfolio 接口自行计算。

加密交易者的夏普多少算好?

在一年或更长时间内,约 1 算不错,2 以上算优秀。只看一个月时,我们 2026 年 10 月 30 日的快照里排行榜头部钱包出现了 4 到 8 的数值,可见短窗口会让这个数字显得更好看。

为什么不直接用账户价值计算收益?

因为充值和提现会在没有交易的情况下改变账户价值。应使用累计 PnL 的变化除以前一天的账户价值。

该用夏普还是索提诺?

两个都看。索提诺只惩罚亏损日,对有大幅盈利日的策略更公平。两者差距很大说明收益分布不对称。

夏普比率包含资金费和手续费吗?

包含,只要你用 Hyperliquid 的 PnL 历史来计算,因为该 PnL 已包括已平仓交易、资金费和手续费。

夏普越高就越安全吗?

不是。非常平滑的策略在罕见的坏日子到来之前都可能显示极高的夏普。务必同时查看最差一天和最大回撤。

更低成本交易。刚开始使用 Hyperliquid?使用推荐码 HYPERFOLIO 可享 4% 手续费折扣(推荐码如何生效),然后在 Hyperfolio 免费跟踪你的 PnL 和风险。

免费试用 Hyperfolio

实时追踪 Hyperliquid 投资组合,包含盈亏、Smart Money、Markets、Perp Calculator、多 venue 投资组合和推送提醒。

HYPERLIQUID

-4% fees

在 Hyperliquid 交易 · 手续费 4% 折扣

Hyperfolio 是独立应用,免费使用,无需订阅。我们的资金来自 Hyperliquid 推荐、广告位和捐赠;非常感谢您通过我们的链接交易。

使用推荐码

对您免费 · 让 Hyperfolio 持续运行

相关文章

指南

Hyperliquid 清算地图:真实清算价位(2026)

用真实链上持仓而非估算热力图构建 Hyperliquid 清算地图。以 2026 年 11 月 2 日账户价值最大的 300 个账户为例,讲解如何解读清算集群与集中度,并附 Python 脚本。

指南

Hyperliquid 最佳交易时间:按小时与星期(2026)

基于 672 根小时 K 线(2026 年 10 月 4 日至 11 月 1 日),按 UTC 小时和星期统计 Hyperliquid 上 BTC、ETH、HYPE、SOL 的成交量与波动率高峰,及其对滑点、止损和资金费率的影响,附 Python 脚本。

指南

Hyperliquid 多空比:解读交易者持仓(2026)

为什么 Hyperliquid 全市场多空比永远是 1,如何用公开数据计算一组钱包的多空比,排行榜前 100 交易者的带日期案例,以及 Python 脚本。

指南

Hyperliquid 相关性与 beta:加密永续合约对冲指南(2026)

用公开 K 线 API 计算 Hyperliquid 的相关性和 beta:BTC、ETH、HYPE、SOL、XRP 和 DOGE 带日期的 30 日与 90 日矩阵、三个组合与对冲示例,以及 Python 脚本。

指南

Hyperliquid 波动率与 ATR:止损、仓位与杠杆(2026)

用公开 K 线 API 自己计算 Hyperliquid 波动率:带日期快照中 BTC、ETH、HYPE、SOL、XRP 和 DOGE 的已实现波动率与 ATR,附止损、仓位和杠杆示例及 Python 脚本。

指南

Hyperliquid 新上线币种:查找新币与下架(2026)

如何自己查找 Hyperliquid 新上线币种:资产索引顺序、下架标记、HIP-1 现货与 HIP-3 部署拍卖,附带日期的最新永续真实快照和 Python 脚本。