1. Preparação
O encontro abre medindo o preparo, com uma pergunta de Peer Instruction sobre o conteúdo desta seção. As três partes estão abaixo, e a trilha mínima diz por onde começar quando o tempo da semana não alcança todas.
Trilha mínima
| Prioridade | Item | Tempo | Para que serve no encontro |
|---|---|---|---|
| Indispensável | Autoestudo: Análise de uma ação em Python na prática | 45 min | preço, retorno e estatística descritiva em Python, o fluxo das duas práticas em dupla |
| Indispensável | Animações 1 e 2 desta seção | sem duração declarada | histograma e caudas do Bloco 4 e raiz do tempo do Bloco 5 |
| Indispensável | Autoverificação de cinco perguntas, sem nota | sem duração declarada | mostra ao aluno o que rever antes do encontro |
| Recomendado | Autoestudo: Risco e retorno: passado e prólogo | 70 min | base conceitual de retorno, prêmio de risco e desvio padrão |
| Aprofundamento | Leitura complementar: seção sobre prêmio de risco do autoestudo de risco e retorno | sem duração declarada | depois do encontro, relida com os números da cesta |
A trilha indispensável soma 45 min de autoestudo, mais as duas animações e a autoverificação; com o autoestudo recomendado, a soma de autoestudo chega a 115 min. Os tempos dos autoestudos são os da Adalove, fixos. As animações e a autoverificação não têm duração declarada; pelo contrato de vídeo do acervo, cada animação tem até 60 segundos. Nesta semana não há Atividade Ponderada. O A2 é a entrega avaliada da Sprint 2 e fica fora do preparo.
Autoestudos da semana
- Risco e retorno: passado e prólogo (70 min)
- Análise de uma ação em Python na prática (45 min)
Os dois estão na Adalove. O primeiro é a base conceitual de retorno, prêmio de risco e desvio padrão; o segundo replica em Python o fluxo de preço, retorno, estatística descritiva e gráfico para um ativo.
Animação 1: o histograma dos retornos da PETR4 se formando
O que observar: os 1.907 retornos diários da PETR4 entram em ordem cronológica. Repare em que momento as barras coral de março de 2020 aparecem, para onde elas vão e como a curva normal do fim se compara com o que ficou além das linhas de 3 desvios.
Animação 2: a dispersão crescendo com a raiz do tempo
O que observar: cada ponto é o desvio do retorno acumulado do BOVA11 em um horizonte de 1 a 63 pregões. Compare os pontos com a curva tracejada, que multiplica o desvio de um pregão pela raiz do horizonte, e pense no que aconteceria se a multiplicação fosse pelo horizonte inteiro.
Autoverificação, sem nota
- Dois pregões seguidos rendem r1 e r2. O retorno dos dois juntos é r1 + r2?
Resposta comentada
Não. Os retornos simples compõem: (1 + r1) x (1 + r2) - 1. Quem soma no tempo é o retorno logarítmico, porque ln(1 + r1) + ln(1 + r2) = ln((1 + r1)(1 + r2)). Na crise de 2020, somar os 47 retornos simples da PETR4 dá -34,19%, e o acumulado de fato foi -40,92%.
- Na animação 1, onde caem os pregões de março de 2020?
Resposta comentada
Nas duas caudas. Março de 2020 tem as maiores quedas e também as maiores altas do período: 12 dos 26 pregões da PETR4 além de 3 desvios são desse mês.
- Uma distribuição normal com a mesma média e o mesmo desvio da PETR4 preveria quantos
pregões além de 3 desvios? Quantos houve?
Resposta comentada
A normal preveria 5,1 pregões, e a PETR4 teve 26. As caudas reais são muito mais pesadas do que o desvio padrão sozinho sugere, e a pior queda, de -29,70%, fica a 12,06 desvios da média.
- Na animação 2, o desvio de 63 pregões do BOVA11 ficou perto de 63 vezes o desvio
diário ou de raiz de 63 vezes?
Resposta comentada
De raiz de 63 vezes: 11,80% medido contra 11,80% previsto pela raiz. Multiplicar o desvio diário de 1,49% pelo horizonte inteiro daria um risco várias vezes maior do que o observado. É por isso que a volatilidade anual usa raiz de 252.
- O retorno que mede quanto rendeu quem reinvestiu todos os proventos sai de qual
coluna, e com qual função do pandas?
Resposta comentada
Do Adj Close, a visão de preço escolhida na Aula 01, com
pct_change. Calcular sobre o Close ignora os proventos; calcular sobre o preço negociado cria saltos falsos nos desdobramentos e grupamentos.
2. Retorno simples e retorno logarítmico
O retorno simples de um pregão é a variação percentual do preço. O retorno logarítmico é o logaritmo natural da razão entre os dois preços:
retorno simples r = P_t / P_(t-1) - 1
retorno logarítmico l = ln(P_t / P_(t-1)) = ln(1 + r)
Para qualquer movimento diferente de zero, ln(1 + r) fica abaixo de r. Em pregões calmos a diferença é desprezível; em movimentos grandes ela pesa. Na queda de 09/03/2020, a pior da cesta inteira na janela, o retorno simples da PETR4 é -29,70% e o logarítmico é -35,24%, 5,54 pontos abaixo. Na alta de 13/03/2020, os dois valem 22,22% e 20,07%.
| Critério | Retorno simples | Retorno logarítmico |
|---|---|---|
| Vários pregões do mesmo ativo | compõe pelo produto de (1 + r) | soma direta |
| Vários ativos na mesma carteira | média ponderada pelos pesos | sem soma ponderada exata |
| Uso no módulo | risco e retorno da carteira de Markowitz (Aulas 03 e 04) | acumular no tempo e a raiz do tempo (animação 2) |
As duas medidas descrevem o mesmo pregão. A escolha depende da soma que a análise vai fazer: no tempo, o log soma; entre ativos de uma carteira, o simples soma ponderado pelos pesos. O A2 pode calcular as duas, desde que o ADR diga qual alimenta cada métrica.
3. A soma que erra de propósito
No Bloco 2 o deck soma os retornos simples da PETR4 entre 20/02/2020 e 30/04/2020 e compara com o acumulado do período. O erro é provocado de propósito.
| 47 pregões da PETR4, 20/02 a 30/04/2020 | Valor |
|---|---|
| Soma dos retornos simples | -34,19% |
| Acumulado de fato, produto de (1 + r) menos 1 | -40,92% |
| Soma dos retornos logarítmicos | -52,62% |
| ln(1 - 0,4092) | -52,62% |
A soma dos simples subestima a queda em 6,73 pontos. O motivo é a base de cálculo: cada retorno simples incide sobre o preço do pregão anterior. Na crise, quedas e altas fortes se alternaram, e uma alta que vem depois de uma queda incide sobre um preço já menor, recuperando menos reais do que a queda tirou. A soma trata cada percentual como se incidisse sobre o mesmo preço, e por isso enxerga uma recuperação que não aconteceu.
A soma dos logarítmicos acerta, mas acerta o log do acumulado: -52,62% é
ln(1 - 0,4092). Para voltar ao retorno acumulado, aplica-se a exponencial:
np.exp(soma_log) - 1. Confundir as duas escalas é o segundo erro mais comum
desta aula, e aparece quando alguém reporta -52,62% ao parceiro como perda do período.
Por que provocar o erro em vez de só mostrar a conta certa: a soma de percentuais é o que qualquer pessoa faz de cabeça, e o resultado errado parece plausível. Só a comparação lado a lado, com o número do próprio dado, deixa claro que a diferença não é arredondamento.
4. Retornos em pandas sem preencher às escondidas
precos = ajustado.ffill() # decisão do ADR da Aula 01
simples = precos.pct_change(fill_method=None).iloc[1:]
log = np.log(precos / precos.shift(1)).iloc[1:]
O .iloc[1:] descarta a primeira linha, que não tem pregão anterior e sai
vazia. O fill_method=None tem outro papel: em versões do pandas anteriores à
3.0, o padrão do pct_change era preencher ausências com o preço anterior antes
de calcular. Isso aplicava, sem aviso, uma decisão de ausências que o grupo já tomou e
registrou em ADR na Sprint 1. Declarar o argumento deixa o código com o mesmo resultado em
qualquer versão, inclusive a do Colab.
Com o preenchimento ativo por ativo, a GOLD11 fica com 1.423 retornos e os demais ativos com 1.907: o fundo só tem cotação a partir de 11/12/2020, e o ADR da Aula 01 não inventa preço antes da estreia. Médias e desvios usam os retornos presentes de cada ativo.
5. Desvio padrão, histograma e caudas
O desvio padrão mede o quanto os retornos se afastam da média. É a medida de risco do autoestudo de risco e retorno e a que o otimizador das próximas sprints vai usar. Ele descreve bem o pregão típico e mal o pregão extremo.
| PETR4, 1.907 retornos diários | Valor |
|---|---|
| Desvio padrão diário | 2,47% |
| Pior queda, 09/03/2020 | -29,70% |
| Distância da pior queda à média, em desvios | 12,06 |
| Pregões além de 3 desvios | 26 |
| O que a normal com a mesma média e desvio preveria | 5,1 |
| Desses 26, em março de 2020 | 12 |
| Curtose em excesso | 21,9 |
A curtose em excesso compara o peso das caudas com o da normal, que tem curtose em excesso zero. O valor de 21,9 confirma o que o histograma mostra: muitos pregões perto da média, poucos no meio do caminho e alguns muito longe. Dez das 15 piores quedas diárias da cesta, uma por ativo, caem em março de 2020.
Resposta à pergunta disparada do Bloco 4: o desvio padrão não diz qual foi a pior queda. Ele é uma média dos afastamentos ao quadrado, e um único pregão extremo some dentro de 1.907. Para falar de perda máxima, o A2 precisa mostrar o mínimo da série e o histograma, ao lado do desvio. A Aula 05 volta a esse ponto com o drawdown.
6. Anualização por 252 e raiz de 252
O ano da B3 tem cerca de 252 pregões, a convenção do mercado brasileiro. O retorno médio anual multiplica a média diária por 252. A volatilidade anual multiplica o desvio diário pela raiz de 252, que vale 15,87.
| PETR4 | Diário | Fator | Anual |
|---|---|---|---|
| Retorno médio | 0,1347% | 252 | 33,94% |
| Volatilidade | 2,4727% | raiz de 252 | 39,25% |
| Erro comum: desvio vezes 252 | 2,4727% | 252 | 623,12% |
Por que a raiz
Se os retornos de pregões diferentes são independentes, a variância da soma é a soma das variâncias. Um ano de 252 pregões tem 252 vezes a variância de um pregão, e o desvio, que é a raiz da variância, fica raiz de 252 vezes maior. A animação 2 mostra essa regra no BOVA11: em 21 pregões, 6,98% medido contra 6,81% previsto; em 63 pregões, 11,80% contra 11,80%.
Onde a regra perde precisão
Em horizontes mais longos, o desvio medido no BOVA11 fica abaixo do previsto: 12,68% contra 16,69% em 126 pregões, 15,70% contra 23,61% em 252. Dois motivos pesam. Sete anos e meio de amostra têm só sete janelas anuais sem sobreposição, então o desvio de 252 pregões é estimado com pouca informação. E a independência entre pregões é uma premissa: períodos de queda seguidos de recuperação, como 2020, reduzem a dispersão de longo prazo. A convenção da raiz de 252 continua sendo o padrão do mercado, e o ADR do grupo registra que é uma premissa.
Média anual e retorno composto
A média diária vezes 252 é uma média aritmética. O retorno logarítmico médio vezes 252 mede o crescimento composto, e fica abaixo dela, tanto mais quanto maior a volatilidade. Na PETR4, 33,94% contra 26,01%. Na MGLU3, a mais volátil da cesta, -9,45% contra -30,78%. O A2 deve dizer qual das duas está reportando.
7. Volatilidade em janela deslizante
A volatilidade da janela inteira resume sete anos e meio em um número. A janela deslizante recalcula o desvio anualizado a cada pregão, olhando para trás um número fixo de pregões.
vol_21 = simples["BOVA11"].rolling(21).std() * np.sqrt(252)
| Pico em 2020 | BOVA11 | PETR4 |
|---|---|---|
| 21 pregões, um mês | 124,44% em 06/04/2020 | 193,65% em 02/04/2020 |
| 63 pregões, um trimestre | 78,96% em 27/05/2020 | 121,15% em 25/05/2020 |
| 252 pregões, um ano | 43,81% em 23/12/2020 | 67,97% em 23/12/2020 |
| Janela inteira | 23,41% | 39,25% |
A janela curta reage primeiro e sobe mais, porque um único mês de crise ocupa a janela inteira. A janela longa demora a subir e demora a descer: a crise de março de 2020 só sai da janela de 252 pregões em 2021. A escolha da janela é uma decisão de projeto, e entra em ADR quando o grupo usar volatilidade móvel no A2.
8. A cesta contra o CDI
O CDI é a referência de retorno sem risco do case. O arquivo cdi_diario.csv
traz a taxa DI over em porcentagem ao dia, e o acumulado do período é o produto de (1 + taxa)
em cada dia útil, menos 1:
cdi = ler_csv("cdi_diario.csv", index_col="data", parse_dates=["data"])["valor"] / 100
acumulado = (1 + cdi.loc[inicio:]).prod() - 1
Na janela inteira, o CDI acumulou 100,17%, ou 9,51% ao ano. A comparação justa usa o mesmo período de cada ativo: a GOLD11, que estreia em 11/12/2020, é comparada com os 84,04% do CDI desde essa data.
Nove dos 15 ativos renderam menos que o CDI no mesmo período: ABEV3, BBAS3, BBDC4, BOVA11, EGIE3, ITUB4, MGLU3, RENT3 e SUZB3. O BOVA11, que replica o Ibovespa, acumulou 98,84%. A PETR4 teve o maior retorno total, 616,00%, e a MGLU3, com a maior volatilidade, 65,41% ao ano, teve o menor, -90,26%. A volatilidade da MGLU3 é 3,3 vezes a da GOLD11, a menor da cesta.
A tabela não sustenta "quem oscila mais rende mais". Volatilidade mede a dispersão dos retornos, sem prometer retorno. A relação entre risco e prêmio de risco, do autoestudo, vale para carteiras diversificadas ao longo de muitos anos; sete anos e meio de uma ação individual podem contrariá-la, como a MGLU3 mostra.
9. O mínimo de covariância para o A2
O A2 pede matriz de correlação com heatmap e matriz de covariância anualizada, e a Aula 03, em 10/11/2026, é quem ensina esse conteúdo. A pendência P5 do plano de ensino registra o descompasso, em decisão com a coordenação. Até lá, este é o mínimo para a entrega de 06/11/2026:
covariancia_anual = simples.cov() * 252 # anualiza como a variância
correlacao = simples.corr() # adimensional, não anualiza
- A diagonal da covariância anual é a variância anual de cada ativo, o quadrado da volatilidade anual da seção 6.
- A correlação vai de -1 a 1 e diz se dois ativos sobem e caem juntos, sem a escala de cada um.
- O heatmap da seção 7 do notebook basta como visualização. A leitura dos pares que concentram e dos que diversificam é o assunto da Aula 03.
10. Depois do encontro
Desafio do notebook
Repetir as métricas anualizadas com a decisão de ausências invertida, descartando as datas com ausência na cesta inteira, e medir quanto a volatilidade de cada ativo muda. O resultado entra no ADR da anualização do grupo, com o número antes e depois. A seção 8 do notebook traz o ponto de partida.
Avanço do A2
- SPEC.md com as interfaces do módulo de métricas e o plano de testes, com um caso usando os dados do grupo.
- Histogramas por ativo com média e desvio destacados, e a leitura escrita comparando a cesta.
- ADR da anualização por 252 e raiz de 252, com o impacto numérico.
O A2 vale 3 pontos. A review da Sprint 2 é em 06/11/2026, e a entrega vai até sexta, 06/11/2026, 23h59. As funções que o A2 entregar são importadas pelo motor de Monte Carlo do A3.
Leitura complementar
A seção sobre prêmio de risco do autoestudo de risco e retorno, relida com os números da cesta desta página. As demais fontes estão na página de referências.