Como o mapa de calor de 51 setores é calculado, o que as cores significam e as três leituras que mais confundem.
No mesmo dia, alguns setores ficam todos verdes e outros todos vermelhos. Mas o setor inteiro está subindo ou é um líder só que o carrega? O mapa de calor compara 51 setores em sete janelas de tempo, e tanto as cores quanto os números vêm com condições: entenda como são construídos antes de ler as cores.
A rotação setorial é o mapa de calor de desempenho por setor da Blave: cada perpétuo da Binance com margem em USDT recebe um rótulo de setor, o movimento de cada setor é calculado em sete janelas de tempo e o resultado é desenhado como células sombreadas. As linhas são setores; as colunas são 1 hora, 8 horas, 24 horas, 3 dias, 7 dias, 30 dias e 90 dias.
O cálculo tem três passos:
| Passo | O que faz |
|---|---|
| 1. Rotular | Cada moeda recebe um setor de uma tabela mantida à mão. Medido em 2026-09-15: de 718 perpétuos em USDT, 707 encontraram rótulo e 11 não. |
| 2. Movimento por moeda | Pega os fechamentos de 5 minutos dos últimos 100 dias, calcula o retorno de cada candle e depois soma os retornos dentro da janela de tempo. |
| 3. Valor do setor | Faz a média dos movimentos dos membros, ponderada pelo valor nocional de interesse em aberto de cada moeda em USDT. Nem equiponderado nem por capitalização. |
Duas coisas para saber de saída. Primeiro, os setores não são excludentes: uma moeda pode estar em vários, por exemplo ETH em ETH e em Layer 1, ou SOL em Layer 1 e em SOL Eco. Segundo, a tabela não é só cripto: também estão os perpétuos de ações tokenizadas dos EUA e de Hong Kong, ETFs e commodities (ouro, prata, petróleo) listados na Binance, e eles refletem o preço desses contratos perpétuos, não a sessão nem o fechamento do mercado subjacente.
A tabela é mantida à mão e no último ano foi atualizada mais ou menos a cada um a três meses, então os membros de uma captura antiga não são necessariamente os de hoje.
É aqui que o mapa de calor é mais mal interpretado: passe por eles antes de olhar as cores.
Os valores de setor são ponderados pelo nocional de OI, e o OI é muito concentrado. Medido em 2026-09-15 16:15 UTC:
| Setor | Peso do maior membro no OI do setor |
|---|---|
| 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%) |
Quase quatro quintos da célula de Layer 1 são ETH. Para distinguir um movimento amplo de um movimento só do líder, abra a página de moedas do setor: a maioria dos membros em verde é um mercado bem diferente de apenas o primeiro em verde e o resto em vermelho.
É comum ouvir que o mapa de calor mostra dinheiro rotacionando entre setores. Ele não responde a isso: o cálculo não contém volume nem fluxos, apenas retornos de preço e o valor de interesse em aberto usado como peso. Preço subindo costuma vir com compra, mas não são a mesma coisa, e aqui nada separa dinheiro novo de recompra de vendidos.
São 13 degraus de cor e os limiares não são percentuais fixos. Uma volatilidade anual suposta é reescalada para cada janela de tempo, e os degraus ficam em 0.5, 1, 1.5, 2, 2.5 e 3 vezes esse número, com tudo acima de 3 no tom mais escuro. Então cada coluna tem seus próprios limiares:
| Janela de tempo | O tom mais claro começa perto de | O mais escuro (teto) perto de |
|---|---|---|
| 1 h | ±0.4% | ±2.4% |
| 24 h | ±2.0% | ±11.8% |
| 7 d | ±5.2% | ±31.2% |
| 30 d | ±10.8% | ±64.5% |
| 90 d | ±18.6% | ±111.7% |
Limiares da visão geral por setor, derivados das constantes da página e não medidos. A página de moedas supõe uma volatilidade maior, então seus limiares são cerca de 1.33 vezes os da tabela acima e o mesmo movimento é sombreado de forma diferente nas duas páginas.
Ler uma linha da esquerda para a direita compara o quanto um setor se afastou da sua própria normalidade em janelas de comprimentos diferentes, não o tamanho dos movimentos.
O movimento de um setor é construído somando retornos de 5 minutos, não com "preço atual ÷ preço de N dias atrás − 1". Nas moedas grandes e janelas curtas ou médias os dois são quase idênticos; em janelas longas divergem; em moedas pequenas muito voláteis e janelas longas se quebram.
Medido em 2026-09-15 16:15 UTC, nas moedas grandes a diferença é de um a dois pontos percentuais:
| Célula | Exibido | Retorno real | Diferença (real − exibido) |
|---|---|---|---|
| BTC 90 d | +16.40% | +15.88% | −0.52pp |
| BTC 30 d | +19.44% | +20.64% | +1.20pp |
Mas no mesmo instante a célula de 90 dias de uma moeda pequena dava −390%, algo que nenhum retorno real pode ser: é o que a soma faz numa janela longa e volátil.
Duas consequências práticas. O mapa de calor esconde isso, porque o sombreamento chega ao teto em três unidades de volatilidade. E a distorção entra na média do setor sempre que um membro distorcido tem peso relevante.
Mais um efeito empurra na mesma direção: o peso é o valor de OI atual, e esse valor se move com o preço. Uma moeda que acabou de subir recebe ao mesmo tempo um peso maior — é ponderar pelo resultado, e quanto mais longa a janela, mais isso aparece.
Então trate as colunas longas como uma ordenação do que está se movendo, não como números de retorno.
Nenhum dos três esboços abaixo tem por trás uma estratégia oficial nem um backtest: são pontos de partida que você precisa validar. Os dados vêm de GET /sector_rotation/get_overview_data (requer plano API), que devolve o movimento de cada setor nas sete janelas de tempo e a lista de membros.
O mapa de calor diz que o setor está subindo; a página de moedas diz quantos membros estão. Exigir ao mesmo tempo "setor positivo" e "mais da metade dos membros positivos" descarta o caso do líder sozinho.
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"
# o setor sobe em 24 h
sector_up = s["data"][tf]["pct_change"] > 0
# que proporção de membros sobe (amplitude)
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)) # verde com amplitude 0.3 = só o líder
Um setor vermelho em 30 dias e verde em 24 horas é uma forma do atrasado começando a se mover; verde intenso em 30 dias e vermelho em 24 horas é um líder esfriando. É uma leitura, não uma regra, e lembre da distorção acima: use os números de 30 e 90 dias apenas para ordenar.
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: # atrasado no longo prazo virando para cima
rows.append((name, short, long_))
rows.sort(key=lambda x: -x[1])
print(rows[:5])
Se você já roda uma estratégia em uma única moeda, pode acrescentar a condição "o setor da moeda está positivo numa janela curta" e aceitar entradas apenas quando o setor acompanhar. Não muda a lógica de entrada nem de saída, só reduz operações; se compensa tem que sair do seu próprio backtest, não da suposição de que um filtro sempre ajuda. O sentimento do mercado é outro filtro do mesmo tipo: lê o prêmio de uma única moeda frente ao índice, não a força relativa de um grupo.
def sector_ok(sectors, token, tf="8h"):
# uma moeda pode estar em vários setores; basta um ser positivo
for s in sectors.values():
if token in s["symbols"] and s["data"][tf]["pct_change"] > 0:
return True
return False
| Janela de tempo | Serve para | Atenção |
|---|---|---|
| 1 h, 8 h | Rotação intradiária, reação após um evento | O snapshot é atualizado a cada hora, então a coluna de 1 h pode atrasar até uma hora: não é cotação ao vivo |
| 24 h, 3 d | Ordenar a força na escala de swing | A faixa mais útil; aqui a distorção ainda é pequena |
| 7 d, 30 d | Tendência de médio prazo, onde um setor está | A distorção da soma aparece; use para ordenar |
| 90 d | Temas de longo prazo | A maior distorção, e os pesos são o OI de hoje; não leia como retorno |
Os exemplos aqui usam 24 h e 8 h porque são as colunas que mais se aproximam do retorno real e as que melhor batem com os horizontes que de fato se mantêm.
A página de histórico — um ano de retornos acumulados por setor em linhas — roda com outro cálculo: retornos diários compostos, os pesos de OI de hoje aplicados ao ano inteiro, apenas moedas que ainda existem (as deslistadas faltam na linha inteira) e os dias antes da listagem contados como 0%. Por isso setores novos começam planos; os de ações tokenizadas, por exemplo, quase não têm dados antes do início de 2026. Leia como movimento relativo entre setores, não como um desempenho que você poderia ter capturado.
São ideias de combinação, não resultados verificados:
| Combinar com | Por quê |
|---|---|
| Rotação setorial + Caçador de baleias | Os setores mostram qual grupo está se movendo; use o caçador de baleias para ver se o interesse em aberto e o volume de uma moeda específica estão anormalmente grandes. |
| Rotação setorial + Sentimento do mercado | Os setores são a força relativa de um grupo de moedas; o sentimento do mercado é o prêmio de uma única moeda frente ao índice: perguntas diferentes. |
| Rotação setorial + Liquidações | Quando um setor fica vermelho de repente, olhe o indicador de liquidação para ver se houve vendas forçadas envolvidas. |