Why Wallet Age Beats Recent PnL for Copy Trading Filters
By @CoinMarketMan - 14-Jul-2026
なぜコピートレードのフィルターにはウォレット年齢が直近PnLより重要なのか
そのウォレットは7日間のHyperliquidリーダーボードのトップに立ち、実現利益で6桁を稼いでいた。あなたはそれをコピートレードのウォッチリストに追加し、次の3つのトレードをミラーリングした。3つとも負けた。翌週にはそのウォレットはリーダーボードから完全に姿を消していた。
これはオンチェーンコピートレードで最もよく見られる失敗パターンだ。実行速度やスリッページとは何の関係もない。問題はフィルター自体にある。7日間のPnLリーダーボードは「最近誰が勝ったか」を示す。「誰が一貫して勝つか」については何も教えてくれない。先週爆損したウォレットはすでにリストから消えているからだ。あなたはサバイバーシップバイアスによってすでに篩にかけられたプールから選んでいる。つまり、読んでいると思っているシグナルはほとんどノイズに過ぎない。
累積の全期間PnL(多くの月にわたるトレード履歴)で測定されるウォレット年齢は、コピートレードフィルターのより信頼できる基盤だ。直近のチェックを置き換えるものではない。しかし、操作の順序を変える:直近のアクティビティで確認する前に、まずトラックレコードの深さから始めるのだ。
このガイドでは、その順序が重要な理由、サバイバーシップバイアスが短期間のリーダーボードをどのように歪めるか、そしてHyperliquidにおけるHyperTrackerのコホートデータを使って年齢優先のフィルタリングワークフローを構築する方法を説明する。
リーダーボードに潜むサバイバーシップバイアス
7日間のPnLリーダーボードは、生き残った者たちのスナップショットだ。そのウィンドウ内で損失を出したり、清算されたり、トレードを止めたりしたウォレットは表示されない。乗り越えた者たちだけが見える。これが「優秀」とはどういうことかについて歪んだ絵を作り出す。
月曜日に1,000のウォレットがトレードを始めたと想像してほしい。金曜日までに200が清算されるか、大きな損失を出してトレードを止めた。残りの800のうち、PnL上位50は印象的に見える。しかしその50が必ずしもスキルがあるわけではない。その週の市場の動きと方向性の賭けがたまたま一致した者たちだ。一つのアセットに過剰なレバレッジをかけてラッキーだった者もいる。偶然正しいタイミングで一つの大きな動きを捉えてポジションを閉じた者もいる。
7日間のリーダーボードでフィルタリングするとき、あなたは暗黙のうちに「今週生き残った人を見せてくれ」と言っている。それは有用なデータポイントだが、弱いものだ。ウォレットが週間リーダーボードに登場する基本確率は、分散ではなくスキルによるものである割合が低い。なぜなら1週間のトレードというサンプルサイズでは、シグナルとノイズを区別するには小さすぎるからだ。
解決策は、何でフィルタリングするかを変えることだ。累積のトラックレコードから始め、まだアクティブであることを確認する。直近のパフォーマンスだけでは、スキルと分散を区別するためのデータが少なすぎる。
ウォレット年齢が実際に測定するもの
コピートレードフィルターの文脈において、「ウォレット年齢」とはアドレスの文字通りの古さではない。トラックレコードの深さの代替指標だ:ウォレットが積み上げた数ヶ月または数サイクルのトレード履歴と、そのすべての活動の累積結果がどうなっているかということだ。
6ヶ月のperpsトレード履歴と全期間実現PnLで$500Kを持つウォレットは、2週間の履歴と$50KのPnLを持つウォレットとは異なるものを語っている。最初のウォレットは、調整局面を、ファンディングレートのレジームシフトを、ブレイクアウト戦略が失敗する低ボラティリティ期を、そして平均回帰戦略が失敗する高ボラティリティ期を乗り越えてトレードしてきた。2番目のウォレットは一つの市場環境でトレードしただけだ。条件が変わったときにどうパフォーマンスするかはわからない。
なぜ初期フィルターには直近PnLより累積PnLが重要なのか
累積の全期間PnLは分散で偽装しにくい。全期間のperps利益が+$1Mのウォレットは、何ヶ月にもわたる数百から数千のトレードを通じてその数字を生成している。純粋な運が$1Mの累積利益を生み出した確率は極めて低い。なぜなら大きなサンプルサイズでは分散は両方向に働くからだ。連勝は回帰する。連敗も回帰する。残るのはエッジだ、もし存在するなら。
7日間のPnLで+$50Kのウォレットは、市場と同じ方向に動いた3つのレバレッジトレードからそこに至ったかもしれない。運だけでその結果が出る確率は意味のある高さだ。3つのトレードは統計的に有意なサンプルではないからだ。
これが年齢優先フィルタリングの核心的な主張だ:累積トラックレコードはスキル推定のより良い事前確率だ。十分なトレードと十分な市場レジームにわたって統合することで、運の寄与を希釈するからだ。
年齢の代替指標としてのHyperTrackerのPnLコホート
HyperTrackerはHyperliquid上のすべてのウォレットを16の行動コホートのいずれかに分類する。8つはアカウントサイズに基づく($0〜$250のShrimpから$5M以上のLeviathanまで)、そして8つは全期間PnLパフォーマンスに基づく。コピートレードの年齢優先フィルターに重要なのはPnLコホートだ:
| コホート | 全期間PnL範囲 | コピートレードシグナル | | --- | --- | --- | | Money Printer | +$1M以上 | 最強のトラックレコード。最高信頼度のフィルター。 | | Smart Money | +$100K〜+$1M | 複数サイクルにわたるしっかりとしたパフォーマンス。確認を取ってフォローする価値がある。 | | Consistent Grinder | +$10K〜+$100K | 利益を出しているが、サンプルは小さい。慎重に使うこと。 | | Humble Earner | $0〜+$10K | 限界的な収益性。コピーするには不十分なシグナル。 | | Exit Liquidity | -$10K〜$0 | マイナスのエッジが実証済み。コピー不可。 | | Semi-Rekt | -$100K〜-$10K | コピー不可。 | | Full Rekt | -$1M〜-$100K | コピー不可。 | | Giga-Rekt | -$1M未満 | コピー不可。 |
私たちのコホート分類は事前フィルターとして機能する。直近のパフォーマンスデータを見る前に、Consistent Grinder未満のすべてのウォレットをコピートレード候補プールから排除できる。これはリーダーボード優先アプローチに対する構造的な優位性だ。マイナスのエッジが実証されたウォレットが、ラッキーな週を通じてパイプラインに入り込む前に排除できるからだ。
直近のパフォーマンスも重要だ、ただし優先度は低い
年齢優先フィルタリングは直近のパフォーマンスを無視することを意味しない。順序を変えることを意味する。まず累積PnLコホートを最初のゲートとして使い、次に直近のパフォーマンスを二番目のゲートとして使い、エッジがまだ有効であることを確認する。
全期間PnLで$2Mを持つがその月に-$80KのMoney Printerウォレットは、全期間PnLで$2Mを持ち+$150KのMoney Printerウォレットとは異なる扱いをするべきだ。両方とも最初のフィルターは通過する。直近の確認を通過するのは2番目だけだ。
年齢優先ワークフロー
- PnLコホートでフィルタリング。 Money PrinterとSmart Moneyのウォレットを残す。必要に応じてConsistent Grindersを小さめのアロケーションウェイトで含める。それ以下はすべて除外する。
- ウォレット年齢を確認。 HyperTrackerの過去のポジションデータ(2025年4月まで遡れる)を使って、そのウォレットが複数ヶ月にわたってアクティブにトレードしていることを確認する。先週$200KのPnLを一つの大きなトレードで稼いで登場したウォレットは、6ヶ月にわたる継続的なアクティビティで$200Kを積み上げたウォレットとは同じではない。
- 直近のパフォーマンスを確認。 直近の実現PnL(例えば過去30日間)がプラスであることを確認する。ベテランウォレットがアクティブなドローダウン中にある場合はウォッチリスト候補だ。ドローダウンが終わったときに再検討できる。
- トレード数を検証。 ウォレットの生涯を通じて十分な数のクローズドトレードがあり、PnLの数字が統計的な重みを持つことを確認する。10のトレードで$500Kの利益を持つウォレットは一つの大きなポジションからそこに至ったかもしれない。300のトレードで$500Kの利益を持つウォレットは再現可能なエッジを実証している。
各ステップで候補プールが絞られる。ステップ4に達する頃には、複数の市場レジームにわたって持続的な収益性を実証し、現在アクティブに活動しPnLも良好で、PnLの数字を統計的に意味のあるものにするのに十分なトレード量を持つウォレットのみを扱っている。
HyperTracker APIでフィルターを構築する
実際の実装ではHyperTracker APIの2つのエンドポイントを使う。一つ目は全期間PnLでウォレットをランク付けするリーダーボードエンドポイントだ。二つ目は個別ウォレットエンドポイントで、年齢と一貫性を評価するために必要な詳細なトレード履歴を取得できる。
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")
上記のコードは全期間リーダーボードを取得し、各候補の履歴の深さを確認する。利用可能な最古のデータウィンドウまで遡るトレードアクティビティのないウォレット、および50未満のクローズドトレードを持つウォレットは除外される。残るのはリーダーボードのウォレットのうち、累積収益性とそれを支えるトレード履歴の両方を持つサブセットだ。
直近確認の追加
# 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")
このステップの後、3つのゲートをクリアしたウォレットのリストが得られる:累積全期間PnLリーダーボードランク(スキルシグナル)、過去のトレードの深さ(年齢シグナル)、そして直近30日間のプラスの実現PnL(直近シグナル)。これらがあなたのコピートレード候補だ。
年齢フィルターを上書きするケース
フィルターは絶対ではない。より短いトラックレコードにもかかわらず、若いウォレットを検討すべき状況がある。
ウォレットの移行。 経験豊富なトレーダーが新しいウォレットを作成することがある。2ヶ月前に登場したが、ベテランの精度とサイジングパターンでトレードしているウォレットは、古いアドレスからの移行かもしれない。私たちのデータはコホートシステムでそのアドレスの累積PnLに基づいて分類するが、PnLの数字は移行以降のアクティビティしか捉えていないため、トレーダーの真のトラックレコードよりも低くなる。
市場レジームのシフト。 一部のウォレットはレンジ相場では休眠状態にあり、強いトレンド時にのみアクティブになる。3ヶ月間非アクティブだったが、過去のアクティブ期間からの全期間PnLが$800Kのウォレットは、死んだウォレットではない。選択的なトレーダーだ。再アクティブ化したとき、休眠期間中の直近PnLがゼロだったとしても、全期間PnLコホートは依然として適用される。
Hyperliquid初心者だが他では経験豊富。 中央集権取引所からHyperliquidに移行するトレーダーは、新しいウォレットとゼロのオンチェーン履歴から始める。年齢フィルターは最初は彼らを除外するが、これは正しい動作だ。CEXのトラックレコードをオンチェーンで検証することはできない。十分なHyperliquid固有の履歴を積み上げると、自然に適切なPnLコホートに昇格する。
年齢優先ウォレットフィルターを構築する
HyperTrackerのAPIは、全期間PnLリーダーボード、2025年4月まで遡るウォレットごとのトレード履歴、そすべてのアクティブなHyperliquidウォレットのコホート分類を提供する。リーダーボードをクエリし、履歴の深さを確認し、コピートレードパイプラインにウォレットを追加する前に直近のパフォーマンスを確認しよう。
年齢優先コピートレードフィルターのチェックリスト
- 全期間リーダーボードから始める。 累積PnLでランク付けされたウォレットを取得する。これが最初の候補プールだ。
- コホートゲートを適用する。 Money PrinterとSmart Moneyコホートを残す。Consistent Grindersは比重を下げて検討する。マイナスPnLコホートは完全に除外する。
- 履歴の深さを確認する。 そのウォレットが複数月にわたってトレードしており、PnLの数字が統計的に意味のあるものになるほど十分なトレード量があることを確認する。
- 直近PnLがプラスであることを確認する。 直近のウィンドウ(例:30日間)を確認する。アクティブなドローダウン中のベテランはウォッチリストへ。ドローダウンが終わったときに候補プールに戻ってくる。
- 継続的にモニタリングする。 今日4つのフィルターをすべて通過したウォレットも、来月は通過しないかもしれない。フィルターを毎週再実行し、直近の閾値を下回ったウォレットをローテーションアウトする。
年齢を優先し、直近を二番目に。それがサバイバーシップバイアスからあなたを守り、スキルと運を切り分け、一週間の好成績だけでなく長期的に機能するコピートレードパイプラインを構築する順序だ。