Why Wallet Age Beats Recent PnL for Copy Trading Filters
By @CoinMarketMan - 14-Jul-2026
为何钱包年龄优于近期盈亏用于跟单交易筛选
该钱包以六位数的已实现盈利登顶 Hyperliquid 7日排行榜。你将其加入跟单观察列表,并跟随了接下来三笔交易。三笔全部亏损。下周该钱包就从排行榜上彻底消失了。
这是链上跟单交易中最常见的失败模式,与执行速度或滑点无关。问题出在筛选器本身。7日盈亏排行榜展示的是谁最近赢了,却无法告诉你谁持续赢。因为上周爆仓的钱包早已从榜单上消失。你在一个已被幸存者偏差预先筛选过的池子里挑选,这意味着你以为在读取的信号,大部分都是噪音。
以累计全时盈亏衡量的钱包年龄,是构建跟单筛选器更可靠的基础。它不能取代近期表现的核查,但它改变了操作顺序:先看历史记录的深度,再用近期表现加以确认,而不是反过来。
本文解释为何这一顺序至关重要、幸存者偏差如何扭曲短窗口排行榜,以及如何利用 HyperTracker 在 Hyperliquid 上的队列数据构建"年龄优先"的筛选流程。
排行榜中隐藏的幸存者偏差
每一份 7日盈亏排行榜,都是幸存者的快照。在该窗口内亏钱、被强平或停止交易的钱包不会出现。你只能看到撑过来的那些,这造成了对"优秀"定义的失真。
想象一千个钱包在周一开始交易。到周五,两百个已因亏损严重而被强平或停止交易。剩余八百个中,盈亏排名前五十的看起来令人印象深刻。但这五十个未必是因为技术高超,而是他们的方向性押注恰好与本周市场走势吻合。其中一些人在单一资产上用了过度杠杆,碰巧押对了。另一些人捕捉到了一次大行情,并在恰当时机平了仓,不过是运气使然。
当你从 7日排行榜筛选时,你实际上是在说:"给我看本周活下来的人。"这是一个有用的数据点,但是一个弱信号。一个钱包靠技术而非运气登上周榜的基础概率很低,因为一周的交易样本量太小,不足以区分信号与噪音。
解决方法是改变你的筛选起点。先看累计历史记录,再确认其仍处于活跃状态。仅凭近期表现,数据量太少,无法区分技术与运气。
钱包年龄实际衡量的是什么
在跟单交易筛选器的语境中,"钱包年龄"并非字面意义上的地址存在时长,而是历史记录深度的替代指标:该钱包积累了多少个月或多少轮周期的交易历史,以及所有这些活动的累计结果。
一个拥有六个月永续合约交易历史、全时已实现盈利 $500K 的钱包,与一个拥有两周历史、盈利 $50K 的钱包,传递的信息截然不同。前者经历过回调、资金费率机制转变、横盘期(突破策略失效)以及高波动期(均值回归策略失效)。后者只经历了一种市场环境。当市场条件改变时,你完全不知道它会如何表现。
为何累计盈亏比近期盈亏更适合作为初始筛选器
累计全时盈亏更难被运气伪造。一个全时永续合约盈利达 +$1M 的钱包,这个数字是在数月内通过数百乃至数千笔交易积累而来的。纯运气产生 $100 万累计盈利的概率极低,因为在大样本量下,运气会双向修正:连胜会回归,连败也会回归。留下的,才是真正的优势(如果有的话)。
一个 7日盈亏 +$50K 的钱包,可能只是靠三笔杠杆交易全都顺着市场方向走而达到这个数字。纯凭运气出现该结果的概率相当高,因为三笔交易在统计上并不显著。
这就是年龄优先筛选的核心逻辑:累计历史记录是评估技术的更好先验,因为它跨越了足够多的交易和足够多的市场周期,稀释了运气的贡献。
HyperTracker 的盈亏队列作为年龄代理指标
HyperTracker 将 Hyperliquid 上的每个钱包归入 16 个行为队列之一。八个基于账户规模(从 Shrimp 的 $0 至 $250,到 Leviathan 的 $5M+),八个基于全时盈亏表现。对于年龄优先的跟单筛选器,后八个盈亏队列才是关键:
| 队列 | 全时盈亏区间 | 跟单信号 | | --- | --- | --- | | Money Printer | +$1M 以上 | 历史记录最强,可信度最高的筛选结果。 | | Smart Money | +$10万 至 +$1M | 扎实的多周期表现,值得结合确认信号跟单。 | | Consistent Grinder | +$1万 至 +$10万 | 盈利但样本较小,谨慎使用。 | | Humble Earner | $0 至 +$1万 | 盈利能力边际,信号不足以跟单。 | | Exit Liquidity | -$1万 至 $0 | 已证明负向优势,不要跟单。 | | Semi-Rekt | -$10万 至 -$1万 | 不要跟单。 | | Full Rekt | -$1M 至 -$10万 | 不要跟单。 | | Giga-Rekt | -$1M 以下 | 不要跟单。 |
我们的队列分类充当预筛选器。在查看任何近期表现数据之前,你就可以从跟单候选池中剔除所有排在 Consistent Grinder 以下的钱包。相比"先看排行榜"的方法,这是一个结构性优势,因为它在这些已证明具有负向优势的钱包借助某个幸运的周而进入你的流程之前,就先行排除了它们。
近期表现仍然重要,只是不排在第一位
年龄优先筛选并不意味着忽视近期表现,而是改变顺序。你将累计盈亏队列作为第一道门,再用近期表现作为第二道门,确认该优势仍在发挥作用。
一个全时盈利 $200 万但近一个月亏损 $8 万的 Money Printer 钱包,与一个全时盈利 $200 万且近一个月盈利 $15 万的 Money Printer 钱包,应当区别对待。两者都通过第一道筛选,但只有后者通过近期确认。
年龄优先的工作流程
- 按盈亏队列筛选。 保留 Money Printer 和 Smart Money 钱包,可选择将 Consistent Grinder 以较小权重纳入。剔除其余所有队列。
- 核查钱包年龄。 利用 HyperTracker 可追溯至 2025 年 4 月的历史仓位数据,验证该钱包是否已活跃交易数月。上周才出现、凭单笔大额交易获得 $20 万盈利的钱包,与在六个月持续活动中积累 $20 万盈利的钱包,性质截然不同。
- 确认近期表现。 检查近期已实现盈亏(例如过去 30 天)是否为正。处于活跃回撤中的老手钱包可列入观察名单,待回撤结束后再重新考虑。
- 验证交易笔数。 要求该钱包在其存续期内有足够多的已平仓交易,使盈亏数字具有统计意义。十笔交易盈利 $50 万的钱包,可能是靠一笔超大仓位达到的;三百笔交易盈利 $50 万的钱包,则已证明其优势可重复。
每一步都会缩小候选池。到第四步时,你筛选出的钱包:已在多个市场周期中展现持续盈利能力,当前仍处于活跃且表现良好的状态,且交易量足以使盈亏数字具有统计意义。
使用 HyperTracker API 构建筛选器
实际操作使用两个 HyperTracker API 端点。第一个是排行榜端点,按全时盈亏对钱包排序。第二个是单钱包端点,提供用于评估年龄和一致性所需的详细交易历史。
import requests
API_BASE = "https://ht-api.coinmarketman.com/api/external"
headers = {"Authorization": "Bearer YOUR_TOKEN"}
# Step 1: Get the all-time PnL leaderboard
leaderboard = requests.get(
f"{API_BASE}/leaderboard",
headers=headers,
params={"period": "allTime", "limit": 100}
).json()
# Step 2: For each candidate, check trade history depth
candidates = []
for wallet in leaderboard["traders"]:
address = wallet["address"]
# Get earliest positions to estimate wallet age
positions = requests.get(
f"{API_BASE}/positions",
headers=headers,
params={
"address[]": address,
"start": "2025-04-15T00:00:00.000Z"
}
).json()
# Get closed trades for trade count
fills = requests.get(
f"{API_BASE}/fills",
headers=headers,
params={
"address[]": address,
"start": "2025-07-31T00:00:00.000Z"
}
).json()
trade_count = len(fills.get("fills", []))
has_history = len(positions.get("positions", [])) > 0
# Example threshold (adjust based on your strategy)
if has_history and trade_count > 50:
candidates.append({
"address": address,
"alltime_pnl": wallet["pnl"],
"trade_count": trade_count,
"earliest_data": "2025-04" if has_history else "recent"
})
print(f"Filtered {len(candidates)} candidates from {len(leaderboard['traders'])} leaderboard entries")
上述代码拉取全时排行榜,然后逐一核查每个候选钱包的历史深度。无法追溯到最早可用数据窗口的钱包,以及已平仓交易少于五十笔的钱包,都会被过滤掉。留下的,是既有累计盈利能力、又有交易历史支撑的排行榜钱包子集。
添加近期确认步骤
# Step 3: Confirm recent performance
from datetime import datetime, timedelta
recent_start = (datetime.utcnow() - timedelta(days=30)).strftime(
"%Y-%m-%dT00:00:00.000Z"
)
confirmed = []
for c in candidates:
recent_fills = requests.get(
f"{API_BASE}/fills",
headers=headers,
params={
"address[]": c["address"],
"start": recent_start
}
).json()
recent_pnl = sum(
float(f.get("closedPnl", 0))
for f in recent_fills.get("fills", [])
)
if recent_pnl > 0:
c["recent_30d_pnl"] = recent_pnl
confirmed.append(c)
print(f"{len(confirmed)} wallets passed all filters")
经过这一步,你得到的是通过三道关卡的钱包列表:累计全时盈亏排行榜排名(技术信号)、历史交易深度(年龄信号)、30 天已实现盈亏为正(近期信号)。这些就是你的跟单候选名单。
何时可以跳过年龄筛选器
没有哪条筛选规则是绝对的。某些情况下,即便历史记录较短,一个较新的钱包也值得考虑。
钱包迁移。 有经验的交易者有时会创建新钱包。一个两个月前才出现、但交易精度和仓位模式都像老手的钱包,很可能是从旧地址迁移过来的。我们的队列数据系统会基于该地址的累计盈亏进行分类,但盈亏数字会低于该交易者的真实历史记录,因为它只能反映迁移后的活动。
市场周期转换。 有些钱包在震荡行情中处于休眠状态,只在强势趋势中才会激活。一个已沉寂三个月、但历史上累计全时盈利 $80 万的钱包,并不是一个"死钱包",而是一个选择性交易者。当它重新激活时,全时盈亏队列分类依然有效,即便休眠期间近期盈亏为零。
刚来 Hyperliquid,但在其他地方有经验。 从中心化交易所迁移到 Hyperliquid 的交易者,会以全新钱包起步,链上历史为零。年龄筛选器最初会排除他们,这是正确的行为。你无法在链上核实他们的 CEX 历史记录。一旦他们积累了足够的 Hyperliquid 特定历史,就会自然晋升至相应的盈亏队列。
构建你的年龄优先钱包筛选器
HyperTracker 的 API 为你提供全时盈亏排行榜、可追溯至 2025 年 4 月的逐钱包交易历史,以及 Hyperliquid 上每个活跃钱包的队列分类。查询排行榜,核查历史深度,确认近期表现,再将钱包加入你的跟单流程。
年龄优先跟单筛选清单
- 从全时排行榜出发。 拉取按累计盈亏排序的钱包,这是你的初始候选池。
- 应用队列门槛。 保留 Money Printer 和 Smart Money 队列,可考虑将 Consistent Grinder 以较低权重纳入,完全剔除负盈亏队列。
- 验证历史深度。 确认该钱包已连续交易数月,且交易量足以使盈亏数字具有统计意义。
- 确认近期盈亏为正。 检查近期窗口(例如 30 天)。处于活跃回撤中的老手列入观察名单,待回撤结束后重新进入候选池。
- 持续监控。 今天通过全部四项筛选的钱包,下个月可能不再符合条件。每周重新运行筛选,将跌破近期门槛的钱包轮换出去。
年龄优先,近期表现其次。这一顺序能保护你免受幸存者偏差侵蚀,将运气与技术区分开来,并帮你构建一个能撑过不止一个幸运周的跟单流程。