トレードが上手いウォレットをコピーしようとした話【2026年実証】
トレードが上手いウォレットをコピーしようとした話【2026年実証】
「勝ってるウォレットの建玉を追跡すれば勝てる」——この仮説を、Hyperliquidの公開APIで取得した直近90日・13ウォレット・1,406件のイベントデータで実際に検証しました。
結論から言います。再現不可能でした。
しかしこの「棄却されるプロセス」こそが価値ある1次情報です。なぜ失敗したのか、どこに本物のエッジがあったのか——データが語ったことを包み隠さず公開します。
✅ この記事でわかること
- スマートマネー追跡ロジックの設計から検証までの全工程
- 「net建玉を平均する手法」が実データで有意にマイナスになった理由
- エッジが「特定ウォレット個別」にしか存在しなかった実測値
- 37,721件のHyperliquidリーダーボードから候補選定する自動スクリプト
- 再現可能なバックテストコード一式(GitHub公開予定)
⚠️ 免責事項
本記事は自動売買ロジックの研究・検証過程を記録したものです。特定の投資手法を推奨するものではなく、掲載するコードや手法の有効性を保証しません。仮想通貨取引は元本を失うリスクを伴います。
出発点:「$100から運用できる自動売買ロジック」の設計
ベースとなったのは以下の5層アンサンブル設計でした:
| レイヤー | 内容 | 重み |
|---|---|---|
| ① スマートマネー | 勝ちウォレット50件のnet建玉方向 | 0.35 |
| ② テクニカル | EMA/RSI/ATR | 0.20 |
| ③〜⑤ その他 | 時間クセ・価格差・ファンディング | 各0.15 |
一見すると合理的に見えます。しかし「見えるかどうか」と「機能するかどうか」は別問題です。
4人の専門家が原案を解体した
実装前に各分野の専門知識の観点から原案を批判的に検討しました。その結果、5つのシグナルを対等合成するアプローチには根本的な問題があることが判明しました。
各専門家の核心的な批判
- OnChain専門家:「50件を平均したら、本物のアルファが凡庸なポジションに薄められる。追うべきは net 方向ではなく建て増しイベントと、そのアドレスの的中率だ」
- テクニカル専門家:「TAを0.20で合成するな。役割はエントリー方向を決めることではなく損切り位置とタイミングに限定すべき」
- アビトラ専門家:「z-score平均回帰は強気相場で死ぬ。リードラグ(先行venue→遅行HLへの順張り)だけを残せ」
- ファンディング専門家:「単独の逆張りシグナルとして弱い。保有コスト計算と利確タイミングの補正にだけ使え」
合意した結論:5シグナルを対等合成するのではなく「1トリガー+2フィルター+2補正」の階層型に再設計する。
└── スマートマネーの「新規建て増しイベント」FILTER 1:上位足トレンドと方向が一致するか(TA)
FILTER 2:厚いvenue(Bitget等)が先行しているか(Arb)
EXECUTION補正:ATRで損切り設計 + ファンディングで利確前倒し
実証フェーズ:Hyperliquidの公開APIで実データ検証
検証の設計
Hyperliquidは全アドレスの約定履歴(fills)が公開APIで取得可能です。これを使い、「建て増しイベント後の価格は統計的にその方向に動くのか」を直接測りました。
検証条件
| 対象期間 | 直近90日 |
| ウォレット数 | 13件(37,721件のリーダーボードから自動選定) |
| 対象コイン | BTC・ETH・SOL |
| 総イベント数 | 1,406件 |
| 建て増し定義 | 既存ポジションに対し20%以上の増し玉 or 新規建て |
| 計測指標 | イベント後1h/4h/12h/24hの方向調整済みリターン + t値 |
ウォレット候補の自動選定コード
Hyperliquidのリーダーボードは37,721件が公開されています。以下のフィルタで本物のアルファを持つ候補を絞り込みました:
# 選定フィルタ(生存バイアス対策)
MIN_ACCOUNT = $100,000 # 本気の資金規模
MAX_ACCOUNT = $10,000,000 # 巨鯨は値を動かすので追従困難
MIN_MONTH_ROI = 2% # 月ROI +2%以上
MAX_MONTH_ROI = 60% # +60%超は一発レバ勝ちの疑いで除外
# 週・月の両方でプラス(一方向相場への依存を排除)
# 結果:37,721件 → 20件に絞り込み
建て増しイベントの再構成コード
Hyperliquidのfillには dir フィールドがあり、「Open Long」「Open Short」「Close Long」「Close Short」で建て増しと手仕舞いを判別できます:
def classify_fill(fill):
d = fill.get("dir", "")
if d == "Open Long": direction = 1 # ロング建て増し
elif d == "Open Short": direction = -1 # ショート建て増し
else: return None # Close系は対象外
start = abs(float(fill.get("startPosition", 0)))
sz = abs(float(fill["sz"]))
increase_ratio = sz / (start + sz) # 既存ポジに対する増し率
is_fresh = (start == 0.0)
# 新規建て or 20%以上の増し玉のみイベントとして採用
if not is_fresh and increase_ratio < 0.20:
return None
return direction, {...}
🔴 結果①:原案の核心「net建玉追従」は有意にマイナス
全イベント1,406件を平均した結果
| 地平 | 件数 | 的中率 | 平均リターン | t値 | 判定 |
|---|---|---|---|---|---|
| 1時間後 | 1,406 | 45.5% | -0.089% | -5.54 | ❌ 有意に負 |
| 4時間後 | 1,406 | 45.9% | -0.077% | -2.86 | ❌ 有意に負 |
| 12時間後 | 1,406 | 45.7% | -0.169% | -3.90 | ❌ 有意に負 |
| 24時間後 | 1,406 | 48.0% | -0.009% | -0.12 | △ エッジなし |
対照群(ランダム時刻・ランダム方向・2,000回)のt値はほぼ0です。それに対してイベント追従は1h後でt=-5.54——これは「偶然ではなく、統計的に負ける方向に動いている」ことを意味します。
考えられる理由:優良ウォレットが建て増した時点で価格はすでに動いている(遅行)。かつ大口が仕込んだ後は一時的な逆風(利確・ヘッジ)が来やすい短期的な反動。「追いつく頃には旬が終わっている」という構造的な問題です。
🟢 結果②:エッジは「特定ウォレット個別」にのみ存在
全体平均は負でも、ウォレットを個別に測ると大きな差がありました:
| アドレス(省略) | n | 24h的中率 | 平均リターン | t値 | 評価 |
|---|---|---|---|---|---|
| 0x9e8c… | 98 | 60.2% | +0.37% | +2.38 | ✅ 追跡候補 |
| 0x6f19… | 304 | 51.0% | +0.47% | +2.93 | ✅ t値最強・最信頼 |
| 0x45ba… | 363 | 47.7% | -0.27% | -2.32 | 🔄 逆張り候補 |
| 0x6a02… | 47 | 48.9% | -0.79% | -2.46 | 🔄 逆張り候補 |
| その他9件 | — | 40〜49% | 各マイナス | -2〜+1 | 除外 |
最も重要な発見:統計的に有意な負のt値を持つウォレットが3件存在します。これらは「逆に動いたら勝てる可能性がある」フェード(逆張り)候補です。生存バイアスで正のウォレットは説明できても、負のウォレットはバイアスでは説明できない本物の発見です。
結果を正直に評価する:3つの留保
⚠️ この結果を鵜呑みにしてはいけない理由
- 生存バイアス:「今リーダーボードにいる勝者」の過去を見ている。正のウォレットは循環論法の疑いあり
- 多重検定:13件を検定すれば確率的に1〜2件はマグレで|t|>2が出る。n=98・n=304は信頼、n=13は要サンプル追加
- 単一相場:直近90日のみ。この期間が特殊な相場だった可能性を排除できない
今回の検証で得た確実な知見
| 知見 | 確信度 |
|---|---|
| 「全ウォレットのnet建玉を平均して追う」手法にエッジはない | ★★★★★ 棄却 |
| ウォレット間の差は巨大。「スマートマネー」という塊に意味はない | ★★★★★ |
| 一部ウォレットには「追う」エッジが、別の一部には「逆張り」エッジの兆候がある | ★★★★☆ |
| この結論はウォークフォワード(前半選定→後半検証)で初めて信頼できる | ★★★★★ |
次のステップ:ウォークフォワード検証
現在の結果はすべて「インサンプル(同じデータで選定と評価)」です。本当にエッジが存在するかを証明するには:
- 前半45日でウォレットを選定(的中率・t値でランク付け)
- 後半45日でそのウォレットの的中率を再測定
- 後半でもエッジが残れば本物。消えればマグレ。
この検証結果は次回記事で公開予定です。
実装ツール一式(再現可能)
今回使用したコードはすべてHyperliquidの公開API(認証不要)で動きます:
smart-money-edge/
├── config.py 検証パラメータ(追跡コイン・閾値等)
├── discover_wallets.py リーダーボード37,721件から候補を自動選定
├── hl_data.py fills/ローソク取得(429バックオフ付き)
├── events.py 建て増しイベント再構成(dir判定・増し率計算)
├── validate.py フォワードリターン計測・t検定・対照群
├── run.py 実証パイプライン一括実行
└── test_synthetic.py ロジック自己テスト(合成データで「真エッジ」「ノーエッジ」を識別)
# 自己テスト結果:
# [A] イベント抽出 ... OK
# [B] 真エッジ世界 ... 的中率100% t=48.75 → 正しく検出
# [C] ノーエッジ世界 ... 的中率50% t=-0.70 → 正しくエッジなしと判定
# [D] 集約トリガー ... OK
まとめ:失敗から何を学んだか
「スマートマネーを追えば勝てる」という仮説は、1,406件の実データで明確に棄却されました。しかしこの棄却プロセス自体が価値ある発見でした:
- エッジの検証ツール(統計的t検定・対照群比較)を構築した
- 37,721件のHyperliquidリーダーボードに自動アクセスするパイプラインを作った
- 「逆張り候補」という新しい仮説が生まれた
- 「5層対等合成→1トリガー+2フィルター+2補正」への設計改善につながった
仮想通貨自動売買で「机上の設計」から「実動するシステム」への距離は、このような検証プロセスを経ることで初めて埋まります。
📖 関連記事
