Módulo 08 AdmTech · Computação · Semana 8 · 01/12/2026

Validação e Robustez do Modelo

Teste fora da amostra para o A4 e a Ponderada 2, Sprint 4

Logo Inteli

Agenda do encontro

BlocoMinutosTemaInteração que fecha o bloco
Daily15O que fiz, o que vou fazer, impedimentosestado do otimizador e janela de dados usada
10 a 15Resgate da fronteira da Aula 04Peer Instruction sobre o Sharpe prometido
215 a 30O otimizador converge para o passadopergunta disparada sobre o que faltou testar
330 a 45A janela de treino deslizaprevisão antes de mover o widget
445 a 60Backtest das duas carteiras ótimasdupla no notebook, seções 1 a 3
560 a 75Sensibilidade da fronteiraprevisão antes de perturbar a estimativa
675 a 90Estabilidade dos pesos e o ADRescolha coletiva de recomendações ao comitê
790 a 105Quiz e amarração com a Sprint 4quiz de três perguntas

Horários de relógio a confirmar na Adalove; os blocos contam do fim da daily.

Logo Inteli

Resgate da Aula 04

A Aula 04 deixou prontas as carteiras de variância mínima e de máximo Sharpe e a fronteira de 50 pontos, calculadas num notebook.

As duas carteiras foram escolhidas olhando só para o passado: retorno médio, covariância e CDI de uma janela de dados que já terminou.

OtimizadorSLSQP, pesos que somam 1, sem venda a descoberto
Entradaretorno esperado e covariância anualizados por 252
Saídapesos, retorno, volatilidade e Sharpe esperados

O comitê do parceiro vai aplicar esses pesos no ano seguinte. O que garante que eles funcionam lá?

Logo Inteli

Otimizado em 2023 e 2024, o máximo Sharpe promete 2,11

Carteira, treino 2023 e 2024Retorno esperadoVolatilidadeSharpeMaiores pesos
Máximo Sharpe32,05%9,51%2,11IVVB11 41,51%, GOLD11 21,06%, PETR4 17,40%, BBAS3 16,81%
Variância mínima20,77%7,46%1,17IVVB11 27,44%, GOLD11 22,58%, EGIE3 16,12%, BBAS3 8,24%

Cesta de referência de 15 ativos, Adj Close, 499 pregões de treino. CDI de 12,00% ao ano no treino como taxa livre de risco.

Logo Inteli

Verificação do preparo

A carteira de máximo Sharpe otimizada em 2023 e 2024 promete Sharpe 2,11. Aplicada em 2025, o que ela entrega?

  • Perto de 2,11: os pesos são ótimos
  • Menos, mas acima de 1
  • Sharpe negativo: rende menos que o CDI
  • Mais, porque o CDI subiu
  1. Votar sozinho, sem conversar.
  2. Discutir em dupla por dois minutos, defendendo o voto com a animação do drawdown da preparação.
  3. Votar de novo e só então revelar.

O otimizador converge para o passado

Treino, teste e a comparação entre esperado e realizado

Logo Inteli

O teste usa 250 pregões fora do treino

PeríodoDatasPregõesPara que serve
Treino02/01/2023 a 30/12/2024499estimar retorno e covariância e otimizar os pesos
Teste02/01/2025 a 30/12/2025250aplicar os pesos congelados e medir o realizado

A divisão é no tempo. Sortear pregões para o teste deixaria o treino enxergar dias posteriores a ele, e o resultado pareceria melhor do que o comitê vai ver.

Amostra (ADR-009). Janela comum dos 15 ativos desde 04/01/2021: 1.412 retornos até 31/08/2026. Em 24/10/2025, BOVA11, IVVB11 e GOLD11 ficaram sem cotação; o preço anterior é repetido, o retorno deles nesse dia é zero, e o pregão seguinte leva a variação dos dois dias.

Logo Inteli

O máximo Sharpe acumulou 10,96% em 2025

Antes de tocar: anote em que mês de 2025 cada carteira atinge a maior queda desde um pico, e qual das duas cai mais.

Logo Inteli

O máximo Sharpe prometeu 2,11 e entregou -0,32

CarteiraRetornoVolatilidadeSharpeDrawdown máximo
Máximo Sharpe, esperado32,05%9,51%2,11não medido no treino
Máximo Sharpe, realizado11,02%10,35%-0,32-8,49% em 08/04/2025
Variância mínima, esperado20,77%7,46%1,17não medido no treino
Variância mínima, realizado21,12%8,81%0,77-4,75% em 13/08/2025

No máximo Sharpe, a volatilidade foi de 9,51% para 10,35% e o retorno médio anualizado caiu de 32,05% para 11,02%, abaixo do CDI anualizado do teste, de 14,32%. Na variância mínima, o retorno quase acertou e a volatilidade subiu de 7,46% para 8,81%.

Que parte do resultado da Aula 04 o grupo ainda não tinha testado?

Logo Inteli

A janela de treino desliza 33 vezes

Antes de mover: quanto da carteira de máximo Sharpe troca de ativo quando a janela anda um mês?

Logo Inteli

Em 25 das 33 janelas o máximo Sharpe entregou menos que prometeu

Medida nas 33 janelasMáximo SharpeVariância mínima
Janelas com Sharpe entregue abaixo do prometido2514
Janelas que renderam menos que o CDI (Sharpe negativo)95
Sharpe prometido, mediana1,350,21
Sharpe entregue, mediana0,530,70
Carteira trocada de um mês para o seguinte, mediana11,91%3,23%
Carteira trocada de um mês para o seguinte, máximo32,32%7,88%

As 33 janelas se sobrepõem. Duas vizinhas compartilham 11 dos 12 meses de teste (91,60% dos pregões, na mediana), e um mesmo pregão entra no teste de até 12 janelas: os 8.231 pregões de teste somados são 915 pregões distintos.

Logo Inteli

Em anos disjuntos, o Sharpe falhou em 2 de 3

Ano de testeTreinoMáximo Sharpe, prometidoMáximo Sharpe, entregueVariância mínima, prometidoVariância mínima, entregue
202301/2021 a 12/20220,671,59-0,700,41
202401/2022 a 12/20231,39-0,25-0,291,09
202501/2023 a 12/20242,11-0,321,170,77
Abaixo do prometido2 de 3 anos1 de 3 anos

Por que 33 janelas não equivalem a 33 experimentos. Janelas que dividem 11 meses de teste medem quase o mesmo período, e o resultado de uma praticamente repete o da vizinha. Na base cabem só três anos de teste disjuntos, as janelas 1, 13 e 25, e são eles os experimentos independentes. Nas 12 escolhas possíveis de mês de partida para os blocos, o máximo Sharpe entrega menos que prometeu em pelo menos 2 blocos em todas.

Logo Inteli

O backtest congela os pesos do treino

def realizado(w, retornos_teste, cdi_teste):
    diario = retornos_teste.to_numpy() @ w
    diario = pd.Series(diario, retornos_teste.index)
    retorno = diario.mean() * 252
    vol = diario.std() * np.sqrt(252)
    rf = (1 + cdi_teste).prod() ** (252 / len(cdi_teste)) - 1
    patrimonio = (1 + diario).cumprod()
    queda = patrimonio / patrimonio.cummax() - 1
    return {"retorno": retorno, "vol": vol,
            "sharpe": (retorno - rf) / vol,
            "drawdown_max": queda.min()}

treino = retornos.loc["2023":"2024"]
teste = retornos.loc["2025"]
mu, cov = estimar(treino)
w = otimizar(mu, cov, cdi_anual(treino.index), "max_sharpe")
realizado(w, teste, cdi.reindex(teste.index))
Pesosvêm só do treino e não mudam durante o teste
Patrimôniocomeça em 1 e acumula o retorno diário da carteira
Drawdownqueda do patrimônio desde o maior valor anterior a cada dia
Taxa livreCDI das datas do próprio teste
Logo Inteli

Prática em dupla: o backtest fora da amostra

  1. Seções 1 a 3, com as células prontas: o condutor roda; o navegador lê a tabela de esperado contra realizado das duas carteiras.
  2. Confiram no gráfico da seção 3 o drawdown de -8,49% do máximo Sharpe.
  3. Aos 6 minutos, troquem de papel. O novo condutor audita o código: algum dado de 2025 entra na estimativa (look-ahead)? O CDI do teste é o comparador certo?
  4. ExtensãoSeção 4: meçam a sobreposição das 33 janelas e digam quantos experimentos independentes elas contêm.

Checagem aos 6 min: a tabela de esperado contra realizado está na tela e o drawdown foi conferido. Debrief: nos 3 minutos finais, cada dupla relata o problema de desenho que procurou e um número do A4 ainda não testado fora da amostra.

Abrir o notebook da Aula 05 no Colab

Sensibilidade da fronteira

Retorno esperado perturbado ou covariância de Ledoit-Wolf

Logo Inteli

Sensibilidade dos pesos a duas mudanças de estimativa

Antes de clicar: qual mudança mexe mais nos pesos, somar ou tirar 5 p.p. de cada retorno esperado ou trocar a covariância por Ledoit-Wolf?

Logo Inteli

No máximo Sharpe, 5 p.p. trocam 19,75%

Carteira trocada em relação à originalRetorno esperado ±5 p.p.Ledoit-Wolf
Máximo Sharpe19,75%1,91%
Variância mínima0,00%1,81%

O retorno esperado é a estimativa mais frágil. Com dois anos de treino, o erro padrão mediano do retorno anual de um ativo é 17,63%: a perturbação de 5 p.p. cabe folgada dentro dele. A PETR4 sobe de 17% para 27% da carteira. A variância mínima ignora o retorno esperado e fica igual.

Ledoit-Wolf mexe pouco aqui. Com 499 pregões e 15 ativos, o encolhimento ótimo é de 2,41%, e as duas carteiras mudam menos de 2%.

Logo Inteli

O máximo Sharpe troca 11,91% por mês

Antes de tocar: o ativo de maior peso na primeira janela continua no topo na última?

Logo Inteli

Entre biênios, 82,60% do máximo Sharpe muda

CarteiraTreino 2021 e 2022Treino 2023 e 2024Trocado
Máximo SharpePETR4 76,52%, VALE3 23,48%IVVB11 41,51%, GOLD11 21,06%, PETR4 17,40%, BBAS3 16,81%82,60%
Variância mínimaGOLD11 35,91%, EGIE3 27,06% e outrosIVVB11 27,44%, GOLD11 22,58%, EGIE3 16,12% e outros33,23%

A variância mínima troca menos porque não usa o retorno esperado, a estimativa mais frágil das duas. Recomendar o máximo Sharpe ao comitê inclui declarar a frequência de revisão dos pesos, com a carteira trocada e o custo que ela gera (slide seguinte).

Carteira trocada = metade da soma, ativo a ativo, da diferença absoluta entre os pesos. Zero é a mesma carteira; 100% é trocar tudo.

Logo Inteli

Reotimizar todo mês troca 156,87% ao ano

Máximo Sharpe, reotimizaçãoReotimizaçõesTrocado por reotimização, médiaTrocado por anoCusto por anoRetorno anual brutoRetorno anual líquido
Mensal4413,25%156,87%0,31 p.p.29,39%29,08%
Trimestral1522,69%87,50%0,18 p.p.25,93%25,76%
Anual458,75%48,54%0,10 p.p.20,77%20,68%

A 0,10% por operação, o custo tira 0,31 p.p. por ano da reotimização mensal, e o Sharpe passa de 0,92 para 0,90. A diferença de retorno bruto entre as três frequências vem de um único caminho de 915 pregões e não basta para recomendar uma delas ao comitê.

Premissa da simulação: custo de 0,10% sobre o valor negociado (compras mais vendas), sem custo na compra inicial; pesos constantes entre reotimizações; treino dos 24 meses anteriores; teste de 02/01/2023 a 31/08/2026.

Logo Inteli

Exemplo de ADR condicionado ao custo

# ADR 0010: Frequência de reotimização
Status: proposto, hipótese a validar

## Contexto
Máximo Sharpe de 2023-2024: prometeu
2,11 e entregou -0,32 em 2025.

## Decisão condicionada
Reotimizar todo mês, treino de 24
meses, se o custo for até 0,10%.

## Impacto numérico (01/2023 a 08/2026)
156,87% da carteira trocada por ano;
retorno anual de 29,39% bruto e
29,08% líquido, num só caminho.

Exercício com a cesta de referência, sem valor de recomendação prática. A decisão depende de duas condições: custo por operação na faixa declarada e a vantagem bruta da reotimização mensal se repetir em outros períodos de teste, o que um único caminho de 915 pregões não garante.

O ADR do grupo cita o resultado fora da amostra, a carteira trocada por ano e o retorno líquido da frequência escolhida, todos medidos nos dados do grupo.

Modelo de ADR do curso [8].

Logo Inteli

Prática em dupla: estabilidade e recomendação condicionada

  1. Seção 5: rodem a carteira trocada entre os treinos de 2021 e 2022 e de 2023 e 2024. Duplas ímpares leem o máximo Sharpe; duplas pares, a variância mínima.
  2. Aos 4 minutos, troquem de papel. O novo condutor escreve uma recomendação condicionada em duas linhas, "recomendamos ... se ...", com a carteira trocada medida.
  3. Leiam a recomendação para a dupla vizinha, que leu a outra carteira.
  4. ExtensãoDepois da aula, para o A4: o ADR completo no modelo do curso, com o custo da reotimização.

Checagem aos 4 min: a carteira trocada da carteira da dupla está anotada. Debrief: a escolha coletiva do slide seguinte julga recomendações ao comitê com as duas carteiras.

Logo Inteli

Recomendações ao comitê e o teste fora da amostra

1. O máximo Sharpe entrega Sharpe perto de 2 fora da amostra

  • Sustentada
  • Não sustentada

2. A variância mínima rendeu mais que o CDI em 2025

  • Sustentada
  • Não sustentada

3. Os pesos de máximo Sharpe podem ficar um ano sem revisão

  • Sustentada
  • Não sustentada

4. No máximo Sharpe, a volatilidade prevista errou menos que o retorno previsto

  • Sustentada
  • Não sustentada

Cada dupla decide antes do clique e defende a resposta com um número da aula.

Logo Inteli

Quiz de verificação

1. Por que as 33 janelas não equivalem a 33 testes?

  • Vizinhas dividem 11 dos 12 meses de teste
  • O treino de cada janela contém o teste
  • Cada janela usa outro otimizador

2. Quanto 5 p.p. no retorno esperado mudam a variância mínima?

  • 0,00%
  • 1,81%
  • 19,75%

3. Drawdown máximo de -8,49% em 2025 quer dizer

  • perda de 8,49% no ano
  • maior queda desde um pico
  • volatilidade de 8,49%
Logo Inteli

Notebook da aula

SeçãoO que entrega
1 e 2A cesta desde 2021 e o otimizador da Aula 04 com SLSQP
3 e 4O backtest de 2025, as 33 janelas deslizantes e os 3 anos de teste sem sobreposição
5 e 6A carteira trocada, o custo da reotimização a 0,10% por operação e a sensibilidade com Ledoit-Wolf
7Desafio: reotimizar em três janelas, medir quanto cada peso varia e escrever o que isso significa para o comitê

Notebook no GitHub · Abrir no Colab

Logo Inteli

Artefato A4 da Sprint 4

Critério do baremaPesoO que hoje já adiantou
Corretude da otimização30%as duas carteiras conferidas fora da amostra
Fronteira completa15%a fronteira da Aula 04, agora com a janela de dados declarada
Leitura analítica10%tabela das duas carteiras com o resultado fora da amostra
Integração10%o backtest consome o otimizador sem copiar código
Especificação e documentação15%caso de teste com a janela de treino e a de teste no SPEC.md
ADRs, nota individual20%o ADR da janela e do estimador, com o impacto numérico

A4 vale 3 pontos. Os pesos ótimos mudam com a janela, e o A4 comunica isso ao parceiro. Entrega até sexta, 04/12/2026, 23h59, com review no mesmo dia.

Logo Inteli

Ponderada 2 e a próxima aula

Ponderada 2A carteira ótima sobrevive fora da amostra? Individual, 3 pontos, com cesta e perfil de cliente definidos pelo último dígito do RA. Enunciado e barema na Adalove.
O que a aula cobredivisão em treino e teste, backtest das duas carteiras, drawdown, carteira trocada entre janelas
O que fica com vocêa cesta e o perfil do seu RA, a leitura dos números e a recomendação ao comitê
Aula 06, 16/12/2026React, FastAPI e interpretação com LLM sobre os números que o A4 calcula

Leitura complementar: Bodie, Kane e Marcus, capítulo 6, sobre risco de estimação [4].

Logo Inteli

Referências

  1. dados/README.md: snapshot do case, cesta de referência e ausências do provedor.
  2. LACHTERMACHER, G. Pesquisa operacional na tomada de decisões. 5. ed. LTC, 2016. cap. 7 e 8. Autoestudo: Os limites do otimizador: premissas, sensibilidade e risco de modelo.
  3. OUTSPOKEN MARKET. Simulação de Monte Carlo e drawdowns. YouTube. Vídeo do mesmo autoestudo.
  4. BODIE, Z.; KANE, A.; MARCUS, A. Fundamentos de investimentos. 9. ed. AMGH, 2014. cap. 6. Autoestudo: Atividade Ponderada 2: A carteira ótima sobrevive fora da amostra?
  5. MICHAUD, R. O. The Markowitz optimization enigma: is optimized optimal? Financial Analysts Journal, v. 45, n. 1, 1989.
  6. Banco Central, dados abertos do SGS: série 12, CDI.
  7. LEDOIT, O.; WOLF, M. Honey, I shrunk the sample covariance matrix. Journal of Portfolio Management, v. 30, n. 4, 2004.
  8. Modelo de ADR do curso.

Até 16/12/2026

Aula 06: Do Script ao Produto, React, FastAPI e Interpretação com LLM

Prof. José Romualdo