Article image
Marcelo Horita
Marcelo Horita12/12/2022 22:14
Compartilhe

Pacote Workadays

  • #Python

No mercado financeiro brasileiro os investimentos são remunerados considerando o método exponencial base 252, isso significa que os rendimentos são atualizados nos dias úteis.

Agora imagina que você trabalha em um banco e tem um projeto que é a de calcular o valor atualizado da carteira de captação de um banco. A carteira de captação de um banco é a soma das operações que o clientes investiram através de algum produto, tais como: CDB, LCI, LCA, LC e outros.

Uma das principais fontes de renda de um banco e o resultado da diferença entre o dinheiro captado pelo banco de clientes superavitários (aquele que tem sobra de dinheiro) e do dinheiro emprestado para os clientes deficitários (aquele que tem falta de dinheiro). Essa diferença é denominada de spread.

A valorização da carteira de captação de um banco é dada por diferentes fórmulas a depender do tipo de produto e do indexador de remuneração da operação. Um dos exemplos mais simples de remuneração é o de uma aplicação em CDB Préfixado cujo rendimento final é previsível desde o momento da aplicação.

Imagina um aplicação no valor de R$ 1.000 em CDB com vencimento de 1 ano e com remuneração de 12% a.a. No vencimento desta aplicação o cliente vai ter exatamente R$ 1.120 bruto, sem descontar o imposto de renda, resultado da seguinte fórmula:

VF = P * (1 + i) ^ (n / 252) => 1000 * 1,12 ^ (252 / 252) => 1120

Onde:

VF é o valor futuro, também conhecido como valor no vencimento;

P é o valor aplicado, também conhecido como valor principal (ou notional);

i é a taxa de rendimento da aplicação;

n é referente ao prazo da aplicação.

No entanto, suponha que a aplicação foi realizada em 20/09/2022 e que você está precisando saber em 12/12/2022 o valor presente (VP) da aplicação, para isso, você vai precisar calcular o prazo (n) em dias úteis entre a data da aplicação e hoje e imagina que você precisa fazer este calculo no python.

É neste momento que o pacote workadays ajudará muito. Para instalar o pacote o comando é:

pip install workadays

Importe o pacote no programa python:

import datetime as dt
from workadays import workdays as wd

E através do seguinte comando você conseguirá extrair o número de dias úteis entre duas datas:

dt_inicio = dt.date(2022, 9, 20)
dt_atual = dt.date(2022, 12, 12)
n = wd.networkdays(dt_inicio, dt_atual, country='BR')
print(n)

p = 1000
i = 0.12
vp = round(1000 * math.pow(1+i, n/252), 2)
print(vp)

No código acima o resultado do prazo (n) é 56 dias úteis calculados pelo pacote workadays e o resultado do valor presente da aplicação é de R$ 1.025,50.

Então, de forma simplificada, é assim que os bancos fazem para atualizar o valor de suas carteiras e este pacote permite de forma transparente calcular o número de dias úteis entre duas datas para diferentes países (Brasil, EUA, Reino Unido, Luxemburgo) e também o número de dias corridos entre duas datas.

Além disso, este pacote permite também somar um determinado número de dias úteis ou corridos a partir de uma determinada data. Verificar se uma data é feriado, final de semana ou dia útil e se o ano é bissexto. E também calcular dias corridos usando da base 30/360 nos métodos americano ou europeu.

Gostou? Quer saber mais?

Consulte o PyPI: https://pypi.org/project/workadays/

Abs,

Marcelo Horita

Compartilhe
Comentários (0)