Está en la página 1de 29

Consecutivo: INF-INV-MATFR-INF-2010/II

Esta obra esta bajo una licencia de reconocimiento-no


comercial 2.5 Colombia de creativecommons. Para ver una
copia de esta licencia, visite
http://creativecommons.org/licenses/by/2.5/co/ o envié una
carta a creative commons, 171second street, suite 30 San
Francisco, California 94105, USA

Matlab financiero

Autores:

Jeimmy Paola Muñoz Soracipa


Francisco González Buitrago

Director Unidad Informática: Henry Martínez Sarmiento

Tutor Investigación: Alejandro NIeto

Coordinadores: Alejandro Nieto Ramos


Laura Vanessa Hernandez
Juan Felipe Reyes Rodríguez
Coordinador Servicios Web: Miguel Ibañez

Analista de Infraestructura
y Comunicaciones: Alejandro Bolivar

Analista de Sistemas de
Información: Mesias Anacona Obando

Coordinadora Inventarios: Sandra Yazmin Corrales

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
BOGOTÁ D.C.
NOVIEMBRE DE 2010

UNI-FO-13 V 1.0
Consecutivo: INF-INV-MATFR-INF-2010/II

matlab Financiero
Director Unidad Informática: Henry Martínez Sarmiento

Tutor Investigación: Alejandro Nieto

Auxiliares de Investigación:

GLORIA STELLA BARRERA ARDILA


DAVID FELIPE BELTRAN GOMEZ
PEDRO ANDRES BOHORQUEZ
IVAN ALBEIRO CABEZAS MARTINEZ
SANDRA MILENA CASTELLANOS PÁEZ
EDGAR ANDRES GARCIA HERNANDEZ
CESAR LEONARDO GARIBELLO OSPINA
FRANCISCO GONZÁLEZ BUITRAGO
LILIANA CAROLINA HERRERA PRIETO
LUIS CARLOS MARTÍNEZ RUIZ
JEIMMY PAOLA MUÑOZ SORACIPA
LINETH JOHANA NIETO CHAVEZ
JAVIER ALEJANDRO ORTIZ VARELA
CINDY LORENA PABÓN GÓMEZ
JUAN DAVID PÁEZ ALVAREZ
CAMILO ALEXANDRY PEÑA TALERO
DIEGO ARMANDO POVEDA ZAMORA
DANIEL FRANCISCO ROJAS MARTÍN
JUAN CARLOS TARAPUEZ ROA
CAMILO ALBERTO ZAPATA MARTINEZ

Este trabajo es resultado del esfuerzo de todo el


equipo perteneciente a la Unidad de Informática.

Se prohíbe la reproducción parcial o total de este


documento, por cualquier tipo de método fotomecánico
y/o electrónico, sin previa autorización de la
Universidad Nacional de Colombia.

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
BOGOTÁ D.C. SEPTIEMBRE DE 2010

UNI-FO-13 V 1.0
MATLAB FINANCIERO

TABLA DE CONTENIDO

TABLA DE CONTENIDO ...................................................................................................................3

1. RESUMEN .......................................................................................................................................5

2. ABSTRACT .....................................................................................................................................5

3. INTRODUCCIÓN........................................................................................................................6

3.1. VIABILIDAD............................................................................................................................6

3.1.1. ¿Se puede en Matlab? ....................................................................................................6

3.2. EJERCICIOS PRACTICOS (Enfocados al Curso de MATLAB FINANCIERO) .... 11

3.2.1. Tasa de interés simple y compuesta....................................................................... 11

3.2.2. Tasa Interna de retorno............................................................................................ 12

3.2.3 Tasa nominal y tasa efectiva ..................................................................................... 13

3.2.4. Anualidades .................................................................................................................. 14

3.2.5. Valor presente y valor futuro .................................................................................. 14

3.2.6. Valor Presente Neto ...................................................................................................... 15

3.2.7. Bonos ................................................................................................................................. 15

3.2.8. Amortizaciones ................................................................................................................ 20

3.3. CREAR UNA FUNCIÓN.................................................................................................. 22

3.3.1. Gradientes .................................................................................................................... 24

3.3.1.1. Gradientes Geométricos .................................................................................. 24

3.3.1.2. Gradientes lineales ............................................................................................. 26

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
3
UNI-FO-02 V 1.0
MATLAB FINANCIERO

4 CONCLUSIONES ...................................................................................................................... 28

5 BIBLIOGRAFIA ........................................................................................................................... 29

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
4
UNI-FO-02 V 1.0
MATLAB FINANCIERO

1. RESUMEN
Este informe es la continuación de la investigación emprendida por la Unidad de
Informática de La facultad de Ciencias Económicas, titulada Modelamiento y análisis
financiero en Matlab, en la cual se realizó una inmersión en los toolbox que posee este
software aplicativo, haciendo especial énfasis en el financiero, enfocando dichos temas al
curso libre de “Excel Financiero”, para su implementación en Matlab; arrojando como
conclusión que Matlab es un software que tiene un gran potencial para ser aplicado en el
mundo de las finanzas. Así, en este informe se realiza una inspección más exhaustiva de los
recursos que ofrece el toolbox financiero, para analizar y demostrar que matlab puede ser
usado en la enseñanza de tópicos de índole financiero, siendo mejor en algunos casos que
que la hoja de cálculo de Excel.

2. ABSTRACT
This report is the continuation of the research undertaken by the Unit of Computer
Science of The Economic Sciences Faculty, named “Modelamiento y analisis financiero en
Matlab”, in which a dip was realized in the toolbox that it possesses this applicative
software, doing special emphasis in the financier, focusing the above mentioned topics on
the free course of " Financial Excel ", for their implementation in Matlab; throwing as
conclusion that Matlab is a software that has a great potential to be applied in the world of
the finance. This way, in this report there is realized a more exhaustive inspection of the
resources that the financial toolbox offers, to analyze and to demonstrate that matlab
financier can be used in the education of topics of nature, being better in some cases that
that the spreadsheet of Excel.

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
5
UNI-FO-02 V 1.0
MATLAB FINANCIERO

3. INTRODUCCIÓN
Dentro de la enseñanza de temas concernientes a las finanzas en la Facultad de Ciencias
Económicas únicamente se emplean las herramientas que contiene la suite de office, sin
embargo estas no son las únicas que tiene la facultad a disposición de la comunidad
universitaria. Matlab es una herramienta que podría emplear la facultad, no obstante no se
tiene el conocimiento del potencial que esta nos ofrece con su toolbox financiero. En este
sentido esta investigación tiene como propósito realiza una inmersión dentro de este
toolbox y encontrar su aplicabilidad en el contexto académico de la facultad.

3.1. VIABILIDAD

3.1.1. ¿Se puede en Matlab?

El toolbox financiero ofrece un gran número de funciones, que son de gran utilidad a la
hora de realizar cálculos financieros, sin embargo para obtener los resultados en formato
de número decimal (comúnmente empleado) se recomienda efectuar la siguiente
configuración:

Files> preferences>command window>text display>numeric format> bank ó long g

Se empiezan a realizar algunos ejercicios de MATLAB a nivel básico, al igual que se inicia
en la documentación base (Ver ESTADO DEL ARTE).

Se observa que algunos ejemplos son fácilmente implementados en Excel… Y además, en


el caso particular del manual creado por la UIFCE, son confusos y/o no dan el resultado
esperado. Tomemos “de manera literal” el siguiente ejercicio, del manual
anteriormente mencionado [1] (página 91), basado en la función xirr que permite calcular
la tasa interna de retorno para una programación de flujos de caja no periódicos:

Una inversión de $16.000 tiene el siguiente flujo de caja no periódico. La inversión inicial y
sus fechas son incluidas.

Flujos de caja y fechas

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
6
UNI-FO-02 V 1.0
MATLAB FINANCIERO

($10000) enero 14,2003 * Aquí por ejemplo se notan problemas de digitación

$3500 Febrero 20, 2003

$3000 Marzo 3, 2003

$3000 Junio 14,2004

$4000 Diciembre 1,2004

%Calcula la tasa interna de retorno para flujos no periódicos.

Flujo de caja =[-16000,3500,3000,3000,4000];

Fechas=[‘01/12/2003’

’02/14/2004’

’03/03/2041’

’06/14/2004’

’12/01/2004’];

Retorno= xirr (CashFlow, CashFlowDates)

Devuelve:

Retorno =

0.4644 (ó 43.44)

Obviando algunos errores de digitación que se hubieran podido crear en el manual, al


implementar el ejercicio en el software literalmente nos devuelve errores puesto que
Flujo de Caja no se consideraría una variable, y además en la función se llaman las variables
en inglés.

Nosotros replanteamos el ejercicio de la siguiente forma:

CF = [-10000 ; 2500 ; 2000 ; 3000 ; 4000];


UNIVERSIDAD NACIONAL COLOMBIA
FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
7
UNI-FO-02 V 1.0
MATLAB FINANCIERO

DF = {'12-Jan-2007'

'14-Feb-2008'

'03-Mar-2008'

'14-Jun-2008'

'01-Dec-2008'};

R = xirr(CF, DF)

Devuelve

R=

0.1006

Esto es fácilmente calculado con la función en EXCEL


TIR.NO.PER(valores;fechas;estimar) presentado en la tabla 1.

Valores Fechas
-10000 12/01/2007
2500 14/02/2008
2000 03/03/2008
3000 14/06/2008
4000 01/12/2008
Fórmula Descripción
(resultado)
"=TIR.NO.PER(A2:A6;B2:B6)" Tasa interna de
retorno
(0,100643784
ó 10,06%)

Debido a que MATLAB puede ser un tanto engorroso para ser utilizado por los
estudiantes de la facultad de ciencias económicas, planteamos que para solucionar
problemas sencillos es mucho más fácil EXCEL en su uso. Por ende se plantean ejercicios

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
8
UNI-FO-02 V 1.0
MATLAB FINANCIERO

fáciles de simulación, (facultad que no tiene EXCEL y si MATLAB) para ser utilizados…
Veamos el siguiente ejemplo:

%Este programa pone de manifiesto la conjetura de Slutsky sobre ciclos

%económicos. Él mostró que los ciclos económicos pueden ser el resultado

%de la acumulación de choques estocásticos.

clear

T = 100; phi=0.9;

y(1) = 0;

for t=2:T

a=rand;

if a<=0.25

alet(t) = 1;

elseif a<=0.5

alet(t) = 0.5;

elseif a<=0.75

alet(t) = -0.5;

else

alet(t) = -1;

end

y(t) = phi*y(t-1)+alet(t);

end

plot(y, ‘r’)
UNIVERSIDAD NACIONAL COLOMBIA
FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
9
UNI-FO-02 V 1.0
MATLAB FINANCIERO

Este programa, de manera muy sencilla muestra gráficamente una variación económica de
una empresa.

Otro ejemplo analizado, empieza a implementar algunas funciones del toolbox financiero.
En este se observa el gráfico de un flujo de caja cuando se compra un bono, su tasa cupón
y las fechas de maduración. Mostrando al final el gráfico de flujo de caja.

Settle = '03-Aug-1999';

Maturity = ['15-Aug-2000';'15-Dec-2000'];

CouponRate= [0.06; 0.05];

Period = [3;2];

Basis = [1;0];

[CFlowAmounts, CFlowDates, TFactors] = cfamounts (CouponRate,...

Settle, Maturity, Period, Basis);

cfplot(CFlowDates,CFlowAmounts)

xlabel('Numeric Cash Flow Dates')

ylabel('Bonds')

title('Cash Flow Diagram')

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
10
UNI-FO-02 V 1.0
MATLAB FINANCIERO

3.2. EJERCICIOS PRACTICOS (Enfocados al Curso de


MATLAB FINANCIERO)

3.2.1. Tasa de interés simple y compuesta

Para calcular este tipo de tasas Matlab no ofrece una formula ya predeterminada, entonces
para obtener los resultados se parametrizan las variables de la formula o simplemente,
realizamos la operación como si Matlab fuera una calculadora así:

P: cantidad

I: tasa de interés

n: periodos

Tasa de interés simple

>> ((P)+(P)*(n))

>> ((1000)+ (1000*0.2))

ans =

1200
UNIVERSIDAD NACIONAL COLOMBIA
FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
11
UNI-FO-02 V 1.0
MATLAB FINANCIERO

Tasa de interés compuesta

>> (P)*(1+i)^n

>> ((1000)*((1+0.2)^2))

ans =

1440

Estas funciones pueden ser implementadas en un script (m-file). Esto se verà em


profundidad mas adelante.

3.2.2. Tasa Interna de retorno

Calcular la TIR de una inversión de 10000 con unas fechas determinadas

CF = [-10000 ; 2500 ; 2000 ; 3000 ; 4000];%Flujo de Caja

DF = {'12-Jan-2007'

'14-Feb-2008'

'03-Mar-2008'

'14-Jun-2008'

'01-Dec-2008'}; %Fechas de cobro del flujo de caja

R = xirr(CF, DF) %xirr(flujo,fechas)

Devuelve

R=

0.1006

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
12
UNI-FO-02 V 1.0
MATLAB FINANCIERO

3.2.3 Tasa nominal y tasa efectiva

Calcular la tasa nominal a la que equivale una tasa de interés efectiva anual de 9.38%

>> nomrr(0.0938,12) % nomrr(tasa, numero de periodos)


0.0900

Cual es el interés efectivo de una tasa de interés del 18% anual si se capitaliza:

a. Anualmente
b. Semestralmente
c. Mensualmente
d. Diariamente (suponga año de 365 días)

a. >> effrr(0.18,1) % effrr(tasa, numero de periodos)


ans =
0.1800

b. >> effrr(0.18,2)
ans =
0.1881

c. >> effrr(0.18,12)
ans =
0.1956

d. >> effrr(0.18,365)
ans =
0.1972

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
13
UNI-FO-02 V 1.0
MATLAB FINANCIERO

3.2.4. Anualidades

Una persona deposita $100.000 en una cuenta que paga el 5% semestral. Si esta persona
quisiera retirar cantidades iguales al final de cada semestre durante 5 años ¿de que
tamaño seria cada retiro?

>> payper(0.05,10,100000,0,0) % payper(Tasa, NumPeriods, ValorPresente, ValorFuturo,


Días)

ans =
12950.46

3.2.5. Valor presente y valor futuro

Valor Futuro

Si en una cuenta de ahorros que paga el 15% anual se depositan $ 1000 anuales durante cinco
años, ¿Qué cantidad se acumularía al final del año 10, si el primer depósito se hizo al final del
año 1?.

>> fvfix(0.15,5,1000,0,0)%fvfix(interés,tiempo,dinero,pago_extra(opc),

%anticipado=1/vencido=0(opc))

ans =

6742.38

Al final del quinto año se acumula $6742.38, entonces como se quiere saber cuánto
tenemos al final del año 10 se multiplica la cantidad acumulada por los intereses de los
siguientes 5 años

>> 6742.38*((1+0.15)^5) %P(1+int)^n


UNIVERSIDAD NACIONAL COLOMBIA
FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
14
UNI-FO-02 V 1.0
MATLAB FINANCIERO

ans =

13561.33

Nota: Para calcular el valor presente, únicamente se cambia la formula

3.2.6. Valor Presente Neto

Valor Presente Neto.

MATLAB maneja dos funciones, una con fechas periódicas (pvvar) y otra con fechas
manejadas por el usuario (pvfix). Veamos el siguiente ejemplo:

%Calcule el valor actual del siguiente flujo de caja considerando una tasa de %descuento
de 15%

% Años 0 1 2 3 4

%FC 0 500 700 700 900

En MATLAB tenemos:

A= pvvar ([0, 500,700,700,900],0.15); % Colocamos los valores futuros y el %porcentaje

Devuelve:

A= 1938.92

3.2.7. Bonos

Antes de hablar sobre bonos es importante analizar algunos componentes utilizados


(variables) en MATLAB.

Basis: Es la convención utilizada por MATLAB para contar el número de días que resta en
un bono para su maduración. Por ejemplo en la expresión actual/ actual el numerador
calcula el número de días real entre dos rechas y el denominador cuenta el número de
días en un año, es decir 366 o 365 dependiendo de si es bisiesto o no.

 0 = actual/actual
UNIVERSIDAD NACIONAL COLOMBIA
FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
15
UNI-FO-02 V 1.0
MATLAB FINANCIERO

 1 = 30/360 (SIA)
 2 = actual/360
 3 = actual/365
 4 = 30/360 (PSA)
 5 = 30/360 (ISDA)
 6 = 30/360 (European)
 7 = actual/365 (Japanese)
 8 = actual/actual (ISMA)
 9 = actual/360 (ISMA)
 10 = actual/365 (ISMA)
 11 = 30/360E (ISMA)
 12 = actual/365 (ISDA)
 13 = BUS/252

Default: 0

Period(m): Frecuencia de cobro de un cupón.

0=cupón cero

1=anual

2=semestral (por defecto)

3=trimestral

4=cuatrimestral

6=bimestral

12=mensual

3.2.7.1. Rentabilidad de un bono

Veamos el siguiente ejemplo, para un bono del estado con tres diferentes rentabilidades:

Yield = [0.04; 0.05; 0.06]; %Tasas de Rentabilidad esperadas

CouponRate = 0.05; %Tasa Cupón

Settle = '20-Jan-1997'; %Fecha de adquisicion del bono

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
16
UNI-FO-02 V 1.0
MATLAB FINANCIERO

Maturity = '15-Jun-2002'; %Fecha de Madurez/ Vencimiento del bono

Period = 2; %Periodos de Pago (Ver Rangos)

Basis = 0; %base (Ver Rangos)

[Price, AccruedInt] = bndprice(Yield, CouponRate, Settle,...

Maturity, Period, Basis) %Aqui hallamos el precio del bono

Esto devuelve:

Price =

104.8106

99.9951

95.4384

AccruedInt =

0.4945

0.4945

0.4945

3.2.7.2. Rendimiento de un bono,

MATLAB utiliza la expresión bndyield, veamos el siguiente caso de aplicación en el que se


analizará el rendimiento de un bono con tres diferentes precios:

Price = [95; 100; 105]; %DIferentes precios del bono

CouponRate = 0.05; %Tasa Cupón


UNIVERSIDAD NACIONAL COLOMBIA
FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
17
UNI-FO-02 V 1.0
MATLAB FINANCIERO

Settle = '20-Jan-2002'; %Fecha de adquisicion del bono

Maturity = '15-Jun-2007'; %Fecha de Madurez/ Vencimiento del bono

Period = 2; %Periodos de Pago (Ver Rangos)

Basis = 0; %base (Ver Rangos)

Rentabilidad = bndyield(Price, CouponRate, Settle,...

Maturity, Period, Basis)% se analiza la rentabilidad

Devuelve:

Yield =

0.0610

0.0500

0.0396

3.2.7.3. Fechas de un bono

Para obtener la estructura de pagos de un bono MATLAB utiliza la siguiente función cfdates

Donde:

>>CfFechas=cfdates(Settle, Maturity, m (Opcional),Basis(Opcional),


EndMonthRule(Opcional),IsuueDate(Opcional),

FirstCouponRate (Opcional), Last CouponRate(opcional) )

para ver las fechas utilizaremos la funcion datestr

>> datestr(CfFechas)

Ejemplo:
UNIVERSIDAD NACIONAL COLOMBIA
FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
18
UNI-FO-02 V 1.0
MATLAB FINANCIERO

%Sean tres bonos con tres fechas de vencimiento diferentes y las siguientes caracteristicas:

%Settle: ’15.Mar.2000’

%Maturity:’30-sept-2001’,’31-oct-2002’,’30-nov-2002’

%Pago cupones semestralmente

%Basis actual/actual

%EndMonthRule activa

>> Maturity =[’30-Sep-2001’;’31-oct-2002’; ’30-Nov-2002’]

>>CF=cfdates(’15-Mar-2000’, Maturity)

%CF =

% 730576 730759 730941 731124 NaN NaN

% 730606 730790 730971 731155 731336 731520

% 730637 730820 731002 731185 731367 731550

>> datestr(CF(3,:))

%ans =

%31-May-2000

%30-Nov-2000

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
19
UNI-FO-02 V 1.0
MATLAB FINANCIERO

%31-May-2001

%30-Nov-2001

%31-May-2002

%30-Nov-2002

3.2.7.4. Duración y convexidad de un bono

Para un bono estándar la duración se calcula:

>>[Duration. ModDuration]=cfdur(CashFlow,r) %Donde cashFlow es el flujo de caja y r es la tasa

% Si por ejemplo se calcula la duración de un bono A de nominal 100 a cinco años con cupon
anual del 10% y cuya TIR es r=12% anual entonces

>> CashFlow=[10 10 10 10 110];

>>[Duracion. ModDuracion]=cfdur(CashFlow,0.12)

Retorna

Duracion=

4.1355 (años)

ModDuracion=

3.6924 (años)

%El precio de un bono normal coincide con el VAN, por tanto la función pvfix

>>P= pvfix(0.12, 5, 10,100,0)

P=92,79

3.2.8. Amortizaciones

Annurate, sirve para calcular la tasa de interes periodico pagado en un prestamo o


anualidad, su sintaxis es

r=annurate(Numperiods, Valorpresente,valorfuturo(opc),anticipado=1,vencido=0(por
defecto=0))

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
20
UNI-FO-02 V 1.0
MATLAB FINANCIERO

%se toma un prestamo de 8000 por 5 años y se hacen pagos mensuales de 225 al final de cada
mes

%para calcular la tasa de interes tenemos...

>>tasa_mensual=annurate(5*12,225,8000,0,0)

Devuelve

tasa_mensual= 0.02

Amortize, sirve para generar una tabla de amortización, devuelve el principal y los pagos
del prestamo, el saldo del valor original del monto prestado, los intereses pagados y el
abono a capital periódico, su sintaxis es:

[Principal, tasa, Valor_presente, Pago]=amortize(tasa, Numperiods, Valorpresente,


valorfuturo(opc),tipo: anticipado=1,vencido=0(por defecto=0))

%Calcule una tabla de amortización para un prestamo convencional de 30 años a una tasa fija
con pagos mensuales constantes. Asuma que la tasa fija es del 12% anual periodica y el valor
inicial del prestamo es de 2000000

%para calcular la amortización tenemos...

>>tasa_mensual=0.12/12;

>>nper=30*12;

>>valorpresente= 2000000;

[Principal, Interes, Balance, Pago]=amortize (tasa,nper,valorpresente);

%Esto nos arroja un array de datos, para una mejor visualización, se %plantea el siguiente gráfico
para ver el actual saldo del préstamo, el %abono a capital y el pago de interes sobre el tiempo de
amortización. Se %nota que excede los 2700000 mucho mas que la cantidad prestada

plot (Balance,’b’), hold(‘on’)

plot(cumsum(Principal),’- -k’)

plot(cumsum(Interes),’r’)

xlabel(‘Pago’)

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
21
UNI-FO-02 V 1.0
MATLAB FINANCIERO

ylabel(‘Pesos’)

grid(‘on’)

title(‘Saldo, Abono a Capital e Interes’)

legend(‘Saldo’,’Abono a Capital’,interes acumulado’,’TL’)

%La línea azul sólida representa el saldo de la deuda, que declina mientras transcurren los 30
años (360 meses). La línea punteada roja indica el incremento acumulado de los pagos de
interés. Finalmente la línea cortada negra representa el abono a capital logrado después de los
30 años.

3.3. CREAR UNA FUNCIÓN


Se pueden crear funciones de manera fácil a través del block de notas guardando el
archivo con extensión *.m, y si se desea ubicándolo en la carpeta MATLAB de mis
documentos.

En el presente se utilizará la función de préstamo (un tipo de amortización), escribiéndola


de la siguiente manera

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
22
UNI-FO-02 V 1.0
MATLAB FINANCIERO

%prestamo.m

function [pagom, pagot]=prestamo(cantidad,interes,annios)

%Amortizacion mensual y total de un prestamo a lo largo de su vida

%Argumentos de entrada:

%cantidad=cant. del prestamo en pesos

%interes =porcentaje de interes

%annios=numeros de años (vida) del prestamo

%Argumentos de salida:

%padom=amortizacion mensual, pagot * amotizzcion total

interesm= interes*0.01/12;

a=1+interesm;

b=(a^(annios*12)-1)/interesm;

pagom=cantidad*a^(annios*12)/(a*b);

pagot=pagom*annios*12;

Al finalizar nuestra función préstamo la utilizaremos de la siguiente forma en MATLAB

>>help prestamo

Con este comando veremos todo lo que colocamos en comentarios, para utilizarla
tenemos el siguiente ejemplo

>>[mensual,total]=préstamo(25000,7.5,4)%prestamo(dinero,tasa,años)

En MATLAB retorna

Mensual=

600,72
UNIVERSIDAD NACIONAL COLOMBIA
FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
23
UNI-FO-02 V 1.0
MATLAB FINANCIERO

Total=

28834.47

3.3.1. Gradientes

En matemáticas financieras gradientes son anualidades o serie de pagos periódicos, en los


cuales cada pago es igual al anterior más una cantidad; esta cantidad puede ser constante o
proporcional al pago inmediatamente anterior. El monto en que varía cada pago determina
la clase de gradiente:

Si la cantidad es constante el gradiente es aritmético (por ejemplo cada pago aumenta o


disminuye en UM 250 mensuales sin importar su monto).

Si la cantidad en que varía el pago es proporcional al pago inmediatamente anterior el


gradiente es geométrico (por ejemplo cada pago aumenta o disminuye en 3.8% mensual)

3.3.1.1. Gradientes Geométricos

En MATLAB para desarrollar un gradiente geométrico se debe crear un script que realice
esta tarea, se propone el siguiente programa pero el lector puede crear su aplicación.

function [vp, vf, vfi, vpago]=gradlin(A,L,i,n,p)

%Gradiente lineal

%Argumentos de entrada:

%A=Anualidad

%L=incremento

%i=interés

%n=tiempo (meses)

%p=valor de un pago

%Argumentos de salida:

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
24
UNI-FO-02 V 1.0
MATLAB FINANCIERO

% valor presente, valor futuro, gradiente infinito

If ( i==0){

disp('Error: Interes igual a cero');

else

i=i/100;

r=-n;

vp= A*((1-(1+i)^r)/i) +(L/i)*(((1-(1+i)^r))/i)+r*(1+i)^r);

vf=A*(((1+i)^r-1)/i)+(L/i)*(((1+i)^r - 1)/i)+r);

vfi= (A+L)/i;

vpago=A+(p-1)*L;

end

Para ejecutar el script tendríamos el siguiente ejemplo:

>>[vp, vf, vfi, vpago]=gradlin(500000, 5000,0.5,60,60)

Devuelve

vp=33106009

vf= 9772937

vfi= 101000000

vpago=795000 %(este valor equivale a la anualidad en el periodo 60)

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
25
UNI-FO-02 V 1.0
MATLAB FINANCIERO

3.3.1.2. Gradientes lineales

En MATLAB para desarrollar un gradiente lineal se debe crear un script que realice esta
tarea, se propone el siguiente programa pero el lector puede crear su aplicación.

function [vp, vf, ggi, vpago]=gradgeom(A,G,i,n,p)

%GRadiente geometrico

%Argumentos de entrada:

%A=Anualidad

%G=incremento

%i=interes

%n=tiempo (meses)

%p=valor de un pago

%Argumentos de salida:

%pagom=valor presente,valor futuro, gradiente infinito, pago

if (i==0)

disp('Error: Interes igual a cero');

else if (G~=i);

r=-n;

vp= A*((1+G)^n*((1+i)^r) -1)/(G-i));

vf= A*((1+G)^n-((1+i)^n))/(G-i));

else if (G==i)

vp= (A*n)/(1*n);

vf= A*n*((1+i)^(n-1));

end;
UNIVERSIDAD NACIONAL COLOMBIA
FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
26
UNI-FO-02 V 1.0
MATLAB FINANCIERO

ggi= A/(i-G);

vpago=A*(1+G)^(n-1);

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
27
UNI-FO-02 V 1.0
MATLAB FINANCIERO

4 CONCLUSIONES

La implementación de MATLAB en el ámbito académico de la Facultad muestra un gran


potencial debido a su versatilidad, esta se ve reflejada en la posibilidad de dar solución a
ejercicios básicos como los cálculos de las tasa de interés y algunos mas elaborados como lo
son las simulaciones, todo depende de que tanto desee programar un estudiante de la
facultad de ciencias económicas.
El trabajo base de nuestros antiguos compañeros es admirable, sin embargo nuestra
propuesta seria la de trabajar sobre el manual existente, mejorarlo, y observar que otros
ejemplos agregar, para hacer un curso práctico.
Debido a que el toolbox financiero de MATLAB contiene una gran cantidad de funciones,
este puede ser utilizado en una materia de finanzas o similar al de Excel Avanzado aplicando
casos prácticos, al igual que posibilita el crear funciones para ser utilizadas acorde con lo
que necesite el usuario.

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
28
UNI-FO-02 V 1.0
MATLAB FINANCIERO

5 BIBLIOGRAFIA

[1] UIFCE, MANUAL MATLAB FINANCIERO, 2005


http://www.fce.unal.edu.co/uifce/newuifce/conf/documentos/modelamiento_y_analisis_fina
nciero_en_matlab.pdf

[2] GARCIA, Javier Aprenda MATLAB como si estuviera en primero


http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab70/matlab70primero.pdf

[3]THE MATWORKS Inc, Financial Toolbox User’s Manual, 2005


http://dali.feld.cvut.cz/ucebna/matlab/pdf_doc/finance/finance.pdf

[4] APLICACIONES FINANCIERAS CON EXCEL, 2005


http://www.scribd.com/doc/1555996/Aplicaciones-Financieras-de-Excel

UNIVERSIDAD NACIONAL COLOMBIA


FACULTAD DE CIENCIAS ECONÓMICAS
UNIDAD DE INFORMÁTICA Y COMUNICACIONES
29
UNI-FO-02 V 1.0

También podría gustarte