Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IDSS Renda Fixa — Etapas 1 e 2

Etapa 1: Modelagem + Cálculos Base

  • app/finance/models.py: Titulo e TipoTitulo, com validação de dados (inclui taxa_cupom_semestral, obrigatória só para títulos com cupom).
  • app/finance/calendario.py: contagem de dias úteis com feriados nacionais.
  • app/finance/returns.py: valor futuro, rentabilidade nominal/real, VPL e TIR.
  • app/finance/tax.py: IR regressivo padrão de renda fixa.

Etapa 2: Marcação a Mercado

  • app/finance/fluxo_caixa.py: gera o fluxo de caixa contratual (cupons + principal) para títulos com cupom semestral, resolvendo um valor de face implícito a partir da taxa contratada e do valor investido.
  • app/finance/marcacao_mercado.py: preço estimado sob variação de taxa de mercado (-1pp a +1pp), duration de Macaulay, duration modificada, e comparação entre impacto real (reprecificação completa) e impacto estimado pela duration (a diferença é o efeito de convexidade). Cobre os 5 tipos de título, incluindo os dois com cupom semestral.

tests/: 60 testes no total.

Premissas assumidas (documentadas para rastreabilidade)

  • Capitalização composta em dias úteis / 252, mesma convenção do Tesouro Direto. Feriados considerados são os nacionais (lib holidays, BR); o calendário ANBIMA oficial pode divergir em feriados locais (ex: aniversário de São Paulo). IR continua usando dias corridos, que é a base correta pela legislação.
  • Para títulos IPCA+ sem cupom, a inflação acumulada do período inteiro é sempre informada explicitamente por quem chama a função. Para títulos IPCA+ COM cupom semestral, a inflação deve ser informada por data de pagamento (inflacao_acumulada_por_data), já que cada cupom é corrigido pela inflação acumulada até aquela data específica — o sistema nunca projeta essas inflações sozinho.
  • IR usa a tabela regressiva padrão (22,5% / 20% / 17,5% / 15%), sem IOF ainda (fica para quando tratarmos resgate antecipado).
  • Rentabilidade real usa a equação de Fisher, não a subtração simples.
  • O valor de face de títulos com cupom é resolvido implicitamente (não é um input separado): é o valor que faz o VP dos cupons + principal, descontado pela taxa contratada, reproduzir o valor investido.
  • Datas de cupom são geradas de 6 em 6 meses contando retroativamente do vencimento — aproximação de calendário, não usa as datas exatas de emissão do Tesouro Nacional (que seguem um calendário próprio de janeiro/julho).
  • Marcação a mercado trata os fluxos futuros como fixos em termos REAIS, definidos na compra — exato para Prefixado, simplificação já assumida para IPCA+ e, principalmente, para Selic (título pós-fixado sujeito a ágio/deságio de mercado; a duration calculada para Selic aqui é mais teórica que prática, já que seu preço reage pouco a variações na taxa).
  • Taxa de mercado atual é sempre parâmetro explícito, nunca projetada pelo sistema.

Rodando

pip install -r requirements.txt
python -m pytest -v

Próxima etapa

Comparador de investimentos: tabela comparativa entre títulos + cenários (otimista / base / pessimista) com premissas alteráveis pelo usuário.

About

Sistema de apoio à decisão de investimentos (IDSS) em Python para análise e comparação de títulos do Tesouro Direto brasileiro. Foco em cálculos financeiros rastreáveis (rentabilidade, VPL/TIR, IR, marcação a mercado, duration) e desenvolvimento incremental com testes.

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages