看懂 51 個板塊的熱圖怎麼算出來、顏色代表什麼,以及三個最常見的誤讀。
同一天,有的板塊整片綠、有的整片紅。但你怎麼知道是整個板塊在漲,還是一兩個龍頭把它拉上去?板塊輪動這張熱圖把 51 個板塊放在 7 個時間框裡比較,而它的顏色和數字都有前提——先看懂怎麼算的,再看顏色。
板塊輪動(Sector Rotation)是 Blave 的板塊表現熱圖:把 Binance USDT 本位永續合約的每個幣貼上板塊標籤,再算出各板塊在 7 個時間框內的漲跌,用顏色深淺畫成一張表。縱軸是板塊,橫軸是 1 小時、8 小時、24 小時、3 天、7 天、30 天、90 天。
計算分三步:
| 步驟 | 算的是什麼 |
|---|---|
| 1. 分類 | 每個幣依人工維護的分類表貼上板塊標籤。2026-09-15 量測:718 個 USDT 永續中,707 個對得到標籤、11 個沒有。 |
| 2. 單幣漲跌 | 取近 100 天的 5 分鐘收盤價,算出每根 5 分鐘的報酬,再把時間框內的報酬加總。 |
| 3. 板塊值 | 把成員的漲跌用各自的未平倉名目價值(OI,以 USDT 計價)加權平均。不是等權、也不是市值加權。 |
兩件要先知道的事。第一,板塊不是互斥分類:一個幣可以同時屬於多個板塊,例如 ETH 同時在 ETH 與 Layer 1、SOL 同時在 Layer 1 與 SOL Eco。第二,板塊表不只有加密貨幣:Binance 上掛的代幣化美股、港股、ETF、商品(如黃金、白銀、原油)永續也在裡面,它們反映的是這些永續合約的價格,不是原市場的交易時段與收盤價。
分類表是人工維護的,近一年大約每 1 到 3 個月更新一次,所以舊截圖裡的板塊成分不一定等於現在。
這三點是把熱圖讀錯的主要來源,看顏色之前先過一次。
板塊值是 OI 名目價值加權,而 OI 在各板塊裡高度集中。2026-09-15 16:15 UTC 的量測:
| 板塊 | 最大成員佔該板塊 OI 的比重 |
|---|---|
| Layer 1 | ETH 78.6% (SOL 10.9%) |
| SOL Eco | SOL 73.5% |
| Yield | BTW 78.5% |
| Meme | DOGE 30.2% |
| AI | WLD 17.0% (TAO 15.8%) |
Layer 1 那一格的顏色,有將近八成是 ETH 決定的。要判斷是「整個板塊」還是「龍頭獨強」,點進板塊看代幣頁:同一個板塊裡多數幣都綠,跟只有第一名綠、其餘偏紅,是兩種完全不同的行情。
常聽到的說法是「資金在板塊之間流動」。這張圖不能回答那件事——計算裡沒有成交額、沒有資金流入流出,只有價格漲跌和作為權重的未平倉價值。價格漲通常伴隨買盤,但兩者不是同一件事,也沒有辦法從這張圖分辨是新資金進場還是空單回補。
顏色是 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 倍,所以同一個漲幅在兩頁的顏色深淺會不同。
橫著看同一列,是在比「這個板塊在不同長度的窗口裡,相對各自的常態走得多遠」,不是在比漲幅大小。
板塊值的原料是 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 個時間框的漲跌,以及成員清單。
熱圖告訴你板塊在漲,代幣頁告訴你有多少成員在漲。把「板塊為正」和「成員過半為正」當成兩個條件,可以濾掉龍頭獨強的情況。
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 → 只是龍頭在漲
一個板塊 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])
如果你已經有一支在單一幣上跑的策略,可以把「所屬板塊短週期為正」當成額外條件,只在板塊同向時才接受進場訊號。這種用法不改變原策略的進出場邏輯,只減少交易次數——是否划算要用你自己的回測比較,不能假設加了濾網就會更好。另一種同類的濾網是市場情緒:它看的是單一幣的合約溢價,不是一群幣的相對強弱。
def sector_ok(sectors, token, tf="8h"):
# 一個幣可能屬於多個板塊,任一板塊為正就算通過
for s in sectors.values():
if token in s["symbols"] and s["data"][tf]["pct_change"] > 0:
return True
return False
| 時間框 | 適合看什麼 | 注意 |
|---|---|---|
| 1 小時、8 小時 | 當天的輪動、事件後的反應 | 快照每小時更新一次,1 小時欄最多落後約一小時,不是即時報價 |
| 24 小時、3 天 | 日內到波段的強弱排序 | 最實用的區間,失真在這個長度還很小 |
| 7 天、30 天 | 中期趨勢、板塊的相對位置 | 加總失真開始出現,當排序用 |
| 90 天 | 長期主題 | 失真最大,且權重用的是今天的 OI;不要當報酬讀 |
本文的例子都用 24 小時與 8 小時,因為這兩欄的數字和真實報酬差距最小,也最常對應到你實際會持有的時間長度。
至於歷史頁(板塊累積報酬的一年折線圖),它是另一套算法:日報酬複利累乘,整條線都用今天的 OI 權重,成員只有現在還在的幣(已下架的幣整段不在),上市前的日子當成 0% 報酬。所以新板塊的前段會是平線——例如代幣化美股類的板塊,2026 年初以前多半沒有資料。把它當成「板塊之間的相對走勢」看,不要當成當年可投資的績效。
以下是組合思路,不是驗證過的結論:
| 搭配 | 為什麼 |
|---|---|
| 板塊輪動 + 巨鯨警報 | 板塊告訴你哪一群在動,再用巨鯨警報看個別幣的未平倉與成交量有沒有異常放大。 |
| 板塊輪動 + 市場情緒 | 板塊是一群幣的相對強弱,市場情緒是單一幣的合約相對指數溢價,兩者看的不是同一件事。 |
| 板塊輪動 + 爆倉 | 板塊短時間內翻紅時,用爆倉指標確認是不是有一段強制平倉。 |