Módulo 08 AdmTech · Computação · Semana 2 · 20/10/2026
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 |
Módulo 08 AdmTech · Aula 01 · Sprint 1
2
| Item | Regra | Prazo |
|---|---|---|
| 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 |
Módulo 08 AdmTech · Aula 01 · Sprint 1
3
| Bloco | Minutos | Tema | Interação que fecha o bloco |
|---|---|---|---|
| Daily | 15 | O que fiz, o que vou fazer, impedimentos | acesso ao Colab, ao repositório e a dados/ |
| 1 | 0 a 15 | O parceiro, a ferramenta e as cinco entregas | Peer Instruction sobre o end do yfinance |
| 2 | 15 a 30 | Três visões do mesmo preço | previsão antes da animação da MGLU3 |
| 3 | 30 a 45 | Desdobramento da B3SA3 e proventos da PETR4 | escolha coletiva de quatro perguntas |
| 4 | 45 a 60 | Um coletor que outra pessoa consegue rodar | dupla no notebook, seções 1 e 2 |
| 5 | 60 a 75 | Ausências reais do provedor | que número o grupo registra no ADR |
| 6 | 75 a 90 | Descartar ou preencher, e o primeiro ADR | dupla no notebook, seções 3 e 4 |
| 7 | 90 a 105 | Quiz e amarração com a Sprint 1 | quiz de três perguntas |
Horários de relógio a confirmar na Adalove; os blocos contam do fim da daily.
Módulo 08 AdmTech · Aula 01 · Sprint 1
4
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.
| Base | histórico de preços convertido em retornos diários |
| Referências | CDI como taxa livre de risco, Selic como ciclo, IPCA como régua de retorno real |
| Decisão | os 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.
Módulo 08 AdmTech · Aula 01 · Sprint 1 · [6]
5
Coletor e Processador de Dados de Mercado
Sprint 1 · peso 3
Módulo de Análise de Risco e Retorno Individual
Sprint 2 · peso 3
Motor de Simulação de Monte Carlo
Sprint 3 · peso 3
Otimizador de Carteira com Fronteira Eficiente
Sprints 3 e 4 · peso 3
Simulador Interativo integrado à interface e Interpretação por LLM
Sprint 5 · peso 2
| Em todo artefato | Peso no barema | Nota |
|---|---|---|
| A ferramenta funcionando, com os critérios de cada sprint | 65% | grupo |
| Especificação e documentação: SPEC.md antes de codar, README, docstrings | 15% | grupo |
| ADRs com o impacto numérico da decisão, por autoria de commit | 20% | individual |
Pesos da Adalove. Ponderadas individuais de 3 pontos nos autoestudos das Aulas 03 (10/11) e 05 (01/12).
Módulo 08 AdmTech · Aula 01 · Sprint 1
6
yf.download("PETR4.SA", start="2026-08-01", end="2026-08-31"): quantas linhas o DataFrame devolve?
Módulo 08 AdmTech · Aula 01 · Sprint 1 · autoestudos [2] [3]
7
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 errada | Conta que a produz |
|---|---|
| 31 | contar os dias corridos de agosto |
| 30 | contar os dias corridos até a véspera do end |
| 21 | contar os pregões e tratar o end como inclusivo |
Módulo 08 AdmTech · Aula 01 · Sprint 1 · [1] [4]
8
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.
Módulo 08 AdmTech · Aula 01 · Sprint 1 · [1]
10
| Visão | Como é obtida | Pergunta de negócio que responde |
|---|---|---|
| Negociado | Close multiplicado pelos fatores dos eventos posteriores à data | Que preço apareceu na tela do pregão naquele dia? |
| Close | Fechamento já dividido por desdobramento, grupamento e bonificação | Quanto rendeu quem comprou e segurou, sem reinvestir proventos? |
| Adj Close | Close com os proventos posteriores também descontados | Quanto 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?
Módulo 08 AdmTech · Aula 01 · Sprint 1
11
E a WEGE3 em 28/04/2021? Cada dupla prevê a queda do negociado e a do Close antes do clique.
Módulo 08 AdmTech · Aula 01 · Sprint 1 · [1]
12
1. Quanto R$ 1.000 em PETR4 em 2019 viraram, com proventos
2. Preço da B3SA3 na tela do home broker em 14/05/2021
3. Volatilidade anual para o otimizador
4. Valor de mercado da empresa naquele dia
Cada dupla decide antes do clique. A sala vota em cada item.
Módulo 08 AdmTech · Aula 01 · Sprint 1 · [1]
13
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.
| Ativo | Retorno de preço (Close) | Retorno total (Adj Close) |
|---|---|---|
| PETR4 | 87,12% | 616,00% |
| VALE3 | 52,38% | 189,86% |
| BBAS3 | -14,65% | 42,09% |
| BOVA11 | 98,84% | 98,84% |
Módulo 08 AdmTech · Aula 01 · Sprint 1 · janela 02/01/2019 a 31/08/2026 [1]
14
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âmetros | tickers e datas entram como argumento: a mesma função serve a cesta de qualquer grupo |
| Queda | sem rede ou com M08_OFFLINE=1, lê o snapshot versionado e termina |
| Fim exclusivo | o end do yfinance não inclui o dia: soma-se um dia para pegar o último pregão |
Módulo 08 AdmTech · Aula 01 · Sprint 1 · [4]
16
coletar e anotem a origem impressa (ao vivo ou snapshot).M08_OFFLINE=1 e compara.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
Módulo 08 AdmTech · Aula 01 · Sprint 1
17
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.
Módulo 08 AdmTech · Aula 01 · Sprint 1 · [1]
19
O que sumiu da série junto com esses 485 pregões, e que número o grupo registra no ADR?
Módulo 08 AdmTech · Aula 01 · Sprint 1
20
| Volatilidade anual | Descartar | Preencher |
|---|---|---|
| PETR4 | 33,41% | 39,25% |
| VALE3 | 29,77% | 35,49% |
| BOVA11 | 18,51% | 23,41% |
| IVVB11 | 17,67% | 20,15% |
| MGLU3 | 67,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.
Módulo 08 AdmTech · Aula 01 · Sprint 1 · [1] [5]
21
# 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].
Módulo 08 AdmTech · Aula 01 · Sprint 1
22
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.
Módulo 08 AdmTech · Aula 01 · Sprint 1
23
1. Em 17/05/2021 o preço negociado da B3SA3 cai 67%. Por quê?
2. Qual tratamento tira março de 2020 da PETR4?
3. Qual coluna alimenta a volatilidade do otimizador?
Módulo 08 AdmTech · Aula 01 · Sprint 1
24
| Seção | O que entrega |
|---|---|
| 1 e 2 | A cesta, a janela e a função coletar com queda para o snapshot |
| 3 | As três visões de preço reconstruídas e a pergunta para a dupla |
| 4 e 5 | O relatório de ausências, os dois tratamentos e o ADR da decisão |
| 6 | Desafio 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
Módulo 08 AdmTech · Aula 01 · Sprint 1
25
| Critério do barema | Peso | O que hoje já adiantou |
|---|---|---|
| Pipeline funcional | 25% | a função coletar parametrizada por tickers e datas |
| Tratamento de dados | 20% | Adj Close escolhido, ausências medidas e tratadas |
| Relatório descritivo | 10% | média, desvio, mínimo e máximo por ativo, até a entrega |
| Reprodutibilidade | 10% | queda para o snapshot, roda do zero sem editar código |
| Especificação e documentação | 15% | SPEC.md com plano de testes escrito antes de codar |
| ADRs, nota individual | 20% | 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.
Módulo 08 AdmTech · Aula 01 · Sprint 1
26
Módulo 08 AdmTech · Aula 01 · Sprint 1
27