finmath-engine
Version:
Motor de cálculos financeiros de alta precisão para o mercado brasileiro
134 lines (96 loc) • 3.18 kB
Markdown
# @finmath/engine
Motor de cálculos financeiros de alta precisão para o mercado brasileiro.
[](https://www.npmjs.com/package/@finmath/engine)
[](LICENSE)
[](https://www.typescriptlang.org/)
## 🎯 Características
- ✅ **Precisão decimal** (decimal.js - sem erros de ponto flutuante)
- ✅ **30 Golden Files** validando cálculos
- ✅ **TypeScript nativo** com types completos
- ✅ **CET completo** (IOF + seguros + perfis institucionais)
- ✅ **Método de Brent** para IRR robusto
- ✅ **85% de cobertura** de testes
## 📦 Instalação
```bash
npm install @finmath/engine decimal.js
# ou
pnpm add @finmath/engine decimal.js
# ou
yarn add @finmath/engine decimal.js
```
## 🚀 Uso Rápido
```typescript
import { Decimal } from 'decimal.js';
import { amortization, cet, irr } from '@finmath/engine';
// Price
const price = amortization.calculatePrice({
pv: new Decimal('10000'),
rate: new Decimal('0.02'),
n: 12
});
console.log(`PMT: R$ ${price.pmt.toFixed(2)}`); // R$ 946.56
// CET
const cetResult = cetBasic({
pv: new Decimal('10000'),
pmt: new Decimal('946.56'),
n: 12,
feesT0: [{ name: 'TAC', value: new Decimal('150') }]
});
console.log(`CET Anual: ${cetResult.cetAnual.mul(100).toFixed(2)}%`);
// IRR
const cashflows = [
new Decimal('-10000'),
new Decimal('1000'),
...
];
const tir = irr.calculateIRR(cashflows);
console.log(`TIR: ${tir.mul(100).toFixed(2)}%`);
```
## 📚 Módulos Disponíveis
### Amortização
- `calculatePrice()` - Sistema Price
- `generatePriceSchedule()` - Cronograma Price
- `calculateSAC()` - Sistema SAC
- `generateSacSchedule()` - Cronograma SAC
### CET (Custo Efetivo Total)
- `cetBasic()` - CET básico (tarifas t0)
- `calculateCETFull()` - CET completo (IOF + seguros)
### IRR/NPV
- `calculateIRR()` - Taxa Interna de Retorno (Brent)
- `calculateNPV()` - Valor Presente Líquido
### Outros
- `interest` - Juros compostos (FV/PV)
- `rate` - Equivalência de taxas
- `series` - Séries uniformes
- `daycount` - Convenções de contagem de dias
## 📖 Documentação
- [Documentação API Completa](../../docs/api/index.html)
- [Exemplos](./examples/)
- [Changelog](../../CHANGELOG.md)
## 🧪 Exemplos
Ver diretório [examples/](./examples/) para exemplos detalhados:
- `01-price-basico.ts` - Cálculo Price completo
- `02-cet-completo.ts` - CET com tarifas
- `03-irr-investimento.ts` - TIR de projeto
## 🔬 Testes
```bash
# Todos os testes
pnpm test
# Apenas Golden Files
pnpm test:golden
# Cobertura
pnpm test:coverage
```
## 📊 Qualidade
- ✅ 30/30 Golden Files validados
- ✅ 85% cobertura de código
- ✅ 0 erros TypeScript
- ✅ Lint limpo
## 🤝 Contribuindo
Contribuições são bem-vindas! Veja [CONTRIBUTING.md](../../CONTRIBUTING.md).
## 📄 Licença
MIT © 2025 PrinceOfEgypt1
## 🔗 Links
- [Repositório](https://github.com/PrinceOfEgypt1/fin-math)
- [Issues](https://github.com/PrinceOfEgypt1/fin-math/issues)
- [npm](https://www.npmjs.com/package/@finmath/engine)