import cashflows as cf

##
## Se tienen cuatro fuentes de capital con diferentes costos
## sus datos se almacenarar en las siguientes listas:
##
monto   = [0] * 4
interes = [0] * 4

## emision de acciones
## --------------------------------------
monto[0]   = 4000
interes[0] = 25.0 / 1.0  # tasa de descueto de la accion

## préstamo 1.
## -------------------------------------------------------
## 
nrate = cf.nominal_rate(const_value=20, nper=5)
credito1 = cf.fixed_ppal_loan(amount    = 2000,     # monto
                              nrate     = nrate,    # tasa de interés
                              orgpoints = 50/2000)  # costos de originación
credito1           

"""
Explanation: Tasa atractiva mínima (MARR)
Notas de clase sobre ingeniería economica avanzada usando Python
Juan David Velásquez Henao
jdvelasq@unal.edu.co 
Universidad Nacional de Colombia, Sede Medellín
Facultad de Minas
Medellín, Colombia  
Software utilizado

Este es un documento interactivo escrito como un notebook de Jupyter , en el cual se presenta un tutorial sobre finanzas corporativas usando Python. Los notebooks de Jupyter permiten incoporar simultáneamente código, texto, gráficos y ecuaciones. El código presentado en este notebook puede ejecutarse en los sistemas operativos Linux y OS X.  
Haga click aquí para obtener instrucciones detalladas sobre como instalar Jupyter en Windows y Mac OS X.
Descargue la última versión de este documento a su disco duro; luego, carguelo y ejecutelo en línea en Try Jupyter!

Contenido

Bibliografía


[1] SAS/ETS 14.1 User's Guide, 2015.   
[2] hp 12c platinum financial calculator. User's guide. 
[3] HP Business Consultant II Owner's manual.
[4] C.S. Park and G.P. Sharp-Bette. Advanced Engineering Economics. John Wiley & Sons, Inc., 1990.


Problema del costo de capital


A medida que se invierte más capital los rendimientos obtenidos son menores (es más dificil acceder a inversiones con rentabilidades altas).


A medida que se presta más capital los interses son más altos (es más dificil acceder a créditos baratos)


Si se tiene un proyecto cuyos fondos provienen del aporte de los socios y de diferentes esquemas de financiación, ¿cómo se calculá el costo de dichos fondos?.


<img src="images/wacc-explain.png" width=850>
Caso práctico
Una compañía tiene las siguientes fuentes de financiamiento:


Un total de \$ 4000 por la emisión de 4.000 acciones. Se espera un dividendo de \$ 0.25 por acción para los próximos años.


Un préstamo bancario (Préstamo 1) de \$ 2.000. El préstamo se paga en 4 cuotas iguales a capital más intereses sobre el saldo total de deuda liquidados a una tasa efectiva de interés del 20%. En el momento del desembolso se cobró una comisión bancaria de \$ 50.


Un préstamo bancario (Préstamo 2) de \$ 1.000 con descuento de 24 puntos. El préstamo se paga en 4 cuotas totales iguales que incluyen intereses más capital. La tasa de interés es del 20%.


La venta de un bono con pago principal de \$ 5.000, el cual fue vendido por \$ 4.000. El capital se dedimirá en 4 periodos y se pagarán intereses a una tasa del 7%. El bono tiene un costo de venta de \$ 50.


El impuesto de renta es del 30%.
Solución
End of explanation
"""


## flujo de caja para el crédito antes de impuestos
credito1.to_cashflow(tax_rate = 30.0)

## la tasa efectiva pagada por el crédito es 
## aquella que hace el valor presente cero para
## el flujo de caja anterior (antes o después de 
## impuestos)
credito1.true_rate(tax_rate = 30.0)

## se almacenna los datos para este credito
monto[1]   = 2000
interes[1] = credito1.true_rate(tax_rate = 30.0)

## préstamo 2.
## -------------------------------------------------------
## 
credito2 = cf.fixed_rate_loan(amount    = 1000,     # monto
                              nrate     =   20,  # tasa de interés
                              start     = None,
                              grace     =    0,
                              life      =    4,     # número de cuotas
                              dispoints =    0.24)  # costos de originación
credito2 

credito2.to_cashflow(tax_rate = 30)

credito2.true_rate(tax_rate = 30)

## se almacenna los datos para este credito
monto[2]   = 1000
interes[2] = credito2.true_rate(tax_rate = 30)

## préstamo 3.
## -------------------------------------------------------
## 
nrate = cf.nominal_rate(const_value=7, nper=5)
credito3 = cf.bullet_loan(amount     = 5000,     # monto
                          nrate      =   nrate,  # tasa de interés
                          orgpoints  =    0.01,  # costos de originación
                          dispoints  =    0.20)  # puntos de descuento
credito3 

credito3.to_cashflow(tax_rate = 30.0) ### malo

credito3.true_rate(tax_rate = 30.0)

## se almacenan los datos de este crédito
monto[3]   = 5000
interes[3] = credito3.true_rate(tax_rate = 30.0)

## montos
monto

## tasas
interes

## Costo ponderado del capital (WACC)
## -------------------------------------------------------------
## es el promdio ponderado de las tasas por 
## el porcentaje de capital correspondiente a cada fuente
##
s    = sum(monto)           # capital total
wacc = sum([x*r/s for x, r in zip(monto, interes)])
wacc

"""
Explanation: En la modelación de créditos con cashflow se consideran dos tipos de costos:


Los puntos de descuento (dispoints) como porcentaje sobre el monto de la deuda. Estos son una forma de pago de intereses por anticipado con el fin de bajar la tasa de interés del crédito. 


Los puntos de originación (orgpoints) como porcentaje del monto de deuda. Son los costos de constitución del crédito y no son considerados como intereses.


Ya que los intereses de los créditos pueden descontarse como costos financieros, estos disminuyen el pago del impuesto de renta. Por consiguiente, en el análisis de los créditos debe tenerse en cuenta el beneficio por pago de intereses el cual equivale a los impuestos pagados por periodo multiplicados por la tasa del impuesto de renta. Ya que los puntos de descuento son intereses, estos se tienen en cuenta en el cálculo de este beneficio.
End of explanation
"""


