看懂 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 年初以前多半没有数据。把它当成「板块之间的相对走势」看,不要当成当年可投资的绩效。
以下是组合思路,不是验证过的结论:
| 搭配 | 为什么 |
|---|---|
| 板块轮动 + 巨鲸警报 | 板块告诉你哪一群在动,再用巨鲸警报看个别币的未平仓与成交量有没有异常放大。 |
| 板块轮动 + 市场情绪 | 板块是一群币的相对强弱,市场情绪是单一币的合约相对指数溢价,两者看的不是同一件事。 |
| 板块轮动 + 爆仓 | 板块短时间内翻红时,用爆仓指标确认是不是有一段强制平仓。 |