Módulo 08 AdmTech · Computação · Semana 2 · 20/10/2026

Aquisição de Dados de Mercado

Coleta confiável e reproduzível para o A1, Sprint 1

Logo Inteli

Prof. José Romualdo

JR

José Romualdo Costa Filho

Professor de Computação do Módulo 08 AdmTech

Formação Análise e Desenvolvimento de Sistemas (Uninove), especialização em Governança de TI
Trajetória Desenvolvimento e arquitetura de software no Itaú BBA, na Infraero, na Atento e na Liq, com foco em pesquisa e inovação
No Inteli Computação: coleta, risco e retorno, simulação, otimização e o produto com LLM
Como ensino Conceito antes de ferramenta. IA entra como apoio em todas as sprints e como produto na última
Logo Inteli

Combinados de participação e entregas

ItemRegraPrazo
Participação Nota concedida pelo professor a contribuições relevantes, aderentes ao módulo e ao problema do parceiro: contestar um número com dado, propor um tratamento, explicar o código do grupo em cada encontro
Autoestudo em sala Entregue na Adalove até o fim da instrução
Autoestudo para casa Entregue na Adalove sexta, 23h59
Artefatos Repositório do grupo com SPEC.md, README e ADRs; o notebook roda do zero sem editar código sexta, 23h59
Uso de IA Permitido. O ADR individual, com o número medido nos dados do grupo e commits ao longo da sprint, mostra a autoria ADRs: 20% de cada artefato
Logo Inteli

Agenda do encontro

BlocoMinutosTemaInteração que fecha o bloco
Daily15O que fiz, o que vou fazer, impedimentosacesso ao Colab, ao repositório e a dados/
10 a 15O parceiro, a ferramenta e as cinco entregasPeer Instruction sobre o end do yfinance
215 a 30Três visões do mesmo preçoprevisão antes da animação da MGLU3
330 a 45Desdobramento da B3SA3 e proventos da PETR4escolha coletiva de quatro perguntas
445 a 60Um coletor que outra pessoa consegue rodardupla no notebook, seções 1 e 2
560 a 75Ausências reais do provedorque número o grupo registra no ADR
675 a 90Descartar ou preencher, e o primeiro ADRdupla no notebook, seções 3 e 4
790 a 105Quiz e amarração com a Sprint 1quiz de três perguntas

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

Logo Inteli

Onde alocar o excedente de caixa do parceiro

O módulo constrói uma ferramenta de simulação de carteira eficiente: o gestor informa os ativos, a ferramenta calcula a Fronteira Eficiente de Markowitz e explica o resultado em português.

A análise se sustenta em dados públicos e verificáveis, coletados pelo próprio grupo, com cada decisão de tratamento documentada.

Basehistórico de preços convertido em retornos diários
ReferênciasCDI como taxa livre de risco, Selic como ciclo, IPCA como régua de retorno real
Decisãoos gestores definem a tolerância a risco e o otimizador devolve a carteira

Nenhuma análise das próximas sprints é melhor do que os dados que o A1 coletar hoje.

Logo Inteli

Entregas de Computação por sprint

  1. A1

    Coletor e Processador de Dados de Mercado

    Sprint 1 · peso 3

  2. A2

    Módulo de Análise de Risco e Retorno Individual

    Sprint 2 · peso 3

  3. A3

    Motor de Simulação de Monte Carlo

    Sprint 3 · peso 3

  4. A4

    Otimizador de Carteira com Fronteira Eficiente

    Sprints 3 e 4 · peso 3

  5. A5

    Simulador Interativo integrado à interface e Interpretação por LLM

    Sprint 5 · peso 2

Em todo artefatoPeso no baremaNota
A ferramenta funcionando, com os critérios de cada sprint65%grupo
Especificação e documentação: SPEC.md antes de codar, README, docstrings15%grupo
ADRs com o impacto numérico da decisão, por autoria de commit20%individual

Pesos da Adalove. Ponderadas individuais de 3 pontos nos autoestudos das Aulas 03 (10/11) e 05 (01/12).

Logo Inteli

Verificação do preparo

yf.download("PETR4.SA", start="2026-08-01", end="2026-08-31"): quantas linhas o DataFrame devolve?

  • 31
  • 30
  • 21
  • 20
  1. Votar sozinho, sem conversar.
  2. Discutir em dupla por dois minutos, defendendo o voto.
  3. Votar de novo e só então revelar.
Logo Inteli

O end exclusivo devolve 20 dos 21 pregões

20

Agosto de 2026 teve 21 pregões no snapshot. O end do yfinance é exclusivo: com end="2026-08-31", o pregão de segunda-feira, 31/08, fica de fora.

O coletor do Bloco 4 soma um dia ao fim pedido para incluir o último pregão.

Alternativa erradaConta que a produz
31contar os dias corridos de agosto
30contar os dias corridos até a véspera do end
21contar os pregões e tratar o end como inclusivo

Visões do mesmo preço

Negociado, Close e Adj Close respondem a perguntas diferentes

Logo Inteli

Grupamento da MGLU3 em 27/05/2024 nas três visões

Antes de tocar: anote o que acontece com cada uma das três linhas em 27/05/2024, data do grupamento de 10 para 1.

Logo Inteli

Pergunta de negócio de cada visão de preço

VisãoComo é obtidaPergunta de negócio que responde
NegociadoClose multiplicado pelos fatores dos eventos posteriores à dataQue preço apareceu na tela do pregão naquele dia?
CloseFechamento já dividido por desdobramento, grupamento e bonificaçãoQuanto rendeu quem comprou e segurou, sem reinvestir proventos?
Adj CloseClose com os proventos posteriores também descontadosQuanto rendeu quem reinvestiu cada provento? Base do risco e do retorno do otimizador

Qual das três visões responde quanto R$ 1.000 aplicados em 2019 viraram?

Logo Inteli

O desdobramento da B3SA3 derruba o preço negociado em 67,17%

E a WEGE3 em 28/04/2021? Cada dupla prevê a queda do negociado e a do Close antes do clique.

Logo Inteli

Qual visão responde a cada pergunta

1. Quanto R$ 1.000 em PETR4 em 2019 viraram, com proventos

  • Negociado
  • Close
  • Adj Close

2. Preço da B3SA3 na tela do home broker em 14/05/2021

  • Negociado
  • Close
  • Adj Close

3. Volatilidade anual para o otimizador

  • Negociado
  • Close
  • Adj Close

4. Valor de mercado da empresa naquele dia

  • Negociado
  • Close
  • Adj Close

Cada dupla decide antes do clique. A sala vota em cada item.

Logo Inteli

Com proventos, a PETR4 rende 616,00% na janela

616,00%

Com proventos reinvestidos (Adj Close), a PETR4 rendeu 616,00% na janela. Só pelo preço (Close), 87,12%.

No primeiro pregão de 2019, o Adj Close da PETR4 vale 26,13% do Close: os proventos pagos até 2026 foram descontados do preço antigo.

AtivoRetorno de preço (Close)Retorno total (Adj Close)
PETR487,12%616,00%
VALE352,38%189,86%
BBAS3-14,65%42,09%
BOVA1198,84%98,84%

Um coletor que outra pessoa consegue rodar

Parâmetros, queda para o snapshot e fim exclusivo

Logo Inteli

A função coletar cai para o snapshot sem rede

def coletar(tickers, inicio, fim):
    if os.environ.get("M08_OFFLINE") != "1":
        try:
            import yfinance as yf
            fim_exclusivo = (pd.Timestamp(fim)
                             + pd.Timedelta(days=1))
            bruto = yf.download(
                [t + ".SA" for t in tickers],
                start=inicio, end=fim_exclusivo,
                auto_adjust=False, timeout=20)
            if not bruto.empty:
                return (bruto["Close"], bruto["Adj Close"],
                        "yfinance, ao vivo")
        except Exception as erro:
            print("seguindo com o snapshot:", erro)
    fech = ler_csv("precos_fechamento.csv")
    ajus = ler_csv("precos_ajustados.csv")
    return (fech.loc[inicio:fim, tickers],
            ajus.loc[inicio:fim, tickers], "snapshot de dados/")
Parâmetrostickers e datas entram como argumento: a mesma função serve a cesta de qualquer grupo
Quedasem rede ou com M08_OFFLINE=1, lê o snapshot versionado e termina
Fim exclusivoo end do yfinance não inclui o dia: soma-se um dia para pegar o último pregão
Logo Inteli

Prática em dupla: o coletor

  1. Abram o notebook no Colab. Quem está no teclado é o condutor; o outro é o navegador, que lê e confere.
  2. Seção 1: confirmem a cesta de 15 ativos e a janela de 01/01/2019 a 31/08/2026.
  3. Seção 2: rodem coletar e anotem a origem impressa (ao vivo ou snapshot).
  4. Aos 6 minutos, troquem de papel. O novo condutor roda de novo com M08_OFFLINE=1 e compara.
  5. ExtensãoRegistrem em uma linha o que mudaria no coletor para a cesta do grupo.

Checagem aos 6 min: a origem impressa na primeira rodada está anotada. Debrief: duas duplas dizem a origem das duas rodadas e se o resultado bateu.

Abrir o notebook da Aula 01 no Colab

Ausências reais do provedor

Descartar ou preencher muda o risco medido

Logo Inteli

Três ETFs ficaram sem cotação em 24/10/2025

BOVA11, IVVB11 e GOLD11 sem preço num pregão normal da B3. A GOLD11 tem ainda 484 pregões vazios antes da primeira cotação, em 11/12/2020.

Logo Inteli

O tratamento define 1.908 ou 1.423 pregões

O que sumiu da série junto com esses 485 pregões, e que número o grupo registra no ADR?

Logo Inteli

Descartar datas leva a PETR4 a 33,41%

Volatilidade anualDescartarPreencher
PETR433,41%39,25%
VALE329,77%35,49%
BOVA1118,51%23,41%
IVVB1117,67%20,15%
MGLU367,75%65,41%

Descartar as datas com ausência começa a cesta em 11/12/2020, junto com a GOLD11, e apaga a crise de março de 2020 de todos os ativos.

Preencher com o último preço cria retorno zero no BOVA11 em 24/10/2025 e acumula 0,93% no pregão seguinte, 27/10/2025.

Cada tratamento muda o risco que o otimizador vai ver.

Logo Inteli

Exemplo de ADR com o número medido

# ADR 0001 (exemplo): datas sem cotação

- Status: aceito
- Decisores: aluno responsável pelo coletor

## Contexto e problema
GOLD11 estreia em 11/12/2020 e três ETFs
ficam sem preço em 24/10/2025.

## Decisão
Preencher com o último preço por ativo,
porque descartar apaga março de 2020.

## Consequências
- Impacto numérico: volatilidade anual da
  PETR4 fica em 39,25% (33,41% descartando).
- Ruim: retorno zero artificial em 24/10/2025.

Exemplo. As Aulas 02 a 06 preenchem as lacunas isoladas e usam a janela comum quando juntam ativos. O grupo decide o tratamento dele com os números medidos no próprio coletor, e pode decidir descartar.

O ADR é a parte individual da nota: 20% de cada artefato, avaliado pela autoria dos commits, com o número medido nos dados do grupo.

Modelo de ADR do curso [7], no formato MADR [8].

Logo Inteli

Prática em dupla: ausências e o primeiro ADR

  1. Seção 4: rodem o relatório de ausências e anotem os ativos com lacuna.
  2. Rodem a comparação dos tratamentos e anotem a volatilidade anual da PETR4 sob cada um.
  3. Aos 6 minutos, troquem de papel. O novo condutor escreve a decisão da dupla em uma frase, com o número antes e depois.
  4. ExtensãoSeção 3: comparem as três visões de preço de um ativo com evento corporativo.
  5. ExtensãoCompletem o ADR com contexto e alternativa rejeitada, depois da aula, para o A1.

Checagem aos 6 min: os dois valores da PETR4 estão anotados. Debrief: duas duplas com decisões opostas leem a frase, e a turma confere se o número aparece.

Logo Inteli

Quiz de verificação

1. Em 17/05/2021 o preço negociado da B3SA3 cai 67%. Por quê?

  • Desdobramento
  • Queda de mercado
  • Erro do provedor

2. Qual tratamento tira março de 2020 da PETR4?

  • dropna na cesta
  • Preencher para a frente
  • dropna só na PETR4

3. Qual coluna alimenta a volatilidade do otimizador?

  • Negociado
  • Close
  • Adj Close
Logo Inteli

Notebook da aula

SeçãoO que entrega
1 e 2A cesta, a janela e a função coletar com queda para o snapshot
3As três visões de preço reconstruídas e a pergunta para a dupla
4 e 5O relatório de ausências, os dois tratamentos e o ADR da decisão
6Desafio do A1: rodar o coletor num Colab novo com M08_OFFLINE=1, depois com a cesta do grupo, e registrar os casos de teste no SPEC.md

Notebook no GitHub · Abrir no Colab

Logo Inteli

Artefato A1 da Sprint 1

Critério do baremaPesoO que hoje já adiantou
Pipeline funcional25%a função coletar parametrizada por tickers e datas
Tratamento de dados20%Adj Close escolhido, ausências medidas e tratadas
Relatório descritivo10%média, desvio, mínimo e máximo por ativo, até a entrega
Reprodutibilidade10%queda para o snapshot, roda do zero sem editar código
Especificação e documentação15%SPEC.md com plano de testes escrito antes de codar
ADRs, nota individual20%o ADR de ausências com o número da PETR4

A1 vale 3 pontos. Review da Sprint 1 e entrega do A1 no mesmo dia: sexta, 23/10/2026, com entrega até 23h59. Na Aula 02, os retornos saem do Adj Close já tratado.

Logo Inteli

Referências

  1. dados/README.md: snapshot do case, três visões de preço e falhas do provedor.
  2. CAETANO, M. A. L. Python e mercado financeiro. Blucher, 2021. cap. 8 e 10. Autoestudo: Coleta de dados financeiros e DataFrames com Pandas.
  3. CÓDIGO QUANT. Python para investimentos #1: cotações do Yahoo Finance com Google Colab. YouTube. Autoestudo: Cotações do Yahoo Finance no Colab, do jeito reaproveitável.
  4. Documentação do yfinance.
  5. pandas: Working with missing data.
  6. Banco Central, dados abertos do SGS: séries 12, 432, 433 e 1.
  7. Modelo de ADR do curso.
  8. MADR: Markdown Any Decision Records.

Até 05/11/2026

Aula 02: Dados Financeiros, Do Preço ao Retorno

Prof. José Romualdo