<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Cálculos sobre flujos de dinero
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.
Step1:  Impuestos corporativos
Contenido
Tipos de Impuestos.
Impuestos sobre activos tangibles o intangibles.
Lincencias para establecimiento de negocios.
Impuestos al consumo sobre productos básicos.
Impuestos a las ventas.
Impuestos a la renta.
Deducciones.
El impuesto de renta es calculado como el ingreso bruto menos las deducciones permitidas
Step2:  Ejemplo.-- Considere un flujo de caja de \$ 100, y una duración de 10 periodos. Calcule el impuesto de renta si la tasa es del 30% para los periodos 1 a 5 y del 35% para los periodos restantes.
Step3:  Inflación
Contenido
Se define como la pérdida de poder adquisitivo de la moneda. Existen diferentes medidas
Step4:  Ejemplo.-- Considere un flujo de caja constante de \$ 1000. Conviertalo a dinero del periodo 0 usando una inflación inicial del 5% por periodo. La inflación cambia al 10% a partir del periodo 5.
Step5:  Devaluación
Contenido
<img src="images/devaluacion.png" width=600>
$$d=\frac{f-f_e}{1+f_e},~~~~1+d=\frac{1+f}{1+f_e}$$
Cálculos con moneda extranjera
Contenido
$i$ -- tasa equivalente de interés en moneda local    
$i_e$ -- tasa de interés en moneda extranjera     
$d$ -- tasa de devaluación de la moneda local frente a la moneda extranjera.    
$f$ -- tasa de inflación interna    
$f_e$ -- tasa de inflación externa   
Interés equivalente para un préstamo en moneda extranjera
Step6:  Ejemplo.-- Considere un flujo de efectivo constante de \$ 1000 durante 10 periodos. Conviértalo a moneda extranjera si la tasa de cambio es de \$ 2.
Step7:  Ejemplo.-- Considere el mismo caso anterior con una devaluación por periodo del 1%.
<ASSISTANT_TASK:>
Python Code:
import cashflows as cf
Explanation: Cálculos sobre flujos de dinero
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.
End of explanation
cflo=cf.cashflow(const_value=1000,  nper=10, spec=[(t,-90) for t in range(5,10)])
cf.cfloplot(cflo) 
tax_rate = cf.nominal_rate(const_value=[30] * 10)
x=cf.after_tax_cashflow(cflo,           # flujo de efectivo
                    tax_rate = tax_rate) # impuesto de renta
cf.cfloplot(x)
Explanation: Impuestos corporativos
Contenido
Tipos de Impuestos.
Impuestos sobre activos tangibles o intangibles.
Lincencias para establecimiento de negocios.
Impuestos al consumo sobre productos básicos.
Impuestos a las ventas.
Impuestos a la renta.
Deducciones.
El impuesto de renta es calculado como el ingreso bruto menos las deducciones permitidas:
Salarios.
Rentas.
Intereses pagados.
Publicidad.
Planes de pensión.
Gastos de investigación.
Depreciación, amortización y agotamiento.
Ejemplo.-- Sea un flujo constante de \$ 1000 para los periodos 1 a 5 y -90 para los periodos 6 a 10. Calcule el impuesto de renta para una tasa impositiva del 30%.
End of explanation
cflo = cf.cashflow(const_value=[100]*10)
tax_rate = cf.nominal_rate(const_value=[30] * 10,spec=(5,35))
x=cf.after_tax_cashflow(cflo,           # flujo de efectivo
                    tax_rate = tax_rate) # impuesto de renta
cf.cfloplot(x)
Explanation: Ejemplo.-- Considere un flujo de caja de \$ 100, y una duración de 10 periodos. Calcule el impuesto de renta si la tasa es del 30% para los periodos 1 a 5 y del 35% para los periodos restantes.
End of explanation
x = cf.cashflow(const_value=[1000]*10)
x
cf.const2curr(cflo=x,inflation=cf.nominal_rate(const_value=[5]*10))
Explanation: Inflación
Contenido
Se define como la pérdida de poder adquisitivo de la moneda. Existen diferentes medidas:
Indice de precios del consumidos (IPC)
Indice de precios del productor (IPP)
Medidas derivadas a partir del producto interno bruto  
Tasa promedio de inflación: tasa porcentual anual que representa el incremento de los precios sobre un periodo de un año respecto al año anterior.
Tratamiento de la inflación
Contenido
Precios constantes.
Precios corrientes.
Tasa de interés del mercado $(i)$. Incluye una componente de utilidad económica y una de inflación.
Tasa de interés libre de inflación $(i')$. Representa únicamente la componente de utilidad económica
Tasa de inflación general $(f)$. Incremento promedio anual en los precios de los bienes y servicios
Relaciones de equivalencia
Contenido
$F_n'$: valor en moneda constante (en precios del periodo 0) que ocurren en el flujo de caja al final del periodo $n$.  
$F_n$: valor en moneda corriente que ocurren en el flujo de caja al final del periodo $n$.  
Conversión entre moneda constante y corriente: 
$$F_n=F_n^{'}~(1+f)^n$$   
Valor presente:
$$P=F_n^{'}~(1+i^{'})^{-n} = F_n^{'}~(1+i)^{-n}$$ 
Relación entre tasas:
$$i^{'}=\frac{i-f}{1+f}$$ 
$$(1+i^{'})(1+f)=1+i$$
Ejemplo.-- Considere un flujo de caja constante de \$ 1000. Conviertalo a dinero del periodo 0 usando una inflación del 5% por periodo.
End of explanation
## flujo de caja
x = cf.cashflow(const_value=[1000]*10)
cf.cfloplot(x)
## inflacion
inflation = cf.nominal_rate(const_value=[5]*10,spec=(5,10))
cf.cfloplot(inflation)
cf.const2curr(cflo=x,inflation=inflation)
Explanation: Ejemplo.-- Considere un flujo de caja constante de \$ 1000. Conviertalo a dinero del periodo 0 usando una inflación inicial del 5% por periodo. La inflación cambia al 10% a partir del periodo 5.
End of explanation
round((1 + 0.015) * (1 + 0.020) - 1, 4)
Explanation: Devaluación
Contenido
<img src="images/devaluacion.png" width=600>
$$d=\frac{f-f_e}{1+f_e},~~~~1+d=\frac{1+f}{1+f_e}$$
Cálculos con moneda extranjera
Contenido
$i$ -- tasa equivalente de interés en moneda local    
$i_e$ -- tasa de interés en moneda extranjera     
$d$ -- tasa de devaluación de la moneda local frente a la moneda extranjera.    
$f$ -- tasa de inflación interna    
$f_e$ -- tasa de inflación externa   
Interés equivalente para un préstamo en moneda extranjera:
$$1+i=(1+i_e)(1+d)$$
Ejemplo.-- ¿Cuál es la rentabilidad en pesos de un proyecto extranjero que ofrece una rentabilidad del 1.5% mensual?, se estima una devaluación mensual de 2.0%
End of explanation
x = cf.cashflow([1000]*10)
cf.currency_conversion(cflo=x, exchange_rate = 2)
Explanation: Ejemplo.-- Considere un flujo de efectivo constante de \$ 1000 durante 10 periodos. Conviértalo a moneda extranjera si la tasa de cambio es de \$ 2.
End of explanation
x = cf.cashflow([1000]*10)
cf.currency_conversion(cflo=x, exchange_rate = 2, devaluation=cf.nominal_rate(const_value=[1]*10))
Explanation: Ejemplo.-- Considere el mismo caso anterior con una devaluación por periodo del 1%.
End of explanation
<END_TASK>