La función Valor Futuro y su comportamiento esperado
La función de Excel FV(rate, nper, pmt, pv)
calcula el valor futuro de una inversión basándose en pagos periódicos y constantes y en un tipo de interés constante.
El valor futuro debería ser = -pv si pmt =-pv * tipo ; piense que es como si pagara sólo los intereses de un préstamo: el valor presente es 100, el tipo es 10%, paga 10 cada período, el valor futuro es -100 independientemente del número de períodos, es decir, ha pagado sólo los intereses pero no ha amortizado ni un céntimo.
Por ejemplo
FV(0.1,10,-10,100) = -100
FV(0.1,20,-10,100) = -100
FV(0.1,300,-10,100) = -100
El error en Excel
SIN EMBARGO, si nper (número de períodos) es superior a 300, los resultados no tienen sentido .
nper = 320 --> FV =-100.25
nper = 350 --> FV = -104
nper = 390 --> FV = 256
nper = 400 --> FV = 0
El mismo error en numpy_financial de Python
He observado un comportamiento similar en el sistema de Python numpy financiero (ver este paquete informe de errores ):
conda install -c conda-forge numpy-financial
npf.fv(0.1,200,-10,100) --> -100.0
npf.fv(0.1,300,-10,100) --> -100.03125
npf.fv(0.1,380,-10,100) --> -128.0
npf.fv(0.1,400,-10,100) --> 0
El mismo error en Matlab
No tengo instalado Matlab, pero, desde la página web de la documentación de Matlab Financial Toolbox, se puede prueba de funcionamiento la función fvfix para calcular el valor futuro; esa función también se comporta de forma extraña cuando el número de períodos > 300:
fvfix(0.1,400,-10,100) = 3584
Ni idea de los paquetes de R
He intentado instalar el paquete FinCal de R pero no he conseguido que funcione - aparentemente tengo que compilarlo y no sé cómo.
Mis preguntas
- ¿Por qué ocurre esto?
- ¿Es un error conocido?
- ¿Sucede esto con la mayoría de las bibliotecas financieras? Por ejemplo, ¿en R, Matlab, etc.?
- ¿Cuál es la solución recomendada? ¿Hay funciones / bibliotecas más fiables en Excel y Python?
- ¿Hay alguna documentación al respecto? No he podido encontrar nada, aparte del informe de errores de Python enlazado, pero seguramente no puedo ser el primero que se encuentra con esto. Además, en la mayoría de estos paquetes las funciones financieras tienden a depender unas de otras, por lo que un error en el cálculo del valor futuro puede afectar también a las otras funciones financieras
Lo que he entendido hasta ahora
Estas fórmulas calculan (1 + rate ) ^ nper
Supongo que el problema surge porque, cuando nper es grande, el resultado puede exceder la precisión máxima permitida por el software. Por ejemplo, 1,1^400 = 3,6e16 Excel sólo puede almacenar 15 dígitos significativos.
1 votos
En Python puedes usar mpmath en lugar de numpy, que maneja números de tamaño arbitrario