Hierarchical Risk Parity (HRP): Montar Portfólio por Clusters, Sem Inverter Matriz

O HRP de Marcos López de Prado monta portfólio por clustering hierárquico e bisseção recursiva, sem inverter a matriz de covariância. Veja os 3 passos e a evidência de menor variância fora da amostra.

O número: No experimento de Monte Carlo de López de Prado (2016), o Hierarchical Risk Parity (HRP) entregou variância fora da amostra 72,47% menor que a otimização de mínima variância (CLA) — apesar de minimizar variância ser justamente o objetivo do CLA. O HRP consegue isso sem inverter a matriz de covariância: ele agrupa os ativos por correlação e distribui o risco por clusters. O custo é abrir mão da promessa (teórica) de ótimo do Markowitz, que quase nunca se realiza no mundo real.

Montar portfólio invertendo a matriz de covariância é frágil: pequenos erros de estimativa viram pesos absurdos, e a carteira “ótima” no backtest desmancha fora da amostra. O Hierarchical Risk Parity, proposto por Marcos López de Prado, troca a inversão da matriz por clustering hierárquico — uma ideia de machine learning aplicada à montagem de portfólio para algotrading. Ele dialoga diretamente com a paridade de risco clássica, expõe os limites da otimização de Markowitz, depende da estrutura de correlação entre os ativos e tem implicações para quem se preocupa com risco de cauda. Este guia abre os três passos do método e a evidência que o sustenta.

Por que Markowitz e mínima variância falham fora da amostra

Markowitz e a mínima variância falham fora da amostra porque amplificam o erro de estimativa ao inverter a matriz de covariância. A otimização de média-variância é, nas palavras de Stefan Jansen (2018), “muito sensível às estimativas” de retornos esperados e de covariância. O problema é que essas estimativas vêm de uma amostra finita de retornos ruidosos; ao inverter a matriz, o otimizador multiplica esse ruído e produz pesos extremos — comprado pesado em um ativo, vendido pesado em outro quase idêntico — que não sobrevivem ao período seguinte.

López de Prado batiza essa fragilidade de “maldição de Markowitz” (Markowitz curse): quanto mais correlacionados são os ativos — exatamente quando a diversificação seria mais necessária — mais instável fica a solução do otimizador. A inversão da matriz exige que ela seja bem-condicionada e invertível; com ativos muito correlacionados, ela fica quase singular, e a inversão explode. O resultado prático é conhecido: carteiras de média-variância e mínima variância frequentemente perdem fora da amostra para o 1/N ingênuo (peso igual), um benchmark difícil de bater documentado por DeMiguel, Garlappi e Uppal (2009).

Vale entender o mecanismo, porque ele é a razão de existir do HRP. Quando dois ativos têm correlação de, digamos, 0,95, a matriz de covariância tem duas linhas quase idênticas. Matematicamente, isso significa que ela está perto de não ter inversa (determinante perto de zero). O otimizador, ao calcular a inversa, encontra uma maneira “ótima” de explorar a minúscula diferença entre os dois ativos — tipicamente comprando muito de um e vendendo muito do outro para “cancelar” o risco comum. No papel, a variância despenca. Na prática, essa diferença minúscula era ruído de estimativa, não sinal; no período seguinte, ela muda de sinal, e a aposta alavancada que parecia perfeita vira prejuízo. Quanto maior o número de ativos em relação ao histórico disponível, pior: com 50 ativos e 60 meses de dados, há covariâncias demais para estimar com tão pouca informação, e o otimizador encontra “diversificações” que são puro overfitting da amostra.

Mais constrangedor: a mínima variância e a média-variância costumam perder até para regras que nem olham os dados. Por isso o 1/N é o teste de fogo de qualquer otimizador sério — se o seu método sofisticado não bate peso igual fora da amostra, ele não está adicionando informação, está adicionando ruído. O HRP nasce justamente da pergunta: dá para usar a estrutura da matriz de covariância sem cair na armadilha de invertê-la?

Dendrograma de ativos agrupados por correlação e barras de alocação por cluster, mostrando o HRP distribuindo risco sem inverter a matriz; callout compara concentração Markowitz 92,66% vs HRP 62,57%.

O que é o Hierarchical Risk Parity

O Hierarchical Risk Parity é um método de alocação que usa clustering hierárquico da matriz de correlação para distribuir risco sem nunca inverter a matriz de covariância. López de Prado o apresentou em “Building Diversified Portfolios that Outperform Out-of-Sample” (Journal of Portfolio Management, 2016, v. 42, p. 59–69). A ideia central: mercados financeiros têm estrutura hierárquica — ações de um mesmo setor se parecem entre si mais do que com ações de outro setor, e setores se agrupam em blocos maiores. A matriz de correlação crua ignora essa hierarquia e deixa os pesos variarem livremente, de formas não intencionais.

O HRP impõe a hierarquia antes de alocar. Em vez de tratar todos os ativos como concorrentes diretos por capital (o que a inversão faz), ele organiza os ativos numa árvore e só deixa “competir” quem está no mesmo galho. Por isso López de Prado descreve o HRP como tratar ativos correlacionados como complementos, não substitutos. E como nunca inverte nada, o HRP funciona até sobre uma matriz singular ou degenerada — uma tarefa impossível para qualquer otimizador quadrático.

Passo 1: clustering hierárquico (a árvore de ativos)

O primeiro passo transforma a matriz de correlação numa árvore de ativos por clustering hierárquico. O procedimento, conforme López de Prado (2016) e descrito por Jansen (2018), é:

  1. Definir uma distância a partir da correlação, de modo que ativos altamente correlacionados fiquem “perto” e ativos descorrelacionados fiquem “longe”. A distância usada é derivada da correlação (algo como distância = raiz de [(1 − correlação) / 2]).
  2. Aplicar clustering de ligação simples (single-linkage) sobre essas distâncias para encontrar quais ativos se unem primeiro, depois quais pares de grupos se unem, e assim por diante.
  3. O resultado é um dendrograma — uma árvore que mostra a hierarquia: os ativos mais parecidos no fundo, os blocos maiores no topo.

Esse é o coração “machine learning” do método: aprendizado não supervisionado descobrindo a estrutura latente dos retornos, sem rótulos e sem chutar setores à mão.

Passo 2: quasi-diagonalização (reorganizar a matriz)

A quasi-diagonalização reordena as linhas e colunas da matriz de covariância seguindo a árvore, agrupando os ativos parecidos lado a lado. Depois desse reordenamento, os maiores valores de covariância se concentram em blocos ao longo da diagonal — a matriz fica “quase diagonal”. Ativos que se movem juntos passam a ficar adjacentes; ativos pouco relacionados ficam distantes.

Isso não muda nenhum número da matriz, só a ordem. Mas a nova ordem é o que permite o passo 3 funcionar: ao caminhar pela árvore de cima para baixo, o HRP sempre divide grupos que fazem sentido econômico (todas as ações de tecnologia de um lado, todos os títulos de renda fixa do outro), em vez de cortes arbitrários. É a estrutura hierárquica entrando na conta sem precisar de inversão.

Passo 3: bisseção recursiva (a alocação de pesos)

A bisseção recursiva distribui o capital descendo a árvore de cima para baixo, dividindo o portfólio em sub-portfólios e alocando por variância inversa em cada divisão. O algoritmo:

  1. Começa com 100% do capital no portfólio inteiro.
  2. Divide o conjunto de ativos em dois sub-grupos, seguindo a árvore (a quasi-diagonalização garante que a divisão respeita os clusters).
  3. Calcula a variância de cada sub-grupo e reparte o capital entre os dois na proporção inversa da variância — o lado menos arriscado recebe mais.
  4. Repete recursivamente dentro de cada sub-grupo até sobrar um ativo só.

O peso final de cada ativo é o produto de todas as frações que ele recebeu no caminho do topo até a folha. Como a variância inversa é aplicada localmente, dentro de cada galho, o método reduz drasticamente os graus de liberdade e nunca produz aquelas apostas extremas e alavancadas da inversão de matriz. É paridade de risco, mas guiada pela hierarquia.

Repare no que isso muda na prática. Imagine três ações de tecnologia muito parecidas e um título de renda fixa descorrelacionado. Um otimizador ingênuo de variância inversa trataria os quatro no mesmo nível e daria peso a cada ação de tecnologia individualmente — somando, o bloco de tecnologia acabaria com peso desproporcional, porque há três ativos quase idênticos puxando capital. O HRP, ao dividir primeiro entre o cluster de tecnologia e o cluster de renda fixa, reparte o capital entre os dois blocos antes de descer aos ativos individuais. As três ações parecidas então dividem entre si a fatia do bloco de tecnologia, em vez de cada uma reivindicar sua própria fatia do bolo inteiro. É essa hierarquia que impede a concentração disfarçada — e é por isso que o HRP termina muito menos concentrado que o CLA no experimento de López de Prado.

A evidência: menor variância fora da amostra

A evidência central do HRP é variância fora da amostra menor que a do próprio otimizador de mínima variância. No experimento de Monte Carlo de López de Prado (2016), comparando o HRP com o CLA (Critical Line Algorithm de Markowitz) e com o portfólio de variância inversa (IVP):

  • A variância fora da amostra do CLA excedeu a do HRP em 72,47% — mesmo sendo a mínima variância o objetivo de otimização do CLA.
  • A variância do IVP ficou 38,24% maior que a do HRP.
  • O HRP melhorou o Sharpe fora da amostra de uma estratégia CLA em cerca de 31,3%.

Há também uma diferença gritante de concentração: no exemplo numérico do paper, o CLA colocou 92,66% do peso total nos cinco maiores ativos, enquanto o HRP alocou 62,57% ao mesmo grupo. Ou seja, o HRP diversifica de verdade. Jansen (2018) registra que, em testes do JPMorgan sobre vários universos de ações, o HRP produziu retornos ajustados ao risco e Sharpe iguais ou superiores à diversificação ingênua, aos portfólios de máxima diversificação e às carteiras de variância mínima global (GMV).

Quando o HRP ajuda (e quando o 1/N basta)

O HRP ajuda mais quando há muitos ativos, correlações altas e instáveis, e poucos dados de retorno em relação ao número de ativos — exatamente onde a inversão de matriz mais sofre. Em algotrading, é o caso típico de uma carteira de robôs correlacionados: dezenas de estratégias no mesmo símbolo ou em pares que co-movem, com histórico curto. Ali, a maldição de Markowitz morde forte e o HRP entrega a estrutura que a inversão destruiria.

Mas honestidade importa: quando o universo é pequeno e os ativos são pouco correlacionados, o 1/N (peso igual) costuma empatar ou bater qualquer otimização, e é imbatível em simplicidade e robustez. O HRP não promete retorno maior — promete risco mais bem distribuído e mais estável fora da amostra. Trate-o como ferramenta para domar correlação e cauda, não como gerador de alpha. E sempre valide em cenários de estresse e cauda: clustering protege contra concentração na média, não garante proteção num crash de correlação 1.

Há ainda três cuidados práticos que separam um HRP útil de um exercício de papel. Primeiro, a árvore depende da matriz de correlação estimada — se o histórico é curto ou contaminado por um regime específico, os clusters podem estar errados; rodar o HRP sobre janelas e checar a estabilidade dos agrupamentos vale o esforço. Segundo, a escolha do método de ligação (single-linkage, no paper original) e da métrica de distância afeta a árvore; variantes posteriores, como a de Raffinot (2016), usam outros critérios de clustering e podem agrupar de forma diferente. Terceiro, o HRP precisa de rebalanceamento, e cada rebalanceamento custa: como o método é mais estável que a inversão de matriz, os pesos tendem a mexer menos entre períodos — uma vantagem secundária que reduz custo de transação frente ao Markowitz, que reage a cada solavanco de estimativa.

Para quem opera dezenas de robôs, o caminho prático costuma ser: estimar a matriz de correlação dos retornos diários das estratégias, montar a árvore, ver se os clusters fazem sentido (robôs do mesmo par e mesma lógica deveriam cair juntos) e então deixar a bisseção recursiva repartir o capital. O resultado quase sempre é uma carteira menos concentrada do que a intuição entregaria à mão — e mais estável do que qualquer tentativa de otimizar pesos invertendo uma matriz de covariância estimada com histórico curto e ruidoso.

O HRP precisa inverter a matriz de covariância?

Não — essa é a sua principal vantagem. O HRP usa clustering hierárquico e bisseção recursiva, operações que só leem a matriz, nunca a invertem. Por isso ele funciona até sobre matrizes singulares ou mal-condicionadas, onde os otimizadores quadráticos (Markowitz/CLA) simplesmente falham ou explodem em pesos absurdos.

Qual a diferença entre HRP e risk parity tradicional?

A risk parity tradicional iguala a contribuição de risco entre ativos individuais, tratando todos no mesmo nível e ignorando a hierarquia. O HRP primeiro descobre os clusters de ativos parecidos (a árvore) e só então distribui risco galho a galho, tratando ativos correlacionados como complementos. Isso evita que vários ativos quase idênticos sequestrem o orçamento de risco.

O HRP rende mais que o Markowitz?

O HRP entrega menor variância e maior Sharpe fora da amostra, não necessariamente maior retorno bruto. López de Prado (2016) mostrou variância 72,47% menor que o CLA e Sharpe ~31,3% melhor em Monte Carlo. O ganho vem de estabilidade e diversificação, não de previsão de retorno — o HRP nem usa retornos esperados, só a estrutura de covariância.

Dá para usar HRP numa carteira de robôs de trading?

Sim, e é um dos casos onde mais brilha. Carteiras de robôs costumam ter muitas estratégias correlacionadas e histórico curto — terreno fértil para a maldição de Markowitz. O HRP agrupa robôs parecidos e impede que um cluster de estratégias quase idênticas domine a alocação, mantendo a diversificação efetiva mais alta que a inversão de matriz permitiria.

O HRP elimina o risco de cauda?

Não. O HRP reduz concentração e melhora a variância fora da amostra, mas clustering baseado em correlação histórica pode falhar num crash, quando as correlações convergem para 1. Combine o HRP com hedge de cauda explícito e teste de estresse; ele controla o risco médio melhor que a inversão de matriz, não a catástrofe rara.

Referências

Presente para Leitores: Robô de Gradiente Linear Gratuito

Estou liberando o acesso ao meu setup pessoal de Gradiente Linear sem custo nenhum. É só clicar e me pedir o arquivo.

Quero meu Robô Gratuito
🔒 Acesso Direto no WhatsApp
⚠️ Aviso de risco: O conteúdo do Invista Já é educacional e informativo sobre algotrading e estratégias quantitativas e não constitui recomendação ou consultoria de investimento, nem oferta ou solicitação de compra ou venda de qualquer ativo. Operações no mercado financeiro envolvem risco de perda, inclusive do capital investido, e resultados passados não garantem resultados futuros. Avalie seu perfil de risco e, se necessário, consulte um profissional certificado antes de investir.
Flavio Araújo
Flavio Araújo

Engenheiro com MBA em Mercado de Capitais e Derivativos. Atua há mais de 10 anos no Mercado Financeiro, com 6 anos dedicados ao Algotrading e estratégias quantitativas. Especialista em validação de robustez e automação de investimentos.

Artigos: 158