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!
>
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.
 
Una compañía tiene las siguientes fuentes de financiamiento:
El impuesto de renta es del 30%.
Solución
In [1]:
    
import cashflows as cf
    
In [2]:
    
##
## Se tienen cuatro fuentes de capital con diferentes costos
## sus datos se almacenarar en las siguientes listas:
##
monto   = [0] * 4
interes = [0] * 4
    
In [19]:
    
## emision de acciones
## --------------------------------------
monto[0]   = 4000
interes[0] = 25.0 / 1.0  # tasa de descueto de la accion
    
In [4]:
    
## 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
    
    Out[4]:
En la modelación de créditos con cashflow se consideran dos tipos de costos:
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.
In [5]:
    
## flujo de caja para el crédito antes de impuestos
credito1.to_cashflow(tax_rate = 30.0)
    
    Out[5]:
In [6]:
    
## 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)
    
    Out[6]:
In [7]:
    
## se almacenna los datos para este credito
monto[1]   = 2000
interes[1] = credito1.true_rate(tax_rate = 30.0)
    
In [8]:
    
## 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
    
    Out[8]:
In [9]:
    
credito2.to_cashflow(tax_rate = 30)
    
    Out[9]:
In [10]:
    
credito2.true_rate(tax_rate = 30)
    
    Out[10]:
In [11]:
    
## se almacenna los datos para este credito
monto[2]   = 1000
interes[2] = credito2.true_rate(tax_rate = 30)
    
In [12]:
    
## 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
    
    Out[12]:
In [13]:
    
credito3.to_cashflow(tax_rate = 30.0) ### malo
    
    Out[13]:
In [15]:
    
credito3.true_rate(tax_rate = 30.0)
    
    Out[15]:
In [16]:
    
## se almacenan los datos de este crédito
monto[3]   = 5000
interes[3] = credito3.true_rate(tax_rate = 30.0)
    
In [20]:
    
## montos
monto
    
    Out[20]:
In [21]:
    
## tasas
interes
    
    Out[21]:
In [22]:
    
## 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
    
    Out[22]: