暗号資産セクターローテーションの使い方

51 セクターのヒートマップの計算方法、色の意味、そしてよくある三つの誤読。

最終更新 2026-09
要点まとめ
  • セクターローテーションは Binance の USDT 建て無期限 718 銘柄を、手作業で管理された分類表に従って 51 セクターに分けます。セクターの騰落=構成銘柄の騰落を建玉名目価値(OI)で加重平均した値です。
  • ウェイトは偏っています。Layer 1 では ETH が 78.6%、SOL Eco では SOL が 73.5%(2026-09-15 16:15 UTC 時点の計測)。セクターが緑になっても、実際は主力銘柄だけが上げていることが多いのです。
  • 測っているのは価格であって資金ではありません。データに出来高も流入・流出もなく、あるのは OI で加重した騰落だけです。
  • 色は「想定ボラティリティ」に対する段階なので、列ごとにしきい値が違います。最も薄い緑は 1 時間の列で約 +0.4%、90 日の列では約 +18.6% です。同じ緑でも列が違えば同じ上昇幅ではありません。
  • 現時点でセクターローテーションを使う公式戦略はありません。本記事の使い方はいずれも例示であり、バックテスト済みのルールではありません。

同じ日でも、あるセクターは一面の緑、別のセクターは一面の赤になります。では、セクター全体が上げているのか、それとも一つ二つの主力銘柄が引き上げているだけなのか。このヒートマップは 51 のセクターを 7 つの時間軸で比べますが、その色も数字も前提つきです。色を読む前に、まず計算方法を理解しましょう。

セクターローテーションとは?

セクターローテーションは Blave のセクター別パフォーマンス・ヒートマップです。Binance の USDT 建て無期限契約の各銘柄にセクターのラベルを付け、セクターごとの騰落を 7 つの時間軸で計算し、色の濃淡で一覧にします。縦軸はセクター、横軸は 1 時間・8 時間・24 時間・3 日・7 日・30 日・90 日です。

計算は三段階です。

ステップ何を計算するか
1. 分類各銘柄に、手作業で管理された分類表からセクターのラベルを付けます。2026-09-15 の計測では、718 の USDT 無期限のうち 707 銘柄がラベルに一致し、11 銘柄は一致しませんでした。
2. 銘柄の騰落直近 100 日分の 5 分足終値を取り、各足のリターンを計算したうえで、その時間軸に含まれるリターンを合計します。
3. セクター値構成銘柄の騰落を、各銘柄の建玉名目価値(OI、USDT 建て)で加重平均します。等ウェイトでも時価総額加重でもありません。

先に知っておくべきことが二つあります。第一に、セクターは排他的な分類ではありません。一つの銘柄が複数のセクターに属することがあり、たとえば ETH は ETH と Layer 1 の両方に、SOL は Layer 1 と SOL Eco の両方に入ります。第二に、分類表は暗号資産だけではありません。Binance に上場しているトークン化された米国株・香港株・ETF・コモディティ(金、銀、原油など)の無期限契約も含まれており、これらが映すのはその無期限契約の価格であって、原市場の取引時間や終値ではありません。

分類表は手作業で管理されており、直近 1 年ではおよそ 1〜3 か月に一度更新されています。古いスクリーンショットの構成銘柄が現在と同じとは限りません。

色を読む前に確かめる三つのこと

ヒートマップの読み違いは、ほとんどこの三点から生まれます。色を見る前に一度確認してください。

1. セクターが緑でも、セクター全体が上げているとは限らない

セクター値は OI 名目価値による加重であり、その OI は各セクター内で大きく偏っています。2026-09-15 16:15 UTC 時点の計測:

セクター最大構成銘柄が占める当該セクター OI の比率
Layer 1ETH 78.6% (SOL 10.9%)
SOL EcoSOL 73.5%
YieldBTW 78.5%
MemeDOGE 30.2%
AIWLD 17.0% (TAO 15.8%)

Layer 1 のセルの色は、その八割近くを ETH が決めています。「セクター全体」なのか「主力銘柄だけ」なのかを見分けるには、セクターをクリックして銘柄ページを開いてください。同じセクターで大半の銘柄が緑なのと、首位だけ緑で残りが赤いのとでは、まったく別の相場です。

2. 測っているのは価格であって資金ではない

「資金がセクター間を移動している」という説明をよく耳にします。しかしこのヒートマップはそれに答えられません。計算には出来高も資金の流入・流出も含まれず、あるのは価格の騰落と、ウェイトとして使う建玉価値だけです。価格上昇には通常買いが伴いますが、両者は同じものではなく、新規資金の流入なのか売り方の買い戻しなのかをこの図から見分けることはできません。

3. 同じ緑でも、列が違えば同じ上昇幅ではない

色は 13 段階あり、しきい値は固定のパーセンテージではありません。想定年率ボラティリティを各時間軸に換算し、その 0.5・1・1.5・2・2.5・3 倍で段階を区切り、3 倍を超えると一律で最も濃い色になります。したがって列ごとに実際のしきい値が異なります。

時間軸最も薄い段階の目安最も濃い色(上限)の目安
1 時間±0.4%±2.4%
24 時間±2.0%±11.8%
7 日±5.2%±31.2%
30 日±10.8%±64.5%
90 日±18.6%±111.7%

セクター総覧ページのしきい値で、ページ内の定数から換算したものです。計測値ではありません。銘柄ページは想定ボラティリティが大きいため、しきい値は上表の約 1.33 倍となり、同じ上昇幅でも 2 つのページで色の濃さが変わります。

行を横に読むのは、「そのセクターが長さの違う窓のなかで、それぞれの平常時に比べてどれだけ動いたか」を比べることであって、上昇幅の大きさを比べることではありません。

色を読む前に三つ確認:このセルの OI は首位銘柄がどれだけ占めているか?見ているのは価格か、それとも資金か?この緑はどの列の緑か?三つの答えのどれでも、同じ緑の意味が変わります。

ヒートマップの数字はどこから来るのか?

セクター値の材料は 5 分足リターンの合計であり、「現在価格 ÷ N 日前の価格 − 1」ではありません。主要銘柄の短中期ではほぼ一致しますが、長期ではずれが生じ、値動きの荒い小型銘柄の長期では大きく歪みます。

2026-09-15 16:15 UTC の実測では、主要銘柄の差は 1〜2 パーセントポイントでした。

セル表示値実際のリターン差(実際 − 表示)
BTC 90 日+16.40%+15.88%−0.52pp
BTC 30 日+19.44%+20.64%+1.20pp

ところが同じ時点で、ある小型銘柄の 90 日のセルは −390% と算出されました。実際のリターンが −100% を下回ることはありえません。これが、荒い値動きの長い窓で合計を取ったときに生じる歪みです。

実務上の影響は二つあります。一つは、色が想定ボラティリティの 3 倍で上限に達するため、ヒートマップ上では歪みが見えないこと。もう一つは、歪んだ銘柄がそれなりのウェイトを持つと、その歪みがセクター平均にそのまま持ち込まれることです。

同じ方向に働く効果がもう一つあります。加重に使うのは現時点の建玉価値であり、OI 価値そのものが価格の上下で変動します。直近で大きく上げた銘柄は、同時にウェイトも大きくなります。つまり結果で後から加重していることになり、時間軸が長いほど影響が目立ちます。

ですから長い時間軸の列は、「どのセクターが動いているか」の順位の手がかりとして使い、リターンの数字としては読まないでください。

戦略にどう組み込むか

以下の三つの使い方には、いずれも公式戦略もバックテストもありません。あくまで出発点なので、使うなら自分で検証してください。データは GET /sector_rotation/get_overview_data から取得し(API プランが必要)、各セクターの 7 つの時間軸の騰落と構成銘柄の一覧が返ります。

1. 先に広がりを見てから追随を決める

ヒートマップはセクターが上げていることを示し、銘柄ページは構成銘柄のうち何割が上げているかを示します。「セクターがプラス」と「構成銘柄の過半数がプラス」を二つの条件にすれば、主力銘柄だけが強いケースを除けます。

import requests
r = requests.get("https://api.blave.org/sector_rotation/get_overview_data", headers=hdrs)
sectors = r.json()["data"]
s = sectors["Layer 1"]
tf = "24h"
# セクターの 24 時間はプラスか
sector_up = s["data"][tf]["pct_change"] > 0
# 構成銘柄のうちプラスの割合(広がり)
ups = [t for t in s["symbols"].values() if t["data"][tf]["pct_change"] > 0]
breadth = len(ups) / len(s["symbols"])
print(sector_up, round(breadth, 2))  # 緑でも広がり 0.3 → 主力銘柄だけ

2. 長短の乖離をローテーション候補とみなす

あるセクターが 30 日では赤、24 時間では緑という形は、「出遅れセクターが動き始めた」ときの一つの形です。逆に 30 日が濃い緑で 24 時間が赤なら、強かったセクターが冷めつつある形です。これは読み方の仮説であってルールではありません。前節の歪みにも注意してください。30 日以上の数字は順位付けにのみ使いましょう。

short_tf, long_tf = "24h", "30d"
rows = []
for name, s in sectors.items():
    short = s["data"][short_tf]["pct_change"]
    long_ = s["data"][long_tf]["pct_change"]
    if short > 0 and long_ < 0:          # 長期は出遅れ、短期は上向き
        rows.append((name, short, long_))
rows.sort(key=lambda x: -x[1])
print(rows[:5])

3. 個別銘柄シグナルのフィルターにする

すでに単一銘柄で動かしている戦略があるなら、「その銘柄が属するセクターの短期がプラス」という条件を加え、セクターが同じ向きのときだけエントリーシグナルを受け入れる、という使い方ができます。元の戦略の売買ロジックは変えず、取引回数を減らすだけです。それが割に合うかどうかは自分のバックテストで比べる必要があり、フィルターを足せば良くなると決めつけてはいけません。同じ種類のフィルターには市場センチメントもあります。こちらは一群の銘柄の相対的な強弱ではなく、単一銘柄の指数に対するプレミアムを見ます。

def sector_ok(sectors, token, tf="8h"):
    # 1 銘柄が複数セクターに属しうる。いずれかがプラスなら通過
    for s in sectors.values():
        if token in s["symbols"] and s["data"][tf]["pct_change"] > 0:
            return True
    return False

どの時間軸を選ぶか?

時間軸向いている用途注意点
1 時間・8 時間当日のローテーション、イベント後の反応スナップショットは 1 時間ごとの更新なので、1 時間の列は最大で約 1 時間遅れます。リアルタイム相場ではありません
24 時間・3 日日中からスイングまでの強弱の順位付け最も実用的な範囲。この長さなら歪みはまだ小さい
7 日・30 日中期トレンド、セクターの相対的な位置合計による歪みが出始める。順位付けに使う
90 日長期テーマ歪みが最も大きく、ウェイトも今日の OI。リターンとして読まないこと

本記事の例が 24 時間と 8 時間を使うのは、この二つの列の数字が実際のリターンに最も近く、実際に保有する期間とも対応しやすいからです。

履歴ページ(セクター累積リターンの 1 年折れ線)は、また別の計算です。日次リターンを複利で積み上げ、1 年分の線すべてに今日の OI ウェイトを使い、構成銘柄は現在も存在する銘柄のみ(上場廃止銘柄は線の全期間で不在)、上場前の日は 0% リターンとして扱います。そのため新しいセクターの前半は横ばいの直線になります。たとえばトークン化米国株のセクターは、2026 年初より前のデータがほとんどありません。これは「セクター間の相対的な動き」として読み、当時実際に取れた成績としては読まないでください。

どの指標と組み合わせる?

以下は組み合わせの考え方で、検証済みの結論ではありません。

組み合わせ理由
セクターローテーション + ホエールハンターセクターはどの一群が動いているかを示します。ホエールハンターで個別銘柄の建玉と出来高が異常に膨らんでいないかを確認しましょう。
セクターローテーション + 市場センチメントセクターは一群の銘柄の相対的な強弱、市場センチメントは単一銘柄の指数に対するプレミアムで、見ているものが違います。
セクターローテーション + 清算セクターが短時間で赤に転じたときは、清算指標で強制決済が絡んでいたかを確認できます。
セクターローテーションは参考データであって、売買シグナルではありません。この図は Binance 無期限の価格と建玉価値だけから算出しており、現物も他の取引所も含みません。セクターは手作業で管理された分類表で決まり、時間とともに変わります。長い時間軸の数字には、合計と加重による歪みが含まれます。履歴ページには生存者バイアスもあります。上場廃止になった銘柄はデータに含まれないため、過去の線は実際より良く見えます。