Anda di halaman 1dari 150

Valoracin de derivados herramienta para valoracin

de forwards, futuros, swaps y opciones

Alejandro Perez Londono

ESCUELA DE INGENIERIA DE ANTIOQUIA


INGENIERIA ADMINISTRATIVA
PREGRADO
ENVIGADO
Octubre 13 de 2009
Valoraci on de Derivados
Herramienta para valoracion de Forwards, Futuros, Swaps y
Opciones

Alejandro Perez Londono

Trabajo de grado para optar por el ttulo de

Ingeniero Administrador

Jorge Mario Obando Lopez

ESCUELA DE INGENIERIA DE ANTIOQUIA


INGENIERIA ADMINISTRATIVA
PREGRADO
ENVIGADO
Octubre 13 de 2009
Nota de aceptacion:

Firma del jurado

Firma del jurado

Medelln, 13 de Octubre del 2009


A mi papa, por ser el mejor maestro que he tenido.
A mi mama, por ser la mejor de las amigas.
Agradecimientos
Este trabajo representa el final de una etapa de la vida que estuvo llena de buenos
momentos, de aprendizaje, de # %$*@! &#$ y sobre todo de muchas personas que me
dejaron conocimiento, lecciones de vida y gratos recuerdos.
A todas esas personas ellos sabran quienes son muchas gracias por haber ayu-
dado a que hoy, yo sea la persona que soy.
Tabla de Contenido
Introduccion 18

1 Preliminares 20
1.1 Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2 Justifcacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.3 Objetivos del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.3.1 Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.3.2 Objetivos especficos . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4 Marco teorico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4.1 Breve historia de los derivados . . . . . . . . . . . . . . . . . . . 21
1.4.2 Instrumentos Financieros Derivados . . . . . . . . . . . . . . . . 25
1.4.3 Valoracion de Derivados . . . . . . . . . . . . . . . . . . . . . . . 28

2 Metodologa del proyecto 44

3 Desarrollo del proyecto 45


3.1 Seleccion de las metodologas para valorar . . . . . . . . . . . . . . . . . 45
3.2 Diseno de los valoradores . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2.1 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.3 Construccion de los valoradores . . . . . . . . . . . . . . . . . . . . . . . 58
3.3.1 Codigo VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4 Pruebas de desempeno . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

4 Conclusiones 122

5 Recomendaciones 123

Bibliografa 125

A Instalacion de la aplicacion 127


Indice de Tablas
1 Mercado mundial de derivados. . . . . . . . . . . . . . . . . . . . . . . . 23
2 Mercado colombiano de derivados. . . . . . . . . . . . . . . . . . . . . . 24
3 Resultados de las Pruebas de Desempeno . . . . . . . . . . . . . . . . . 121
Indice de Figuras
1 Ejemplo de un Forward de Venta de USD a cambio de COP (I) y un
Forward de Compra de USD a cambio de COP (II) . . . . . . . . . . . . 26
2 Ejemplo del diagrama de flujos de un Swap . . . . . . . . . . . . . . . . 28
3 Ejemplo de un FRA 3/9 . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4 Arbol binomial de 2 pasos para una Opcion Europea . . . . . . . . . . . 38
5 Comparacion de arbol binomial para una Opcion Europea (I) y una Op-
cion Americana (II) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6 Menu Inicial del Valorador . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7 Vista de la Hoja SERIES del valorador . . . . . . . . . . . . . . . . . . . 49
8 Vista de la Hoja FORWARDS del valorador . . . . . . . . . . . . . . . . 49
9 Formulario de Adquisicion de Forwards . . . . . . . . . . . . . . . . . . 50
10 Formulario de Adquisicion de Forwards con boton para parametrizar T-
tulos Renta Fija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
11 Formulario de Parametrizacion de Ttulos Renta Fija . . . . . . . . . . . 52
12 Formulario de Adquisicion de Forwards con boton para parametrizar FRAs 53
13 Formulario de Parametrizacion de FRA (Forward Rate Agreement ) . . . 53
14 Vista de la Hoja Futuros del valorador . . . . . . . . . . . . . . . . . . . 54
15 Formulario de Adquisicion de Futuros . . . . . . . . . . . . . . . . . . . 54
16 Vista de la Hoja OPCIONES del valorador . . . . . . . . . . . . . . . . 55
17 Formulario de Adquisicion de Opciones . . . . . . . . . . . . . . . . . . 56
18 Formulario de Adquisicion de Opciones con boton para parametrizar Di-
videndos de Acciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
19 Formulario de Parametrizacion de Dividendos de Acciones . . . . . . . . 58
20 Estructura del codigo del Valorador de Derivados . . . . . . . . . . . . . 59
21 Diseno del formulario frmAyudafrm . . . . . . . . . . . . . . . . . . . . 60
22 Diseno del formulario frmCreditos . . . . . . . . . . . . . . . . . . . . . 60
23 Diseno del formulario frmNewFrd . . . . . . . . . . . . . . . . . . . . . . 61
24 Diseno del formulario frmNewFrd 1 . . . . . . . . . . . . . . . . . . . . . 65
25 Diseno del formulario frmNewFrd 2 . . . . . . . . . . . . . . . . . . . . . 66
26 Diseno del formulario frmNewFrd 3 . . . . . . . . . . . . . . . . . . . . . 69
27 Diseno del formulario frmNewFut . . . . . . . . . . . . . . . . . . . . . . 70
28 Diseno del formulario frmNewOpc . . . . . . . . . . . . . . . . . . . . . 74
29 Diseno del formulario frmNewOpc 1 . . . . . . . . . . . . . . . . . . . . 79
30 Diseno del formulario frmValFrd . . . . . . . . . . . . . . . . . . . . . . 80
31 Diseno del formulario frmValFut . . . . . . . . . . . . . . . . . . . . . . 80
32 Diseno del formulario frmValOpc . . . . . . . . . . . . . . . . . . . . . . 80
14 Herramienta para valoracion de Forwards, Futuros, Swaps y Opciones

33 Habilitacion de Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128


34 Boton de Office . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
35 Pestana del Programador . . . . . . . . . . . . . . . . . . . . . . . . . . 129

lej
A

an
dr
o P

re
Glosario
DTF1 es una tasa de interes calculada como un promedio ponderado semanal por mon-
to, de las tasas promedios de captacion diarias de los CDTs a 90 das, pagadas por los
bancos, corporaciones financieras, de ahorro y vivienda y companas de financiamiento
comercial. La calcula el Banco de la Republica con la informacion provista por la Su-
perintendencia Financiera hasta el da anterior. La DTF tiene vigencia de una semana.

IBR2 es una tasa de interes de corto plazo para el peso colombiano, la cual refleja el
precio al que los agentes participantes en su esquema de formacion estan dispuestos a
ofrecer o a captar recursos en el mercado monetario.

IPC3 es un ndice de precios ponderado que permite medir la variacion porcentual pro-
medio de los precios generalizados al por menor de un conjunto de bienes y servicios
finales destinados al consumo de los individuos y de los hogares.

MERCADO MOSTRADOR4 es aquel que se desarrolla fuera de las bolsas de valores,


sobre valores inscritos en el Registro Nacional de Valores e Intermediarios.
Son los instrumentos o productos que se transan por fuera de bolsas o de sistemas
de negociacion de valores. Tambien se conocen con la denominacion Over the Counter
(OTC).

TRM5 la tasa de cambio representativa del mercado (TRM) es hoy en da el indicador


oficial de la tasa de cambio del peso colombiano por un dolar de los Estados Unidos.
La TRM se calcula con base en las operaciones de compra y venta de divisas realiza-
das por los intermediarios financieros que transan en el mercado cambiario colombiano,
con cumplimiento el mismo da cuando se realiza la negociacion de las divisas. Hoy en
da es la Superintendencia Financiera de Colombia quien calcula y certifica diariamente
la TRM con base en las operaciones registradas el da habil inmediatamente anterior.

UVR6 La unidad de valor real (UVR) refleja el poder adquisitvo con base en la variacion
del ndice de precios al consumidor (IPC) certificado por el Departamento Administra-
tivo Nacional de Estadstica (DANE). A partir de enero de 2000 la UVR reemplazo la
unidad de poder adquisitivo constante (UPAC).
La UVR es calculada de acuerdo con la metodologa establecida por el Consejo de
Poltica Economica y Social (Conpes), y se usa para calcular el costo de los creditos de
vivienda. Esta unidad de cuenta permite a las entidades financieras ajustar el valor del
credito segun el incremento del costo de vida en nuestro pas..

1
Tomado del portal web http://www.businesscol.com/
2
Tomado de Asobancaria (2007)
3
Tomado de Lora (2005)
4
Tomado del artculo 1.5.3.1 de la Resolucion 400 de 1995. Consultar Superintendecia Financiera de
Colombia (1995).
5
Tomado del Banco de la Republica en http://www.banrep.gov.co/
6
Tomado del Banco de la Republica en http://www.banrep.gov.co/
Resumen
Los mercados financieros actuales han sufrido una acelerada evolucion en los ultimos
50 anos, que ha influido en la aparicion de nuevos instrumentos de inversion. Sin lugar a
dudas, uno de los avances que ha representado mayores innovaciones y posibilidades ha
sido la amplia utilizacion de los derivados. Aunque estos productos aparecieron hace varios
siglos, ha sido recientemente donde se han manifestado los beneficios y riesgos que trae
la utilizacion de estos.
Los derivados son productos que como su nombre lo indica dependen de otro activo
subyacente que es el que determina su precio, su funcionamiento y la posibilidad de
cubrir diversos riesgos.
El presente trabajo constituye la construccion de un valorador de derivados sencillo
y facil de usar que permite la valoracion de Forwards, Futuros y Opciones sobre sub-
yacentes comunes. Todo esto con el fin de ayudar a que inversionistas y empresarios de
todos los niveles puedan acceder a la utilizacion de los derivados.
Palabras claves: Derivados, Valoracion, Forwards, Futuros, Swaps, Opciones.
Abstract
The current financial markets have undergone rapid development over the past 50 years.
This development has influenced the emergence of new investment instruments. Undoub-
tedly, one of the progress that has represented major innovations and opportunities has
been the widespread use of derivatives. Although these products appeared several cen-
turies ago, only recently have been known the benefits and the risks.
Derivatives are products which as its name indicates, depend on others underlying
assets. This underlying determines its price, operations and the ability to cover different
risks.
This paper presents the construction of a simple and easy tool, that allows the
valuation of Forwards, Futures and Options on common underlying. All this, in order
to help investors and managers at all levels to have access to the use of derivatives.
Keywords: Derivatives, Valuation, Forwards, Futures, Swaps, Options.
Valoracion de Derivados 18

Introduccion

El mundo, que desde los ultimos 50 anos ha sufrido una transformacion profunda en
cuanto a comunicaciones y aperturas, ha forzado a los mercados de capitales a adecuarse
a esta nueva forma de funcionamiento, una forma que implica rapidez y certeza en la
toma de decisiones para poder alcanzar el objetivo de rentabilidad de las inversiones,
de lo contrario existiran grandes probabilidades obtener perdidas con estas.
Este hecho, sumado al inmenso auge que han tenido los mercados financieros en este
periodo, han impulsado a los grandes academicos del momento y a los especialistas del
mercado a estructurar y proponer nuevos productos que le permitan a los inversionistas
y empresarios un mayor margen de maniobra con su dinero y a su vez les posibiliten
construir portafolios mas elaborados y solidos con coberturas para los distintos riesgos
a los que estan expuestos.
Dentro de estos nuevos productos sobresalen los derivados, productos financieros
cuyo valor se basa en el precio de otros activos y que permiten, mediante su correcta
utilizacion, cubrir todo tipo de riesgos financieros a los que puede estar expuesto un
inversionista o un empresario cualquiera.
A pesar de que este tipo de instrumentos aparecieron, de forma rudimentaria, por
primera vez en el siglo XVII, en Colombia apenas se estan introduciendo en el mercado y
aun no son ni muy utilizados ni ampliamente difundidos. Esto, sumado al hecho que la
teora detras de la utilizacion de estos no es sencilla, ha generado poco conocimiento del
tema por parte de los agentes.
Otra razon por la cual las personas no se han aventurado a la utilizacion de estos
instrumentos es la falta de acceso a herramientas que permitan determinar el costo
que tienen estos instrumentos y por consiguiente los beneficios que puede obtener una
persona con su utilizacion. La razon de ser de este problema se puede dividir en dos
partes. Por un lado, existe software especializado en mercado que permitira determinar
los precios, pero este es o muy costoso o muy complicado de manejar evitando con
esto su utilizacion generalizada. Por otro lado, en el caso de los Swaps y las Opciones,
existen muchas metodologas para la estimacion de los precios, unas sencillas y otras muy
complejas, creando confusion entre los usuarios y evitando, nuevamente, la utilizacion
de este tipo de productos.
Un claro ejemplo de esto es la actitud reacia de los exportadores de flores a adquirir
coberturas para el riego cambiario mediante Forwards, un procedimiento facil y sencillo
que cualquiera puede llevar a cabo en un banco comercial y que a su vez le permitira
saber al floricultor de antemano, la tasa a la que le van a pagar los dolares producto de
su exportacion, evitando as posible perdidas por las fluctuaciones de la TRM.
Al igual que el ejemplo anterior existen muchos otros que terminan mostrando un
desconocimiento del tema que desencadena temor en la utilizacion de estos instrumentos.
El presente trabajo constituye la construccion de un valorador de derivados sencillo
y facil de usar. En las secciones siguientes se hace un pequeno recuento de la historia
de los derivados, se explican las metodologas que se usaron para construir el valorador,
se exponen los criterios utilizados para adoptar dichas metodologas, y finalmente se
plantean algunas conclusiones sobre el extenso tema de los derivados financieros.
lej
A

an
dr
o P

re
Valoracion de Derivados 19

En el anexo que se incluye al final se explica como instalar correctamente el valo-


rador de derivados. La explicacion esta encaminada a la utilizacion de un instalador
desarrollado por el autor que pretende facilitar el proceso de instalacion.
Durante la realizacion de este trabajo, el autor se encontraba trabajando en SUR-
AMERICANA en el area de riesgos financieros; all estaba encargado de las metodologas
de valoracion de todos los instrumentos que componan los portafolios de la empresa,
dentro de los cuales se encuentran los instrumentos financieros derivados.

Este trabajo fue elaborado en pdf LATEX.

lej
A

an
dr
o P

re
Valoracion de Derivados 20

1. Preliminares

1.1 Planteamiento del problema

El tema financiero es ajeno a gran parte de los agentes que forman una economa, bien
por su aparente complejidad o bien por la falta de beneficios que el conocimiento de este
tema puede traer, sin embargo, estas dos percerpciones estan sesgadas porque, por una
parte, el conocimiento de los temas financieros puede traer grandes beneficios a todos los
agentes, desde el pequeno floricultor que exporta una pequena cantidad de flores hasta la
gran empresa que tiene sedes en distintos pases; por otra parte, la aparente complejidad
de los temas financieros que, aunque es cierta, no implica que un conocimiento basico
y concreto imposibilite la utilizacion de estos para mejorar la gestion del dinero y los
riesgos.
Dentro de todo este mundo de temas financieros, se encuentra el mercado de capitales
que sin lugar a dudas es un tema que genera cierto grado de temor por los riegos que
implica, el grado de sofisticacion que ha adquirido y las grandes sumas de dinero que
algunos pierden en el aunque ese dinero lo esten ganando otros. Sin embargo, este
mercado tambien le permite a los agentes adquirir coberturas para diferentes riesgos,
por medio de instrumentos como los derivados.
Si bien es cierto que un banco comercial cualquiera le cotiza a una persona un
Forward, por ejemplo, o que en el mercado existen herramientas computacionales que
permiten valorar los distintos derivados, estas opciones no son siempre las mas faciles
de utilizar o las mas trasparentes para la persona. Esto crea barreras a la utilizacion
generalizada de los derivados.
Entonces, la pregunta que se debe responder es: Como se puede, de una forma
sencilla, clara y de facil acceso y utilizacion, determinar el precio que tiene un Forward,
un Futuro, un Swap o una Opcion?.

1.2 Justificacion

Este proyecto se constituye en una herramienta que le permitira a los usuarios establecer,
por medio de la metodologas de valoracion ya conocidas, el valor que se debe pagar por
un intrumento derivado (Forward, Futuro, o Opcion).
Esto con el fin hacer mas accesible la informacion sobre este tema a las personas del
comun y as empezar a convertir el uso de los derivados en una practica mas habitual.
De igual forma le facilitara el trabajo a los inversionistas que tienen portafolios estruc-
turados con derivados, ya que podran evaluar estrategias de cobertura o de especulacion
de forma rapida y facil.
El proyecto concluira con una aplicacion computacional practica y de facil uso que
estara disponible para valorar cualquiera de estos derivados para ciertos activos subya-
centes, de forma que los usuarios vean como se establece el valor de un derivado.
lej
A

an
dr
o P

re
Valoracion de Derivados 21

1.3 Objetivos del proyecto


1.3.1 Objetivo general

Desarrollar un valorador de derivados a partir de las metodologas existentes, que le


permita al usuario pronosticar el valor de Forwards, Futuros, y Opciones en una ventana
de tiempo.

1.3.2 Objetivos especficos

Definir los criterios mas relevantes para la ponderacion de las metodologas de valo-
racion de Swaps y Opciones en cuanto a su facilidad de implementacion.

Identificar, entre varias de las metodologas de valoracion de Swaps y Opciones utili-


zadas en este momento, las de mas facil implementacion, deacuerdo con los criterios
definidos.

Disenar el modelo de valoracion de derivados en Microsoft ExcelTM .

Elaborar el modelo de valoracion de derivados (Forwards, Futuros y Opciones).

Probarla exactitud del valorador, en cada uno de los instrumentos derivados, en una
ventana de tiempo no superior a un mes.

1.4 Marco teorico

1.4.1 Breve historia de los derivados

Sin duda alguna los derivados han sido productos que le han dado una dinamica diferente
al mercado desde su auge en las plazas bursatiles.

By far the most significant event in finance during the past decade has
been the extraordinary development and expansion of financial derivatives.
These instruments enhance the ability to differentiate risk and allocate it
to those investors most able and willing to take it - a process that has
undoubtedly improved national productivity growth and standards of living.
Alan Greenspan, Chairman, Board of Governors of the US Federal Reserve
System.

Toda la historia de la creacion y utilizacion de instrumentos derivados se ha ca-


racterizado por ser el resultado de una busqueda por productos que permitan obtener
coberturas a diferentes riesgos asociados a negocios muy distintos: movimiento de pre-
cios en los negocios agrarios o cambios en las tasas de interes en el sector de los bienes
inmobiliarios, entre muchos otros ejemplos.
Si bien es cierto que los derivados aparecieron hace mucho tiempo e incluso, si se es
exigente, se pueden rastrear hasta en tiempos antes de Cristo tal como lo relata Chance,
Don (1998), el verdadero impacto de estos en los mercados financieros se remonta al siglo
lej
A

an
dr
o P

re
Valoracion de Derivados 22

pasado cuando los academicos empezaron a hacer avances en el tema y se consolidaron


las grandes bolsas de derivados como la Chicago Board of Trade (CBOT).
Tal vez uno de los anos mas representativos en esta historia es 1973 cuando se
creo la Chicago Board Options Exchange 7 y se publico uno de los trabajos academicos
mas representativos sobre el tema, el famoso modelo de valuacion de Fischer Black and
Myron Scholes8 . La aparicion de este modelo, que hizo que sus autores ganaran el premio
Nobel, revoluciono la historia de los derivados como no lo haba hecho nada hasta ese
entonces.
En 1983 se creo en la Chicago Board Options Exchange la primera Opcion sobre un
ndice de acciones9 . Segun menciona Chance, Don (1998), la decada de 1980 marco se
convirtio en la era de los Swaps y de los derivados en el Mercado Mostrados Over the
Counter(OTC). Es importante aclarar que los Forwards y las Opciones en el mercado
mostrador ya eran bien conocidas y transadas, sin embargo, los administradores de ese
momento eran los primeros que contaban con formacion academica sobre derivados y
fueron los que los empezaron a usar en la administracion financiera de las companas.
Este auge en la utilizacion de estos instrumentos dio como resultado el desarrollo de
nuevos derivados, cada vez mas complejos que permitan cubrir diferentes riesgos. Estos
nuevos y complejos productos se empezaron a denominar con el apelativo de exoticos.
Como se menciona en Davies, Roy (2009), 1994 represento el inicio de grandes per-
didas para el mundo, por el mal uso que se dio a los instrumentos derivados. Grandes
empresas como Procter & Gamble y Metallgesellschaft anunciaron perdidas gigantescas
asociadas al uso de instrumentos derivados. Estas perdidas se debieron al desconoci-
miento de los riesgos inherentes que presenta la utilizacion de instrumentos financieros
derivados, especialmente cuando no se conoce su funcionamiento en profundidad. El
condado de Orange en California, se declaro en bancarrota debido a la materializacion
de grandes perdidas por el uso de niveles muy altos de apalancamiento con instrumentos
financieros derivados. El banco Barings de Inglaterra tambien se declaro en bancarrota,
despues de 233 anos de operacion, por las perdidas que generaron las operaciones de un
Trader de 28 anos en las oficinas del banco en Singapur. Si bien, las perdidas del banco
se generaron por una deficiente estructura administrativa de control, las operaciones se
estaban haciendo con derivados que permiten margenes altos de apalancamiento.
De acuerdo con Lowenstein (2000), en 1998 el colapso de Long Term Capital Mana-
gement (LTCM) dejo perdidas por 4,600 millones de dolares, de los cuales aproximada-
mente 1,600 millones de dolares fueron originados por contratos Swaps sobre tasas de
interes.
Recientemente, la crisis financiera que inicio a finales de 2007 ha estado relacionada
con la utilizacion de derivados financieros. Los Credit Default Swaps (CDS) crearon un
efecto amplificador en la crisis por su amplia utilizacion y las consecuencias que genera
en el precio de estos la desconfianza en la estabilidad de las instituciones financieras.

7
Tomado de Chicago Board Options Exchange (2009)
8
Para mas informacion consultar Black, Fischer and Scholes, Myron (1973)
9
Tomado de Chicago Board Options Exchange (2009)

lej
A

an
dr
o P

re
Valoracion de Derivados 23

Como se muestra en la Tabla 1, los derivados en el mundo, estan creciendo de forma


importante en los ultimos anos10 . En diciembre de 2008, de acuerdo con el Bank for
International Settlements la cifra transada en valores nominales sobre todo tipo de
contratos de derivados ascenda a 591,963 millardos de dolares.

Periodo
Subyacente/Instrumento Dic 2006 Jun 2007 Dic 2007 Jun 2008 Dic 2008
TOTAL 418,131 516,407 595,341 683,726 591,963

Tasas de Cambio 40,271 48,645 56,238 62,983 49,753


Forwards 19,882 24,530 29,144 31,966 24,562
Swaps 10,792 12,312 14,347 16,307 14,725
Opciones 9,597 11,804 12,748 14,710 10,466

Tasas de Interes 291,581 347,312 393,138 458,304 418,678


Forwards 18,668 22,809 26,599 39,370 39,262
Swaps 229,693 272,216 309,588 356,772 328,114
Opciones 43,221 52,288 56,951 62,162 51,301

Acciones 7,488 8,590 8,469 10,177 6,494


Forwards y Swaps 1,767 2,470 2,233 2,657 1,632
Opciones 5,720 6,119 6,236 7,520 4,862

Commodities 7,115 7,567 8,455 13,229 4,427


Forwards y Swaps 3,091 3,653 5,470 7,951 2,713
Opciones 4,025 3,914 2,986 5,278 1,714

Credit Default Swaps 28,650 42,581 57,894 57,325 41,868

Otros 43,026 61,713 71,146 81,708 70,742

(Cifras en millardos de dolares)


Fuente: Bank for International Settlements

Tabla 1: Mercado mundial de derivados.

Por su parte, el mercado colombiano de derivados es relativamente nuevo. Las ope-


raciones en bolsa de este tipo de instrumentos iniciaron en septiembre de 2008.
10
Estos datos solo reflejan las transacciones efectuadas en el Mercado Mostrador (OTC). Para mas
informacion se puede consultar Bank for International Settlements (2009)

lej
A

an
dr
o P

re
Valoracion de Derivados 24

Hoy en da y de acuerdo con la informacion publicada por la Bolsa de Valores de


Colombia, los instrumentos que se transan en el mercado organizado son Futuros sobre
el Bono Nocional11 y Futuros sobre la Tasa de Cambio Representativa del Mercado.
La Tabla 2 muestra la evolucion del mercado de derivados colombiano desde sep-
tiembre de 2008 hasta septiembre de 2009.12

Fecha Valor Variacion ( %)


Septiembre2008 76,750
Octubre2008 33,250 56.68
Noviembre2008 27,750 16.54
Diciembre2008 17,500 36.94
Enero2009 117,250 570.00
Febrero2009 137,500 17.27
Marzo2009 174,250 26.73
Abril2009 120,750 30.70
Mayo2009 164,750 36.44
Junio2009 125,098 24.07
Julio2009 341,015 172.60
Agosto2009 223,200 34.55
Septiembre2009 420,832 88.54
Cifras en millones de pesos
Fuente: Bolsa de Valores de Colombia

Tabla 2: Mercado colombiano de derivados.

En el segundo semestre de 2009 se espera que entre en funcionamiento Derivex13 ,


una sociedad creada en conjunto por la Bolsa de Valores de Colombia S.A. y XM Com-
pana de Expertos en Mercados S.A. E.S.P., que sera el administrador del nuevo mer-
cado de derivados sobre commodities energeticos. Inicialmente, esta planeado ingresar
al mercado con un futuro sobre electricidad.

11
De acuerdo con el portal web ECONOMIA48 un bono nocional es un Bono ficticio del Estado con
un valor nominal teorico y que cotiza en un mercado regulado con unos vencimientos preestablecidos, una
rentabilidad dada y una serie de caractersticas que lo convierten en un bono totalmente normalizado. Se
utiliza principalmente como activo subyacente en un mercado de futuros.
12
Esta cifras solo incluyen las transacciones efectuadas a traves de la bolsa, ya que las que se hacen
sobre el Mercado Mostrador no se registran. Para mas informacion se puede consultar Bolsa de Valores
de Colombia (2009).
13
Se puede obtener mas informacion ingresando a www.http://www.derivex.com.co/index.html.

lej
A

an
dr
o P

re
Valoracion de Derivados 25

1.4.2 Instrumentos Financieros Derivados

Los instrumentos derivados son contratos cuyo valor es funcion, depende (se deriva)
de otra variable denominada variable subyacente(Vilarino et al. 2008). Dentro de estos
subyancentes encontramos productos financieros como bonos, acciones o ndices, precios
de materias primas como el petroleo o el maz, tasas de interes como la LIBOR o tasas de
cambio. Tambien es posible encontrar subyacentes no financieros como la temperatura en
un lugar especfico o el ndice de precios de un pas o la cantidad de nieve que cae en algun
lugar; en otras palabras, cualquier variable susceptible de ser medida continuamente, es
susceptible de convertirse en un subyacente.
De forma general, se puede decir que un derivado es un instrumento financiero que:
1) cambia de valor en respuesta a cambios en el precio de otro activo, 2) no requiere de
una inversion inicial para su constitucion o, en el caso de requerirla, es muy pequena; y
3) se liquidara en una fecha futura.
Antes de abordar el tema de los modelos para la valoracion de los instrumentos
derivados, es necesario introducir un concepto que juega un papel fundamental en este
tema: el arbitraje. El arbitraje, segun Alexander et al. (2003), es una operacion en la
que no se corre ningun riesgo de perdida y adicionalmente existe una total certeza de
la obtencion de un beneficio. Este hecho implica que los mercados, en momentos en los
que se presenten posibilidades de arbitraje, se moveran rapidamente para corregir esas
desviaciones y as volveran a la formacion de los precios estandar.
En vista de lo anterior, y de acuerdo con De Lara (2005), los modelos de valoracion
parten de un conjunto se supuestos, que se listan a continuacion:

Los precios siempre se ajustan para cerrar las oportunidades de arbitraje.


No existe riesgo de contraparte: nunca la contraparte del contrato incumplira sus
obligaciones.
No existen costos de transaccion, ni limitaciones a las posiciones cortas.
Todos los agentes del mercado son precio-aceptantes: ninguno tiene el poder de
manipular los precios.

Los cuatro instrumentos derivados basicos son los Forwards, los Futuros, los Swaps
y las Opciones. A partir de estos, es posible construir infinitas combinanciones que dan
como resultado productos mas elaborados y complejos que comunmente se denominan
notas estructuradas.

Forwards

Los Forwards son los instrumentos derivados mas sencillos. Estos son, de acuerdo con
De Lara (2005), contratos en los que las partes se obligan a comprar o vender en una
fecha futura, un activo a un determinado precio pactado el da de hoy. Estos contratos
pueden ser Delivery cuando al final del contrato efectivamente se entrega el activo a
cambio de dinero o Non Delivery cuando al final solo se liquida en dinero la diferencia
entre el precio pactado y el precio de contado el da de la liquidacion del contrato.
lej
A

an
dr
o P

re
Valoracion de Derivados 26

La Figura 1 muestra dos ejemplos del comportamiento de un Forward. En la figura


es claro como en el momento 0, cuando se pacta el contrato, no hay ningun intercambio
de dinero entre las partes. Por otra parte es posible observar como en el momento t
cuando se hace efectivo el contrato la partes hacen entrega del monto con el que se
haban comprometido.

$COP
$USD

t t
0 T 0 T

$USD
$COP

(I) (II)

Figura 1: Ejemplo de un Forward de Venta de USD a cambio de COP (I) y un Forward de Compra de USD
a cambio de COP (II)

La forma de determinar el valor de un Forward general, es llevando el precio de


contado actual del activo a la fecha futura con una tasa de interes. De aqu que la forma
matematica14 de expresar el valor del Forward es:
F = S(1 + r)n
Donde:
F Precio del Forward
S Precio del subyacente en el mercado de contado
r Tasa de interes del mercado. Es la tasa que refleja cero riesgo.
n Plazo del contrato
Dependiendo del activo subyacente, es necesario sumarle los costos de almacenamiento,
seguros y fletes que pueden existir durante el periodo del contrato y restarle los beneficios
que se pueden obtener al mantener el activo por ejemplo dividendos si el subyacente
es una accion. Al anadir estos terminos a la expresion, se obtiene:
F = S(1 + r + a b)n
Donde:
a Costos
b Beneficios
14
Tomado de Dubofsky & Miller (2003)

lej
A

an
dr
o P

re
Valoracion de Derivados 27

En otras ocaciones, los costos y los beneficios no estan expresados como tasas, sino en
forma de costos o beneficios fijos. En estos casos la expresion matematica del precio
sera:
F = S(1 + r)n + Costos Beneficios

Futuros

Los Futuros, en cierto modo, son iguales a los Forwards : Contratos de conpraventa que se
pactan ahora con liquidacion en el futuro. Estos contratos tambien se dividen en Delivery
y Non Delivery, sin embargo, este instrumento presenta diferencias fundamentales con
respecto a los Forwards.
De acuerdo con De Lara (2005), estas diferencias se pueden resumir en las siguientes:

1. Son contratos estandarizados

2. Se negocian en mercados organizados o en las bolsas de derivados

3. Las contrapartes no se tienen que conocer

4. Existe un mercaodo secundario amplio

Pese a las diferencias expuestas, la metodologa de valuacion de Forwards y Futuros es


la misma. Esto implica que se utiliza la misma formula matematica para determinar su
precio.

Swaps

La palabra Swap significa cambio o permuta. Estos contratos consisten en el intercambio


simultaneo entre dos agentes de flujos de dinero que pueden tener distintas monedas o
distintas tasas de interes.
Los dos tipos de Swaps mas conocidos y sencillos son los Swaps de tasas de interes
o IRS, Interest Rate Swaps y los Swaps de monedas o CS, Currency Swaps.
La Figura 2 es un ejemplo del diagrama de flujos de un Swap, en el que se hara
entrega de cuatro (4) flujos durante la vigencia del contrato y a cambio se recibiran tres
(3) flujos de mayor valor.

Opciones

Una Opcion es un contrato que le otorga al comprador el derecho, pero no la obligacion, a


comprar o a vender el activo subyacente en el futuro a un precio pactado a cambio de una
prima que paga al principio del contrato.
Las Opciones estandar se clasifican en Europeas o Americanas segun las fechas en
las que se pueden ejercer. Las Americanas se pueden ejercer en cualquier momento entre
la fecha de inicio y vencimiento del contrato. Por su parte, las Opciones Europeas solo
se pueden ejercer en la fecha de vencimiento del contrato.
lej
A

an
dr
o P

re
Valoracion de Derivados 28

Flujos Recibidos

0 t

Flujos Pagados

Figura 2: Ejemplo del diagrama de flujos de un Swap

Las metodologas utilizadas para la valoracion de estos instrumentos, segun Wilmott


et al. (1995) se pueden dividir en tres: las parametricas (modelo de Black-Scholes / Mer-
ton), las iterativas (arboles binomiales) y las estocasticas o no parametricas (simulacion de
Monte Carlo).

1.4.3 Valoracion de Derivados

En Colombia el organo encargado de regular, hasta cierto punto, el uso de los instrumen-
tos financieros derivados es la Superintendencia Financiera, que dicta las pautas para
que las entidades que son vigiladas por esta superintendencia valoren los instrumentos
que posean en sus portafolios.
Estas disposiciones estan contenidas en el capitulo XVIII de la Circular Basica Con-
table y Financiera (C.E. 100 de 1995) a la cual se le han hecho numerosas modificaciones,
siendo la mas reciente la publicada en junio de 2009 mediante la Circular Externa 021.
Las metodologas propuestas por la Superintendencia Financiera de Colombia no
son las unicas existentes para la valoracion de instrumentos financieros derivados y en
ningun momento el regulador exige que se utilicen, mas aun cuando existe la posibilidad
de utilizar una metodologa mejor.
En los numerales que siguen a continuacion se hara una explicacion de las metodo-
logas que se utilizaran para la construccion del valorador de instrumentos financieros
derivados.

1. Valoracion de Forwards

Forward contrato en los que una parte se obliga a comprar y la otra a vender
un determinado subyacente en una fecha futura a un precio pactado el d a
de hoy. Estos contratos pueden ser: Delivery cuando al final del contrato
efectivamente se entrega el activo subyacente a cambio de dinero, o Non
Delivery cuando al final solo se liquida en dinero la diferencia entre el precio
pactado y el precio de contado el da de la liquidacion del contrato.
lej
A

an
dr
o P

re
Valoracion de Derivados 29

A continuacion se describe la metodologa propuesta por la Superintendencia15


para la valoracion de los Forwards.
1.1 Forwards sobre Divisas
Cuando el subyacente es una divisa, la metodologa propuesta por la Super-
intendencia hace una diferenciacion con el fin de facilitar la valoracion.
1.1.1 Tasa Representativa del Mercado (COP/USD)
Para cuantificar las ganancias o perdidas en este tipo de contrato se debe
establecer la diferencia entre la tasa Forward pactada y la tasa Forward
en la fecha de valoracion, luego se debe traer a valor presente utilizando
una tasa de interes cero cupon. Lo anterior se logra mediante el uso de
la siguiente expresion:
NU SD [T C F (T C RMSP OT + P I P Sk )]
(1.1)
k
1 + rk
360
Donde:

Valor nominal del Forward expresado en dolares ame-


N U SD
ricanos.
Numero de das en base 365 que hay entre la fecha de
k
valoracion y la fecha de cumplimiento.
T C F Tasa de cambio COP/USD pactada en el contrato.
T C RMSP OT TRM en el da de la valoracion.
Puntos Forwards del mercado Forward COP/USD en
P I P S k
la fecha de valoracion para un plazo de k das.
rk Tasa de interes cero cupon para un plazo de k das, en
el da de la valoracion.
El valor de la obligacion que debe registrar el vendedor del subyacente
en su balance (derecho para el comprador), en pesos colombianos, esta
dado por la siguiente expresion:
NU SD (T C RMSP OT + P I P Sk )
(1.2)
k
1 + rk

360

Por su parte, el valor del derecho que debe registrar el vendedor del
subyacente en su balance (obligacion para el comprador), en pesos co-
lombianos, esta dado por la siguiente expresion:
NU SD T C F
(1.3)
k
1 + rk

360

lej
A

an
dr
o P

re
Valoracion de Derivados 30
Finalmente, la utilidad o perdida del Forward el da de la valoracion esta-
ra dada por la resta de las ecuaciones (1.3) y (1.2), calculadas de acuerdo
con la posicion de la entidad compra o venta de dolares americanos.
15
Tomada de la circular 21 de junio de 2009.

lej
A

an
dr
o P

re
Valoracion de Derivados 31

1.1.2 Otras Divisas


En este tipo de operaciones Forward la entidad que valora el instrumen-
to financiero derivado puede estar en una de las siguientes situaciones:
comprando una divisa Y a cambio de la divisa X, o vendiendo una divisa
Y a cambio de la divisa X.
La metodologa en este caso varia un poco debido a que se asume que
no se tiene acceso a un mercado lo suficiente lquido que provea los
PIPS para todas las fechas. Adicionalmente, se deben tener en cuenta
la transformacion de la operacion a pesos colombianos.
Lo anterior se traduce en la siguiente expresion:
NDY (T C F T Fk ) T CU SD/DX T C RMSP OT
( (1.4)
k
1 + rDXk
360
Donde:

NDY Valor nominal del Forward expresado en Divisa Y.


Numero de das en base 365 que hay entre la fecha de
k
valoracion y la fecha de cumplimiento.
Tasa de cambio fijada en el contrato. En Divisa X por
T C F
unidad de Divisa Y.
Tasa Forward en la fecha de valoracion para el plazo
T F k
k, dada en Divisa X por unidad de Divisa Y.
Tasa de conversion de divisas, dada en dolares ameri-
T CU SD/DX
canos por unidad de Divisa X.
T C RMSP OT TRM en el da de la valoracion.
Tasa de interes de bajo riesgo cero cupon de la Divisa
rDXk
X, para el plazo k el da de la valoracion.
El caculo de T Fk esta dado por la siguiente expresion:
(
k
T CDX/DY 1 + rDXk
360
T Fk = ( (1.5)
k
1 + rDYk
360
Donde:

Tasa de cambio en la fecha de valoracion, dada en


T C DX/DY
Divisa X por unidad de Divisa Y.
Tasa de interes de bajo riesgo cero cupon de la Divisa
rDXk
Y, para el plazo k el da de la valoracion.
El valor de la obligacion que debe registrar el vendedor del subyacente
en su balance (derecho para el comprador), en pesos colombianos, esta
dado por la siguiente expresion:

lej
A

an
dr
o P

re
NDY Valoracion
T Fk T CUdeSD/DX T C RMSP OT
Derivados 32
( (1.6)
k
1 + rDXk

360

lej
A

an
dr
o P

re
Valoracion de Derivados 33

Por su parte, el valor del derecho que debe registrar el vendedor del
subyacente en su balance (obligacion para el comprador), en pesos co-
lombianos, esta dado por la siguiente expresion:
NDY T C F T CU SD/DX T C RMSP OT
( (1.7)
k
1 + rDXk

360

Finalmente, la utilidad o perdida del Forward el da de la valoracion


estara dada por la resta de las ecuaciones (1.7) y (1.6), calculadas de
acuerdo con la posicion de la entidad compra o venta de Divisa Y.
1.2 Forwards sobre Ttulos Tasa Fija
Para cuantificar las ganancias o perdidas, en pesos colombianos, de los For-
wards con este tipo de subyacente se debe establecer la diferencia e ntre el valor
presente del precio pactado en la operacion y el precio justo de intercambio
del ttulo o valor en el da de la valoracion. Para estos efectos, tanto el precio
pactado en la operacion como el valor futuro del Forward deberan descontarse
con la tasa cero cupon que corresponda segun el plazo. Lo anterior se logra
mediante el uso de la siguiente expresion:
PP PF W C
( z (1.8)
k 1 + rz
1 + rk 360
360

Donde:

PP Precio fijado en el contrato Forward.


PF W Precio Forward de ttulo que no permite arbitraje.
Cupon que presente el ttulo antes de la fecha de cumpli-
C
miento del Forward.
Numero de das en base 365 que hay entre la fecha de valo-
k
racion y la fecha de cumplimiento.
Numero de das en base 365 que hay entre la fecha de valo-
z
racion y la fecha de pago del cupon.
rk Tasa de interes cero cupon para un plazo de k das, en el da
de la valoracion.
rz Tasa de interes cero cupon para un plazo de z das, en el da
de la valoracion.

El valor de la obligacion que debe registrar el vendedor del subyacente en su


balance (derecho para el comprador), en pesos colombianos, esta dado por la
siguiente expresion:

lej
A

an
dr
o P

re
Valoracion de Derivados 34
PF W C
( z (1.9)
k
1+ rk 1 + rz
360
360

lej
A

an
dr
o P

re
Valoracion de Derivados 35

Por su parte, el valor del derecho que debe registrar el vendedor del subyacente
en su balance (obligacion para el comprador), en pesos colombianos, esta dado
por la siguiente expresion:

PP
( (1.10)
k
1+ rk x
360

Finalmente, la utilidad o perdida del Forward el da de la valoracion estara


dada por la resta de las ecuaciones (1.10) y (1.9), calculadas de acuerdo con
la posicion de la entidad compra o venta ttulos en el futuro.

1.3 Forwards sobre Tasas de Interes a Plazo (Forward Rate Agreement (FRA))
Para valorar este tipo de instrumento financiero derivado se debe calcular la
tasa Forward implcita que corresponda al plazo existente entre la fecha de
inicio o liquidacion del FRA y la fecha de vencimiento. Ambas fechas son
posteriores a la fecha de celebracion del Forward.

IPC

0 3 9

4%

Figura 3: Ejemplo de un FRA 3/9

La Figura 3 muestra un ejemplo de un FRA en el que la fecha de inicio


o liquidacion es dentro de 3 meses y la fecha de vencimiento es dentro de
nueve meses. En este contrato se entregara una tasa fija del 4 % sobre el valor
nominal del contrato y a cambio se recibira la tasa IPC aplicada sobre el
mismo nominal.
Para hallar la tasa forward implcita se aplica la siguiente expresion:

{F( (
360 x 1 + rt2 x t360
2
1 + rtl x ti
360 1
rIMP = (1.11)
(t2 tl )

lej
A

an
dr
o P

re
Valoracion de Derivados 36

Donde:
Tasa Forward implcita para un plazo igual al comprendido
tIMP
entre tl y tx .
Plazo en das, comprendido entre la fecha de celebracion del
tl
Forward y la fecha de inicio (o liquidacion) del mismo.
Plazo en das, comprendido entre la fecha de celebracion del
tx
Forward y la fecha de vencimiento del mismo.
Tasa de interes cero cupon vigente en la fecha de valoracion
t2i
para el plazo ti , donde i = 1, 2.
Una vez calculada la tasa Forward implcita se procede a cuantificar la ganan-
cia o perdida del FRA. El proceso es el siguiente: se debe calcular la diferencia
entre la tasa Forward implcita y la tasa de interes pactada, luego se debe
multiplicar por el valor nominal y por el perodo de vigencia del instrumento
(en das); finalmente, se traer a valor presente. Este calculo tiene la siguiente
expresion:

N x (tFRA tIMP ) x (tx tl ) N x (tFRA tIMP ) x (tx tl )

F 360 F r = F r 360
22 2i 2i 22
1 + tIMP x x 1 + t2l x 1 + t2x x
360 360 360
(1.12)

Donde:

N Valor nominal de FRA.


tFRA Tasa de interes pactada en el FRA para un plazo de (tx tl )
das.
El valor de la obligacion que debe registrar el vendedor del subyacente en su
balance (derecho para el comprador), en pesos colombianos, esta dado por la
siguiente expresion:

N x tIMP x (tx tl )
F 360r (1.13)
x 22
1 + t2x360

Por su parte, el valor del derecho que debe registrar el vendedor del subyacente
en su balance (obligacion para el comprador), en pesos colombianos, esta dado
por la siguiente expresion:

N x tFRA x (tx tl )
F 360r (1.14)
x 22
1 + t2x360

Finalmente, la utilidad o perdida del Forward el da de la valoracion estara

lej
A

an
dr
o P

re
dada por la resta de las ecuaciones
Valoracion de (1.14) y (1.13), calculadas de acuerdo con
Derivados 37
la posicion de la entidad compra o venta ttulos en el futuro.

lej
A

an
dr
o P

re
Valoracion de Derivados 38

2. Valoracion de Futuros

Futuro contrato estandarizado y cotizado en un mercado organizado o bolsa,


con respaldo de una camara de compensacion, mediante el cual dos partes
se obligan mutuamente, la una a comprar y la otra a vender, una cantidad
establecida de un producto subyacente determinado, a un precio fijado y en
una fecha futura establecida en el contrato.
Es un contrato aplazo que se liquida cada da y es remplazado con un nue-
vo contrato, con precio de entrega identico al precio de liquidacion del da
anterior.

Los futuros deben valorarse sobre la base del correspondiente precio de mercado
en la fecha de valoracion. Tales precios son provistos por la respectiva bolsa o
sistema de negociacion donde la entidad haya negociado el instrumento financiero
derivado.
Para cuantificar las utilidades o perdidas en contratos de futuros, se debe calcular
la diferencia entre el precio de mercado de cada unidad del contrato respectivo y
el precio pactado de la misma, multiplicado por el valor del contrato y por el
numero de contratos negociados. Para ello se aplica la siguiente expresionl6 :

(PFUT P P ) x N x n (1.15)

Donde:
Precio de los contratos de futuros identicos al que se esta valorando,
PFUT reportado en la fecha de valoracion por la bolsa o sistema de negociacion
de valores donde se negocien.
P P Precio fijado en el contrato de futuros.
N Valor nominal de cada contrato futuro.
n Numero de contratos de futuros negociados.

El valor de la obligacion que debe registrar el vendedor en su balance (derecho


para el comprador), en pesos colombianos, corresponde al precio de cada unidad
del contrato de futuros reportado en la fecha de valoracion por la bolsa o sistema de
negociacion de valores donde se ha negociado (PFUT ), multiplicado por el numero
de contratos y por el valor nominal de cada contrato.
Por su parte, el valor del derecho que debe registrar el vendedor en su balance
(obligacion para el comprador), en pesos colombianos, corresponde al precio de
cada unidad fijado en el contrato de futuro (P P ), multiplicado por el numero de
contratos y por el valor nominal de cada contrato.

3. Valoracion de Swaps

Swap (Permuta financiera) es un contrato por el cual dos partes se comprometen


a intercambiar una serie de cantidades de dinero en fechas futuras.
i6
Tomado de la Circular 21 de 2009

lej
A

an
dr
o P

re
Valoracion de Derivados 39

Los Swaps mas conocidos son de dos tipos: cuando los intercambios de di-
nero futuros estan referenciados a tasas de interes, llamandose IRS (Interest
Rate Swaps ) o cuando los intercambios de dinero futuros estan asociados a
diferentes monedas, en este caso se llaman CCS (Cross Currency Swaps ).
La combinacion de los Swaps mencionados lleva a un nuevo Swap en el que
los flujos estan referenciados a diferentes tasas de interes y adicionalmente a
diferentes monedas.
A continuacion se describe la metodologa propuesta por la Superintendencial7
para la valoracion de los Swaps.
3.1 Swaps de Tasas de Interes (IRS - Interest Rate Swaps )
Cuando tanto los flujos que se entregan como los flujos que se reciben es-
tan denominados en la misma moneda la valoracion se puede llevar a cabo
mediante la metodologa que asemeja los flujos a dos bonos, uno de posicion
larga y otro de posicion corta. La distincion con respecto a la valoracion de
bonos estandares radica en dos aspectos: 1) Que la valoracion de un bono en
el mercado de contado se hace mediante el descuento a la tasa de interes que
negocia el mercado en la fecha de valoracion, mientras que la valoracion de
los flujos del Swap se hace utilizando como tasas de descuento las tasas cero
cupon que correspondan, y 2) Que la proyeccion de los flujos futuros de bonos a
tasa variable se efectua con las tasas vigentes en el mercado en la fecha de la
valoracion, mientras que la proyeccion de los flujos de los Swaps se realiza
utilizando tasas futuras implcitas.
Con estas diferencias claras, se procede a valorar el Swap como la diferencia de
los valores presentes de los dos bonos. Para lograr esto es necesario proyectar
los flujos futuros, estimar el valor presente de estos y finalmente determinar
el precio justo de intercambio del Swap.
A continuacion se exponen los lineamientos generales que se deben seguir para
la proyeccion de los flujos:
3.1.1 Proyeccion de flujos a tasa variable cuando existe curva de tasas.
Se deben calcular a partir de las curvas existentes las tasas futuras im-
plcitas que correspondan para los plazos de los flujos y utilizarlas en las
respectivas proyecciones. Tal es el caso, por ejemplo, cuando se trata de
flujos a tasa Libor, en donde a partir de la curva Libor-Swap correspon-
diente, publicada en Bloomberg o Reuters, se deben calcular las tasas
Forward implcitas para proyectar los flujos indexados a la Libor.
3.1.2 Proyeccion de flujos a tasa variable cuando no existe curva de tasas.
La proyeccion de los flujos dependera del tipo de tasa. La norma colom-
biana establece metodologa para la proyeccion de flujos atados a DTF,
IBR e IPC. A continuacion se explica dicha metodologa.
3.1.2.1 Para Flujos a DTF
A. Calcular las tasas futuras implcitas de la curva cero cupon
de TES tasa fija en pesos, de acuerdo con la ecuacion (1.11).
i7
Esta metodologa fue propuesta en el captulo XVIII de la Circular 100 cuya ultima actualizacion
es la circular 21 de junio de 2009.

lej
A

an
dr
o P

re
Valoracion de Derivados 40

B. A la tasa DTF efectiva anual vigente en la fecha de valora-


cion, restarle la tasa cero cupon de la curva TES tasa fija en
pesos para el plazo de 90 das.
C. Sumar dicho diferencial a cada una de las tasas futuras im-
plcitas obtenidas en el literal A.
D. Proyectar los flujos del Swap referenciados a la DTF con las
tasas calculadas. Se debe tener en cuenta que si se pacto algun
margen para las tasas tambien se debe adicionar.
3.1.2.2 Para flujos a IBR
A. Para los plazos para los que exista tasa IBR se debe utilizar
esta como base para realizar las proyecciones.
B. Para plazos superiores a los que existan cotizaciones del IBR,
se debe utilizar el procedimiento descrito en el item anterior
teniendo en cuenta que el diferencial se calculara con respecto
al IBR y no a la DTF.
3.1.2.3 Para flujos a IPC
A. Estimar la curva cero cupon de tasas de inflacion anual, a
partir de las curvas cero cupon de TES tasa fija en pesos y de
TES UVR, mediante el uso de la siguiente expresion:

1 + TESCOP 1 (1.16)
TINF =
1 + TESUVR

B. Obtener la tasa de inflacion futura implcita a partir de la


curva de tasas de inflacion cero cupon hallada previamente,
siguiendo la formula de la expresion (1.11).
C. Utilizar la tasa de inflacion futura implcita, calculada con
el procedimiento anterior, como una aproximacion de la va-
riacion anual del IPC, para efectuar las proyecciones de cada
uno de los flujos del Swap que se hallen pactados con este in-
dicador. Se le debe agregar, si hay lugar, el margen sobre IPC
acordado en el contrato.
3.1.3 Tasas de descuento de los flujos.
Se utilizaran las mismas tasas de descuento que en el caso de los con-
tratos Forwards, es decir, tasas de interes de curvas cero cupon.
3.2 Swaps de Monedas (CCS - Cross Currency Swaps )
3.2.1 Valoracion cuando los flujos de las dos puntas del Swap coinciden en el
tiempo.
La valoracion puede efectuarse con la metodologa estandar, de acuerdo
con la cual se valora como un portafolio de Forwards. Una parte actua
como si vendiera los Forwards y la otra parte como si los comprara.
Luego se obtiene el valor neto del portafolio de Forwards, mediante
la suma de las valoraciones de los distintos Forward en los que puede

lej
A

an
dr
o P

re
descomponerse el Swap de monedas.
Valoracion de Derivados 41

lej
A

an
dr
o P

re
Valoracion de Derivados 42

3.2.2 Valoracion cuando los flujos de las dos puntas del Swap no coinciden en
el tiempo.
La valoracion puede efectuarse con la metodologa estandar, de acuerdo
con la cual se valora como un portafolio de dos bonos, uno en cada
moneda, incluyendo para ello los respectivos montos de capital de la
operacion. El valor neto del portafolio de los dos bonos es la diferencia
de las valoraciones de las dos puntas.

4. Valoracion de Opciones

Opcion contrato que le otorga al comprador el derecho, pero no la obligacion, de


comprar o de vender el activo subyacente en el futuro a un precio pactado
hoy a cambio de una prima que paga al principio del contrato.
Las Opciones estandar se clasifican en Europeas o Americanas segun las
fechas en las que se pueden ejercer. Las Americanas se pueden ejercer en
cualquier momento entre la fecha de inicio y vencimiento del contrato. Por su
parte, las Opciones Europeas solo se pueden ejercer en la fecha de vencimiento
del contrato.
Al igual que los Forwards estos contratos pueden ser: Delivery cuando al
ejercer la Opcion efectivamente se entrega el activo subyacente a cambio de
dinero, o Non Delivery cuando solo se liquida en dinero la diferencia entre el
precio pactado y el precio de contado el da del ejercicio de la Opcion.

Como se menciono anteriormente, existen varios metodos para obtener el valor de


una Opcion. A continuacion se presenta la metodologa de los arboles binomiales
de acuerdo con los conceptos expuestos en Hull (2008).
El precio de una Opcion el da en que se ejerce el derecho sera:
Para una Opcion de Compra

Max {ST K, 0} (1.17)

Y para una Opcion de Venta

Max {K ST , 0} (1.18)

Donde:

ST El precio del activo subyacente en el tiempo T


K El precio de ejercicio de la Opcion

El metodo de los arboles binomiales se basa en los movimientos que sufre un activo
cualquiera en un periodo de tiempo. Supongamos una accion que hoy vale 1, 000,
el precio de la opcion manana podra ser 900 o 1, 100.
El metodo de los arboles binomiales entonces evalua en multiples pasos el com-
portamiento del activo subyacente de una Opcion y a partir de este resultado
lej
A

an
dr
o P

re
determina el precio de esta.
Valoracion de Derivados 43

lej
A

an
dr
o P

re
Valoracion de Derivados 44

Si tomamos como referencia a Hull (2008) obtenemos la Figura 4, donde se muestra


un arbol binomial de dos pasos en el que S0 significa el precio del subyacente en el
tiempo 0, u significa el aumento que sufre el activo en cada t (u > 1), d significa
la disminucion que sufre el activo en este mismo periodo de tiempo (d < 1) y f
representa el precio de la opcion en cada uno de los nodos del arbol. Por ejemplo
S0 ud es el precio del subyacente luego de un a u m e nto de u y de una disminucion de
d, del mismo modo fuu significa el precio de la Opcion despues de que el subyacente
haya experimentado dos aumentos consecutivos de magnitud u.

S0 u2

fuu

S0 u

fu

S0 S0 ud

f fud

S0 d

fd

S0 d2

fdd

Figura 4: Arbol binomial de 2 pasos para una Opcion Europea

Este arbol es unicamente de 2 pasos y solo es ilustrativo, para obtener el precio


correcto de una opcion es necesario construir un arbol de por lo menos 30 pasos
para el resultado empiece a converger.

Una vez entendido el concepto de los arboles binomiales se procede a la forma


de hallar f . Para esto es necesario introducir un principio muy importante en la
valoracion de Opciones, este se denomina Valoracion Neutral al Riesgo y establece,
como se menciona en Hull (2009), que se puede asumir con total seguridad que el
mundo es neutral al riesgo cuando se valoran Opciones; lo que quiere decir que un
portafolio cualquiera de activos que no tenga ningun riesgo rentara la tasa libre
de riesgo.

A partir de este principio y suponiendo que en el ultimo nodo de un arbol binomial


conocemos el precio del subyacente y por lo tanto el precio de la opcion, obtenemos
lej
A

an
dr
o P

re
Valoracion de Derivados 45

la siguiente expresion:

fu = er2 [pfuu + (1 p) fud ]


fd = er2 [pfud + (1 p) fdd ] f (1.19)
r2
=e [pfu + (1 p) fd ]

Donde:

t Tasa libre de riesgo anual, compuesta continuamente.


t Timepo entre cada nodo. Expresado en anos.
Probailidad de un aumento de u en el precio del subyacente. Por consi-
p guiente (1 p) es la probabilidad de una disminucion de d en el precio
del subyacente.
Si se analiza la expresion (1.19) se puede observar que el precio de la Opcion, en
un nodo dado del arbol, no es mas que su valor esperado descontado a la tasa libre
de riesgo. Otra importante conclusion es que la utilizacion de los arboles se hace
desde el final del arbol hasta el principio.
Ahora, la expresion que permite llegar al valor p es la siguientel8 :

er2 d
p= (1.20)
u d
Para que el modelo de valoracion quede completo es necesario determinar el valor
de u y el valor de d. Para este fin y de acuerdo con J. C. Cox, S.A. Ross y M.
Rubinstein (1979) se tienen las siguientes ecuaciones:

u = e 2
(1.21)

2
d=e (1.22)

Donde:

Volatilidad anual del activo subyacente.

El modelo que se acaba de exponer aplica para Opciones Europeas sobre Acciones
unicamente. Para valorar Opciones Europeas sobre otros subyacentes se deben
hacer las siguientes modificaciones:

Opciones que pagan un rendimiento de dividendos continuo


Si la accion paga un rendimiento a la tasa q, se debe modificar el calculo de
p de la siguiente forma:

e(rq)2 d
p= (1.23)

lej
A

an
dr
o P

re
u d
Valoracion de Derivados 46
i8
para mas detalles sobre la forma como se llega al valor de p se puede consultar el captulo 11 de
Hull (2008).

lej
A

an
dr
o P

re
Valoracion de Derivados 47

Opciones sobre ndices bursatiles


partiendo de la idea que un ndice bursatil es la representacion de una cartera
de acciones, podemos valorar las acciones sobre ndices como se explico para
las Opciones sobre acciones o como una accion con rendimiento de dividendos
continuo, segun sea el caso.
Opciones sobre divisas
Si se considera una divisa como un activo que renta a la tasa de interes
externa libre de riesgo, se puede hacer el siguiente supuesto para valorar las
Opciones sobre este subyacente:

e (rre )2 d
p= (1.24)
ud

Donde:

te Tasa libre de riesgo extrajera anual, compuesta continuamente.

Opciones sobre acciones con dividendo en COP en fechas conocidas


El procedimiento consiste en en construir un arbol binomial partiendo del
valor de la accion menos todos los dividendos descontados a la tasa libre de
riesgo, luego a cada nodo se le suma el valor de los dividendos descontados
hasta ese punto. Una vez se haya efectuado este procedimiento la valoracion
se hara como se explico anteriormente.

Por ultimo, es preciso aclarar que para valorar las Opciones Americanas, se bebe
tener en cuenta un elemento mas cuando se recorre el arbol binomial. El primer
paso de la valoracion, sera la construccion del arbol binomial tal y como se hace
en el caso de las Opciones Europeas incluyendo el calculo de p segun sea el tipo
de subyacente.
Una vez construido el arbol binomial c o m p l e t a m e nte se empieza a recorrer desde
el final hacia el principio como se explico anteriormente pero teniendo en cuenta
que el precio de la opcion no siempre sera el valor esperado de esta descontado a
la tasa libre de riesgo. La razon de ser de este hecho es que como se esta valorando
una Opcion Americana y esta se puede ejercer anticipadamente, el precio de la
Opcion sera el optimo entre el encontrado con el procedimiento normal del arbol
binomial y el beneficio obtenido con el ejercicio anticipado.
Para ilustrar lo anterior, suponga el siguiente ejemplo tomado de Hull (2008).
Considere una Opcion de venta a dos anos con un precio de ejercicio de $52 sobre
una accion cuyo precio actual es $50. La Opcion se valorara con un arbol binomial
de dos pasos. Adicionalmente suponga que la accion sube o baja en un monto
proporcional de 20 % y que la tasa libre de riesgo es 5 %.

S0 = 50 K = 52 t = 0.05
t = 1 u = 1.2 d = 0.8
lej
A

an
dr
o P

re
p = 0.6282
Valoracion de Derivados 48

lej
A

an
dr
o P

re
Valoracion de Derivados 49

72 72
D D
0 0
60 60
B B
1.415 1.415
50 48 50 48
A E A E
4.192 4 5.089 4
40 40
C C
9.464 12.0
32 32
F F
20 20

(I) (II)

Figura 5: Comparacion de arbol binomial para una Opcion Europea (I) y una Opcion Americana (II)

Inicialmente se valorara la Opcion suponiendo que esta es Europea; el resultado


de este procedimiento se muestra en la Figura 5(I). Para llegar a este resultado se
utiliz la metodologa explicada anteriormente.

Con el arbol binomial ya construido el paso siguiente es evaluar en cada uno de


los nodos comenzando en el final del arbol si es mas beneficioso ejercer o no
la Opcion dado que esta es de tipo Americana. Este procedimiento conduce a la
Figura 5(II).
El ejemplo muestra que los nodos finales D, E y F no cambian, sin importar el tipo
de la Opcion. Esto tiene mucho sentido si se tiene en cuenta que en el vencimiento
de la Opcion ambas Europeas o Americanas se pueden ejercer, por lo que si la
accion esta valiendo en el mercado $72 y se tiene el derecho a venderla a K = $52
no se ejercera pero si la accion esta a $48 si se ejercera y se obtendra un beneficio
de $52 $48 = $4.
Este mismo procedimiento se aplica a todos los nodos hasta llegar al principio del
arbol.
Notese como en el nodo C de la Figura 5 si la Opcion no se ejerce Figura 5(I)
se tiene un valor de la Opcion de $9.463 mientras que si se ejerce Figura 5(II)
se obtiene un beneficio de $52 $40 = $12, que es mas optimo.
Otra metodologa valida para la valoracion de Opciones Europeas es el modelo de
Black-Scholes / Merton. Esta metodologa es la que propone la Superintendencia
Financiera en la circular 21 de 2009.
De acuerdo con esta metodologa el valor de una Opcion de compra (Call ) es:

lej
A

an
dr
o P

re
rk
e(br)k xNde(dDerivados
c2 = S xValoracion l) X x e xN (dx ) 50
(1.25)

lej
A

an
dr
o P

re
Valoracion de Derivados 51

y el valor de una Opcion de Venta (Put ) es:

p2 = S x e(br)k xN (dl ) + X x erk xN (dx ) (1.26)

Donde:

c2 Prima o precio de una Opcion Europea de Compra (Call ) en la fecha de


valoracion.
p2 Prima o precio de una Opcion Europea de Venta (Put ) en la fecha de
valoracion.
S Precio del Subyacente.
Costo de mantenimiento (Cost of carry ). Su valor se define segun el
tipo de opcion a valorar: b = t cuando son Opciones sobre acciones sin
b dividendos durante la vida de la opcion, b = t q cuando son Opciones
sobre acciones con dividendos durante la vida de la opcion y b = t tf
cuando son Opciones sobre monedas.
t Tasa de interes en pesos libre de riesgo.
tf Tasa de interes en moneda extranjera libre de riesgo.
k Tiempo restante para la expiracion de la opcion, expresado en anos.
Volatilidad anualizada del valor del subyacente.
q Tasa de rentabilidad continua por dividendos de la accion.
Funcion de probabilidad acumulada para una variable normal estanda-
N (d i )
rizada.
Dividendos a recibir en la fecha t, calculados para el total de acciones
Div
del subyacente.
Tasa de descuento para calcular el valor presente de los dividendos. Es
td igual a t o tf , segun la moneda en la que esten expresadas las acciones
del subyacente.
t Tiempo restante hasta la fecha de pago de los dividendos.

Para calcular q, N (dl ) y N (dx ), se tienen las siguientes expresiones:

Div/S
q= (1.27)
e(rd 2)

S
r r
ln + b + lx x x k ln S
+ b lx x x k
dl = X dx = X (1.28)
x t x t

Para establecer el monto de las utilidades o perdidas en la valoracion de una opcion


europea se deben calcular las siguientes expresiones, segun corresponda:

c2 Prima Call pagada p2 Prima Put pagada (1.29)

Si el calculo de la expresion (1.29), dependiendo del tipo de opcion europea, arroja


valor positivo, el comprador de la opcion europea debe registrar en el estado de
lej
A

an
dr
o P

re
resultados, en la fecha de valoracion, una utilidad
Valoracion por ese valor, al tiempo que el 52
de Derivados
emisor de la opcion debe registrar una perdida por la misma cuanta en esa fecha.

lej
A

an
dr
o P

re
Valoracion de Derivados 53

Si por el contrario, el calculo de la expresion (1.29), arroja valor negativo, el


comprador de la opcion europea debe registrar en el estado de resultados, en la
fecha de valoracion, una perdida por ese valor, al tiempo que el emisor de la opcion
debe registrar una utilidad por la misma cuanta en esa fecha.
VOLATILIDAD
Las volatilidades requeridas para la valuacion de Opciones son las volatilidades
futuras, que no son conocidas. Hay varias alternativas para estimar este parametro
como los son: la utilizacion de volatilidades implcitas que se hallan a partir del
precio de las primas o la estimacion del parametro a partir de los datos historicos
del subyacente.
Aunque el primer caso es mas apropiado por estar basado en cotizaciones de
mercado, se requiere que exista un mercado de Opciones que cotice precios, o
en su defecto poder acceder a multiples cotizaciones de la misma opcion en el
Mercado Mostrador.

Las metodologas expuestas anteriormente, aplican en el caso colombiano debido a


su procedencia la Superintendencia Financiera de Colombia; exceptuando la de los
arboles binomiales para las Opciones que no es la sugerida por el organismo de control.
En el caso internacional, citando a Vilarino et al. (2008), el tratamiento contable de
los derivados ha sido una de las mayores controversias mantenidas por la comunidad
financiera en los ultimos anos especialmente en la Union Europea con la adopcion
de la regulacion emitida por el International Accounting Standard Board (IASB). El
centro de la controversia ha sido la IAS 39, la norma internacional mas relevante en
materia de derivados, que esencialmente esta inspirada en su correspondiente estadou-
nidense, el FAS 133. Esta controversia es parte del debate sobre la reforma contable
hacia la contabilidad del <<valor razonable >> basada en la condiciones actuales de
mercado frente a la tradicional contabilidad al <<costo historico >> dependiente de
los precios pasados.
Con respecto a estos estandares contables, que pretenden reflejar el valor de mercado
en los estados financieros para que exista una mejor disciplina de mercado y los inver-
sionistas esten mejor informados, las entidades de control de cada pas han propuesto
metodologas de valoracion que permitan obtener el valor razonable de los diferentes
instrumentos.
En el caso colombiano, las metodologas propuestas son las que se han mostrado
en este trabajo y que en general se encuentran contenidas en el Capitulo XVIII de la
Circular Externa 100 de 1995.

lej
A

an
dr
o P

re
Valoracion de Derivados 54

2. Metodologa del proyecto


La metodologa de trabajo que se siguio para el desarrollo de este proyecto fue la si-
guiente:

Para la definicion de los criterios de clasificacion de las metodologas y la selec-


cion de las que se utilizaran, se consulto en la bibliografa sobre las metodologas
mas recomendadas, bien sea por su aceptacion en el ambito practico o por su
simplicidad desde el punto de vista matematico. Adicionalmente, se pregunto a
varios conocedores del tema traders, analistas financieros, entre otros sobre
las metodologas que mas utilizan para la valuacion de derivados en Colombia.

El diseno de la aplicacion interface con el usuario se desarrollo de forma


individual para cada uno de los intrumentos derivados, ya que cada uno requirio
de una parametrizacion diferente para ser valorado. Adicionalmente, se creo un
modulo de control (Ver Figura 6) que le permite al usuario navegar por los distintos
valoradores de instrumentos. Este modulo integrador se construyo al final y se
constituye en el cuadro de control de toda la aplicacion.

La elaboracion del modelo software de valoracion se llevo a cabo por partes.


Cada parte corresponde a un instrumento derivado.
Esta forma de trabajo garantizo que los procedimientos y procesos de cada pro-
ducto no se mezclaran y se corrompieran unos a otros.

Las pruebas del modelo se llevaron a cabo mediante la comparacion de los resul-
tados arrojados por este contra los precios que hay en el mercado.

lej
A

an
dr
o P

re
Valoracion de Derivados 55

3. Desarrollo del proyecto


Tal como me menciono en la metodologa el desarrollo del valorador se efectuo por
partes, cada una de las cuales conto con un procedimiento propio de desarrollo. A
continuacion se explican las diferentes etapas que se abordaron para la construccion del
valorador de derivados y se explican brevemente los principales puntos de cada una de
las etapas.

3.1 Seleccion de las metodologas para valorar

Para la seleccion de las metodologas que se utilizaran en el valorador de derivados se


consulto la bibliografa existente y se seleccionaron las metodologas de acuerdo con los
siguientes criterios:

Aceptacion y aplicabilidad en el ambito practico


Se seleccionaron las metodologas que son mas faciles de aplicar sin dejar de lado
su validez. Este criterio fue el que permitio que las metodologas propuestas por la
Superintendencia Financiera de Colombia fueran seleccionadas en la mayora de
casos, debido a que su aplicacion implica el cumplimiento riguroso de la normativa
colombiana en el tema de la valoracion, lo que la hace la metodologa mas aplicada
por las entidades vigiladas por esta superintendencia.
Con el objetivo de verificar la aceptacion de las metodologas, se consulto con
varias personas que tienen conocimiento del tema por encontrarse inmersas en el
mercado. Bien sea como traders o como personal de riesgos y estructuracion. Las
personas que se consultaros son:
Camila Pinillos Madridl9 : Directora de Riesgo Financiero (Suramericana).
Juan Camilo Parrax0 : Director de Inversiones (Suramericana).
Daniel Arroyave Villaxl : Trader (Servibolsa).
Felipe Andres Herrera xx : Jefe de Inversiones Especiales e Investigacion (Pro-
teccion)
La conclusion que se obtuvo de las conversaciones con estas personas es que si bien
las metodologas de valoracion de la Superintendencia Financiera no siempre son
las mas adecuadas y los parametros que usan no siempre son los mas precisos, es-
tas siempre estan encaminadas a que sean de facil implementacion para la mayora
de los agentes de mercado y, mas importante aun, al utilizar estas metodologas
se evita el proceso de aprobacion de metodologas propias las que cada enti-
dad considera mejores que es demorado y de mucha exigencia por parte de la
Superintendencia.
Aunque el argumento para la aceptacion de las metodologas propuestas por la
superintendencia no se basa en su rigurosidad tecnica, estas cuentan con unas
i9
Conversacion llevada a cabo el miercoles 4 de febrero del 2009.
20
Conversacion llevada a cabo el miercoles 4 de febrero del 2009.
2i
Conversacion llevada a cabo el jueves 5 de febrero del 2009.
22
Conversacion llevada a cabo el viernes 13 de febrero del 2009.

lej
A

an
dr
o P

re
Valoracion de Derivados 56

bases correctas que permiten que sean aplicadas por las entidades y se obtengan
resultados de acuerdo con el mercado.

Complejidad matematica
Se evaluo la complejidad matematica de las diferentes metodologas y siempre se
pretendio utilizar el metodo menos complejo. Este criterio no fue muy utilizado
ya que el criterio anterior fue el que primo en la seleccion de las metodologas y,
adicionalmente, las metodologas propuestas por la Superintendencia Financiera
de Colombia no son muy complejas desde el punto de vista matematico.
Este criterio resulto importante en la seleccion de la metodologa utilizada para
valorar las Opciones. Esto se debio principalmente a que en este caso no se utilizo
la propuesta de la Superintendencia y por lo tanto fue necesario estudiar otras
alternativas.

En algunos casos se utilizara la metodologa propuesta por la superintendencia y en otros


se utilizaran metodologas diferentes bien sea por ser mas adecuadas o mas practicas a
la hora de utilizarlas.
Finalmente las metodologas que se adoptaron son las siguientes:

FORWARDS
La metodologa para valorar este tipo de instrumentos sera la propuesta por la Super-
intendencia Financiera de Colombia en la Circular Externa 021 de 2009.

FUTUROS
La metodologa que se utilizara para la valoracion de este tipo de derivados, sera la
propuesta por la Superintendencia Financiera de Colombia en la Circular 21 de junio
de 2009.

SWAPS
Para la valoracion de este tipo de instrumentos financieros derivados se propone la uti-
lizacion de la metodologa propuesta por la Superintendencia Financiera de Colombia
en el Captulo XVIII de la Circular 100. Esta es una metodologa sencilla y de facil
implementacion.

OPCIONES
La metodologa para valorar este tipo de instrumentos sera la de arboles binomiales.
Esta metodologa se ha seleccionado por encima de la propuesta por la Superintendencia
Financiera de Colombia porque permite valorar tanto Opciones Europeas como Ame-
ricanas. La metodologa propuesta por la Superintendencia es la utilizacion del modelo
de Black-Scholes/Merton que solo aplica para la valoracion de Opciones Europeas.
De acuerdo con Rendleman, Richard J. and Bartter, Brit J. (1979), el modelo de
Black-Scholes / Merton (propuesto por la SFC) es una transformacion matematica del
modelo binomial, que por medio de algunos supuestos, simplifica la solucion de las
multiples iteraciones al utilizar lmites. Cuando se evalua por medio de lmites el
modelo de los arboles binomiales cuando t 0, es decir, cuanto los incrementos o
lej
A

an
dr
o P

re
Valoracion de Derivados 57

decrementos en el precio del subyacente se vuelven continuos, en vez de discretos, es


posible derivar la formula de Black-Scholes / Merton.
Adicional a lo anterior el modelo de los arboles binomiales es mas facil de comprender
para una persona que no tiene muchos conocimientos financieros ya que muestra, por
medio de sucesivos pasos, como va cambiando el precio del subyacente y el de la opcion.

3.2 Diseno de los valoradores

La primera etapa que se llevo a cabo en este proceso fue la del diseno de la base de datos
de las series de tiempo y un esquema de como funcionara el valorador en su consjunto,
es decir, como se hara la integracion de todo el aplicativo.
Como se menciono anteriormente, los valoradores se disenaron y construyeron de
forma independiente.
Para disenar cada uno de los valoradores lo primero que se hizo fue una identifica-
cion de las variables que se requieren en cada caso para la valoracion del instrumento
financiero derivado. Posteriormente se diseno la forma como se tomara la informacion
de cada uno de los ttulos y como se valorara a partir de dicha informacion. Finalmente
se diseno un formulario que le permitiera al usuario ingresar de forma correcta todos
los datos de un ttulo a la aplicacion.

3.2.1 Interface

Como se ha mencionado anteriormente, el valorador esta construido en Microsoft


ExcelTM 2007. Es un libro que se ha estructurado por modulos de forma que cada uno
de ellos permita la adquisicion y valoracion de cada uno de los instrumentos financieros
derivados (Forwards, Futuros y Opciones).
En todos los formularios del valorador se ha incluido el smbolo (?) junto a cada uno
de los campos. Al hacer click en este smbolo se mostrara una explicacion de la variable
que aclarara su uso y el valor que se debe ingresar.

Menu principal
Al abrir el libro, el usuario encontrara el menu inicial que se muestra en la Figura
6. A traves de este menu se podra acceder a cada una de las hojas que componen
el valorador. Los modulos hojas sonx3 :
SERIES Este modulo comprende la base de datos de toda la informacion que es
utilizada para valorar los distintos instrumentos financieros derivados.
FORWARDS Este modulo permite adquirir Forwards para el portafolio y valo-
rarlos da tras da.
FUTUROS Este modulo permite adquirir Futuros para el portafolio y valorarlos
da tras da.
23
Aunque en un principio se plante la inclusion del valorador de Swaps en la aplicacion, no se conto
con el suficiente tiempo para implementar la metodologa. En carta al consejo academico entregada

lej
A

an
dr
o P

re
el da 23 de septiembre de 2009 se solicito un cambio
Valoracion en el anteproyecto que permitiera no incluir
de Derivados 58 el
valorador de Swaps.

lej
A

an
dr
o P

re
Valoracion de Derivados 59

OPCIONES Este modulo permite adquirir Opciones para el portafolio y valorar-


las da tras da.

Figura 6: Menu Inicial del Valorador

Para acceder a cada uno de los modulos solo es necesario hacer click en el boton
que lleva a cada una de las hojas, bien sea a la de las series o a la de cada uno de
los instrumentos.
El boton permite acceder a un formulario con la informacion tecnica del Valo-
rador y un link que lleva a este documento.

Series
Esta hoja, como se menciono anteriormente, es una base de datos de series de
tiempo, en la que cada una de las columnas es una variable de mercado. La Figura
7 muestra una pequena parte de la hoja.
Para que el valorador funcione correctamente el usuario debe actualizar constante-
mente las series, garantizando que para el da de la valoracion TODAS las variables
tengan informacion.
En el encabezado de cada una de las columnas se encuentra el nombre de la serie
y la fuente en donde es posible obtener la informacion para su actualizacion. Es
importante aclarar que algunas variables fueron extradas de fuentes que no son
de libre acceso y que por lo tanto, el usuario debera obtener una suscripcion para
poder acceder a la informacion de esas fuentes.
La entrada de los datos en esta hoja se implemento de forma manual por la facili-
dad que representa esta estructura para la entrada de datos y porque no se conto
con el suficiente tiempo para elaborar una interface automatica. Adicionalmente,
esta interface requerira que los usuarios contaran con una suscripcion a un sistema
de informacion financiera lo cual es costoso y no siempre se podra asegurar.

Forwards

lej
A

an
dr
o P

re
Valoracion de Derivados 60
Al presionar el boton FORWARDS se ingresa a este modulo.

lej
A

an
dr
o P

re
Valoracion de Derivados 61

Figura 7: Vista de la Hoja SERIES del valorador

La Figura 8 muestra una parte de este modulo en la que se pueden observar tres
botones: REGRESAR que permite volver al Menu Inicial de la Figura 6, Ad-
quirir que permite agregar Forwards al portafolio y Valorar que llama la rutina
que valora los ttulos vigentes a la fecha que se ha ingresado en la celda Fecha
Valoracionel modulo de Futuros y el de Opciones tiene las misma estructura
y los botones cumplen con las mismas funciones en cada uno de ellos.

Figura 8: Vista de la Hoja FORWARDS del valorador

El funcionamiento de la hoja es el siguiente: Al hacer click en el boton Adquirir


aparece el formulario que se muestra en la Figura 9, por medio del cual se ingresan
las condiciones del contrato Forward que se va a pactar. Una vez comprado el
ttulo, este se registrara en una fila de forma que la informacion quede dispuesta
debajo de cada uno de los encabezados de la tabla que se observa en la Figura 8
esta imagen es ilustrativa, en el valorador la tabla tiene mas columnas.
A continuacion se explica cada uno de los campos del formulario:

Entidad Persona Natural o Jurdica con la que se esta pactando el Forward.


Ejemplos de Entidades pueden ser: Valores Bancolombia y Corficolombiana.
Tipo de Contrato Indica si es un Forward de Venta o un Forward de Compra.
En el primer caso se estara adquiriendo el compromiso de Vender el activo
subyacente Dolares, Ttulos, entre otros en el futuro y en el segundo caso
se estara pactando el compromiso de comprar el activo en el futuro.
lej
A

an
dr
o P

re
Valoracion de Derivados 62

Figura 9: Formulario de Adquisicion de Forwards

Entrega Especifica si en la fecha de cumplimiento del contrato se hara entrega fsi-


ca de los activos subyacentes pactados Delivery o si por el contrario solo
se hara un neteo de posiciones y se efectuara un cumplimiento financiero.
Subyacente Especificacion del tipo de subyacente sobre el que se esta pactando
el contrato. Estos son:
Divisas
Tasas de Interes
Ttulos Renta Fija
A su vez cada uno de los subyacentes se sub-divide en varios activos mas
especficos.x4
Fecha Operacion Fecha en la que se pacta el contrato Forward. Es la fecha en la
que se negocia el instrumento con la contraparte y este entra en vigencia.
Cumplimiento Fecha en la que se liquidaran las posiciones. Es cuando el contrato
se vence y se hace efectivo el intercambio del subyacente o el cumplimiento
financiero.
Monto Contrato Cantidad de subyacente que se negocia en el contrato. Un
ejemplo de este valor puede ser 1,000 dolares americanos.
Precio Pactado Precio al que se liquidara el contrato en la fecha de cumplimiento.
Siguiendo con el ejemplo anterior se podra tener un precio de $2,100 pesos
por dolar.

Al seleccionar en el campo Subyacente Ttulos Tasa Fija se activa un boton en el


formulario como lo muestra la Figura 10. Al presionar este boton se accede a un
24
Para mas detalles consulte directamente en la Ayuda del valorador

lej
A

an
dr
o P

re
Valoracion de Derivados 63

nuevo formulario (Figura 11) que le permite al usuario ingresar las condiciones
faciales del ttulo para ser almacenadas como parte de la operacion.

Figura 10: Formulario de Adquisicion de Forwards con boton para parametrizar Ttulos Renta Fija

Los campos que contiene este nuevo formulario (Figura 11) se describen a conti-
nuacion:

Emisor Entidad que emitio el ttulo. Un ejemplo de esto puede ser el Gobierno
Nacional en el caso de los ttulos TES Clase B.
Clase de Ttulo Descripcion que le quiera agregar el usuario para su posterior
recnocimiento
Plazo de Maduracion Tiempo en Das que resta hasta el vencimiento del ttulo.
Tasa Facial Tasa de interes que pagara el ttulo sobre el valor nominal de este.
Se debe entrar como un valor porcentual pero sin el signo %.
Periodicidad Frecuencia con la que el ttulo pagara cupones.
Modalidad Indica si la tasa se calculara Anticipada o Vencida.
Cupon Se debe seleccionar si se presentara pago de cupon durante la vigencia
del contrato Forward. En caso de ser afirmativo se debe seleccionar la fecha
de dicho pago. El monto del cupon se calculara por defecto, sin embargo, el
usuario puede modificarlo si es necesario.

Al seleccionar en el campo Subyacente Tasas de Interes se activa un boton en el


formulario como lo muestra la Figura 12. Al presionar este boton se accede a un
nuevo formulario (Figura 13) que le permite al usuario ingresar las condiciones del
FRA.
Este nuevo formulario (Figura 13) solo contiene un campo adicional en el que el
usuario debe igresar la Fecha de Liquidacion del Forward.
lej
A

an
dr
o P

re
Valoracion de Derivados 64

Figura 11: Formulario de Parametrizacion de Ttulos Renta Fija

Finalmente, el boton Valorar inicia un procedimiento que valora a la fecha


que aparece en la parte superior izquierda del modulo todos los Forwards que
estan vigentes a ese da. El resultado final de este proceso se puede observar en la
ultima columna de la tabla (Figura 8) que muestra la Utilidad/Perdida acumulada de
cada uno de los contratos vigentes.
Cuando existen muchos contratos vigentes aparecera durante el proceso de valo-
racion un formulario que mostrara el avance de de la valoracion; esto con el fin de
que el usuario conozca cuanto tardara el proceso.

Futuros
Al presionar el boton FUTUROS se ingresa a este modulo.
La Figura 14 muestra la parte superior izquierda del modulo de Futuros. Como se
menciono anteriormente en la seccion 3.2.1 los botones tienen las mismas funciones
que en el modulo de Forwards con la excepcion que en este caso se Adquiere un
Futuro y se Valoran los Futuros vigentes a la fecha.
Al hacer click en el boton Adquirir aparece el formulario que se muestra en la
Figura 15, por medio del cual se ingresan las condiciones del Futuro que se va a
pactar. Una vez comprado el ttulo, este se registrara en una fila de forma que
la informacion quede dispuesta debajo de cada uno de los encabezados de la tabla
que se observa en la Figura 14 esta imagen es ilustrativa, en el valorador la tabla
tiene mas columnas.
A continuacion se explica cada uno de los campos del formulario:

Entidad Persona Natural o Jurdica con la que se esta pactando el Futuro.


Como los futuros se negocian en mercados organizados en este campo siempre
se entrara una Bolsa de Valores o un Mercado de Futuros estandarizado.
lej
A

an
dr
o P

re
Valoracion de Derivados 65

Figura 12: Formulario de Adquisicion de Forwards con boton para parametrizar FRAs

Tipo de Contrato Indica si es un Futuro de Venta o un Futuro de Compra. En


el primer caso se estara adquiriendo el compromiso de Vender el activo sub-
yacente Dolares o Ttulos en el futuro y en el segundo caso se estara
pactando el compromiso de comprar el activo en el futuro.
Entrega Este campo esta bloqueado para este tipo de contratos porque por lo
general se pactan Delivery. Se ha dejado esta seleccion por defecto.
Subyacente Especificacion del tipo de subyacente sobre el que se esta pactando
el contrato. Estos son:
TRM
Bono Nocional
A su vez cada uno de los subyacentes se sub-divide en varios activos mas

Figura 13: Formulario de Parametrizacion de FRA (Forward Rate Agreement )

lej
A

an
dr
o P

re
Valoracion de Derivados 66

Figura 14: Vista de la Hoja Futuros del valorador

Figura 15: Formulario de Adquisicion de Futuros

especficos.x5
Fecha Operacion Fecha en la que se pacta el contrato Futuro. Es la fecha en la
que se negocia el instrumento con la contraparte y este entra en vigencia.
Cumplimiento Fecha en la que se liquidaran las posiciones. Es cuando el contrato
se vence y se hace efectivo el intercambio del subyacente o el cumplimiento
financiero.
Numero Contratos Cantidad de contratos que se estan pactando.
Nominal Contrato Valor Nominal de cada contrato. Cada Bolsa de Valores define
el valor nominal de los contratos que se transan en ella. Como ejemplo, se
tiene que el Futuro sobre TRM en Colombia tiene como subyacente USD
$50,000.

lej
A

an
dr
o P

re
Valoracion de Derivados 67
Precio Pactado Precio al que se liquidara el contrato en la fecha de cumplimiento.

lej
A

an
dr
o P

re
Valoracion de Derivados 68

Finalmente, el boton Valorar inicia un procedimiento que valora a la fecha que


aparece en la parte superior izquierda del modulo todos los Futuros que estan
vigentes a ese da. El resultado final de este proceso se puede observar en la ultima
columna de la tabla (Figura 14) que muestra la Utilidad/Perdida acumulada de
cada uno de los contratos vigentes.
Cuando existen muchos contratos vigentes aparecera durante el proceso de valo-
racion un formulario que mostrara el avance de de la valoracion; esto con el fin de
que el usuario conozca cuanto tardara el proceso.
Opciones
Al presionar el boton OPCIONES se ingresa a este modulo.
La Figura 16 muestra la parte superior izquierda del modulo de Opciones. Como se
menciono anteriormente en la seccion 3.2.1 los botones tienen las mismas funciones
que en el modulo de Forwards con la excepcion que en este caso se Adquiere una
Opcion y se Valoran las Opciones vigentes a la fecha.

Figura 16: Vista de la Hoja OPCIONES del valorador

Al hacer click en el boton Adquirir aparece el formulario que se muestra en la


Figura 17, por medio del cual se ingresan las condiciones de la Opcion que se va
a pactar. Una vez comprado el ttulo, este se registrara en una fila de forma
que la informacion quede dispuesta debajo de cada uno de los encabezados de la
tabla que se observa en la Figura 16 esta imagen es ilustrativa, en el valorador
la tabla tiene mas columnas.
A continuacion se explica cada uno de los campos del formulario:
Entidad Persona Natural o Jurdica con la que se esta pactando la Opcion.
Ejemplos de Entidades pueden ser: Valores Bancolombia y Corficolombiana
cuando son contratos OTC o una Bolsa de Valores cuando son contratos en
Mercados Estandarizados.
Derecho Indica si es una Opcion que le da al comprador el derecho a Vender o
el Derecho a Comprar. En el primer caso se estara adquiriendo el derecho
pero no la obligacion a Vender el activo subyacente Acciones, Monedas o
Indices en el futuro y en el segundo caso se estara adquiriendo el derecho a
comprar el activo en el futuro.
Entrega Especifica si en la fecha de cumplimiento del contrato se hara entrega fsi-

lej
A

an
dr
o P

re
Valoracion de Derivados 69
ca de los activos subyacentes pactados Delivery o si por el contrario solo
se hara un neteo de posiciones y se efectuara un cumplimiento financiero.

lej
A

an
dr
o P

re
Valoracion de Derivados 70

Figura 17: Formulario de Adquisicion de Opciones

Subyacente Especificacion del tipo de subyacente sobre el que se esta pactando


el contrato. Estos son:
Acciones
Monedas
Indices
A su vez cada uno de los subyacentes se sub-divide en varios activos mas
especficos.x6
Fecha Operacion Fecha en la que se pacta la Opcion. Es la fecha en la que se
negocia el instrumento con la contraparte y esta entra en vigencia.
Cumplimiento Fecha en la que se liquidaran las posiciones. Es cuando el contrato
se vence y se hace efectivo el intercambio del subyacente o el cumplimiento
financiero.
Numero Opciones Cantidad de contratos que se estan pactando.
Precio Pactado Precio al que se liquidara el contrato en la fecha de cumplimiento.
Prima Es valor que se pag por cada Opcion.

Tipo Indca si la opcion negociada es Americana o Europea. En el primer caso


la opcion se puede ejercer en cualquier momento durante la vigencia de esta,
mientras que en el segundo caso el ejercicio solo se podra hacer en la fecha
de cumplimiento del instrumento.
Al seleccionar en el campo Subyacente Acciones se activa un boton en el formulario
como lo muestra la Figura 18. Al presionar este boton se accede a un nuevo

lej
A

an
dr
o P

re
26
Para mas detalles consulte directamenteValoracion
en la Ayuda de
del Derivados
valorador 71

lej
A

an
dr
o P

re
Valoracion de Derivados 72

formulario (Figura 19) que le permite al usuario ingresar los dividendos que paga
la accion si son conocidos durante la vigencia de la Opcion.

Figura 18: Formulario de Adquisicion de Opciones con boton para parametrizar Dividendos de Acciones

El funcionamiento de este nuevo formulario es muy sencillo. El usuario debe ingre-


sar en la columna izquierda la fecha y en la columna derecha el valor del dividendo.
Es importante reiterar que solo se deben ingresar dividendos que se pagaran du-
rante la vigencia de la Opcion y unicamente en los casos en los que estos son
conocidos como valor. Para aclarar el punto se propone el siguiente ejemplo: Un
inversionista adquiere una opcion de compra sobre una Accion de Ecopetrol; el
sabe que la esta accion pagara un dividendo de COP $50 dentro de un mes, por lo
tanto, en la tabla de dividendos ingresara la fecha en la que se pagara el dividendo y
el valor que en este caso es 50.

Las Acciones que pagan un dividendo en forma de Tasa, se deben tratar como un
Indice con rendimiento x %.

Finalmente, el boton Valorar inicia un procedimiento que valora a la fecha que


aparece en la parte superior izquierda del modulo todos las Opciones que estan
vigentes a ese da. El resultado final de este proceso se puede observar en la ultima
columna de la tabla (Figura 16) que muestra la Utilidad/Perdida acumulada de
cada uno de los contratos vigentes.

Cuando existen muchos contratos vigentes aparecera durante el proceso de valo-


racion un formulario que mostrara el avance de de la valoracion; esto con el fin de
que el usuario conozca cuanto tardara el proceso.

lej
A

an
dr
o P

re
Valoracion de Derivados 73

Figura 19: Formulario de Parametrizacion de Dividendos de Acciones

3.3 Construccion de los valoradores

La construccion de los de los valoradores se llevo a cabo mediante Microsoft ExcelTM


2007 con Visual BasicTM for Applications (VBA).
La construccion se efectuo por modulos y formularios como se muestra en la Figura
20. Cada i n s t r u m e nto cuanta con un modulo propio en el que se encuentra todo el
codigo para valorarlos e ingresarlos al aplicativo, igualmente cuenta con varios formularios
que le permiten al usuario interactuar con cada parte del valorador.
Para mas detalles sobre el aplicativo y sobre el el producto final, ejecute el archivo
ValoradorDerivados.xlsx que se ubica en el escritorio despues de seguir los pasos de
la instalacion descritos en el Anexo A.

3.3.1 Codigo VBA

En la presente seccion se muestra el codigo escrito en el lenguaje VBA que permite el


funcionamiento de la aplicacion.
La forma como se presenta el codigo es por partes, siguiendo el esquema presentado
en la Figura 20.

1. Formularios

frmAyudafrm
En la Figura 21 se muestra el diseno del formulario frmAyudafrm.
i Privat e Sub btnCerrar_Clic k ()
2 Unload Me
3 End Sub

lej
A

an
dr
o P

re
Valoracion de Derivados 74

Figura 20: Estructura del codigo del Valorador de Derivados

i Privat e Sub Label3_Click ()


2 Unload Me
3 Call CargarSubFormsAyuda ( NameHyp1 )
4 End Sub

i Privat e Sub Label4_Click ()


2 Unload Me
3 Call CargarSubFormsAyuda ( NameHyp2 )
4 End Sub

frmCreditos
En la Figura 22 se muestra el diseno del formulario frmCreditos.
i Privat e Sub btnCerrar_Click ()
2 Me . Hide
3 End Sub

i Privat e Sub Label10_Click ()


2 Wor kshe ets (" INICIO "). Range ( " D9 "). Hyp erlinks . Item (1) . Foll ow
3 End Sub

i Privat e Sub lblTesis_Click ()


2
3 Dim rtPDF As String
4 Dim rtArchivo As String
5
6 rtPDF = Sheets (" CODIGO "). Cells (4 , 7)
7 rtArchivo = Sheets (" CODIGO ") . Cells (5 , 7)
8

lej
A

an
dr
o P

re
Valoracion de Derivados 75

Figura 21: Diseno del formulario frmAyudafrm

9 Call Shell ( rtPDF & " " & rtArchivo , vbMaximizedFocus )


i0
ii End Sub

frmNewFrd
En la Figura 23 se muestra el diseno del formulario frmNewFrd.
i Privat e Sub Ayuda1_Clic k ()
2 Call A yuda Forms ( " fr mNew Frd1 ")
3 End Sub

i Privat e Sub Ayuda2_Clic k ()


2 Call A yuda Forms ( " frmNewFrd2 " , , True )
3 End Sub

Figura 22: Diseno del formulario frmCreditos

lej
A

an
dr
o P

re
Valoracion de Derivados 76

Figura 23: Diseno del formulario frmNewFrd

i Privat e Sub Ayuda3_Click ()


2 Call A yuda Forms ( " fr mNew Frd3 ")
3 End Sub

i Privat e Sub Ayuda4_Click ()


2 Call A yuda Forms ( " frmNewFrd4 ")
3 End Sub

i Privat e Sub Ayuda5_Click ()


2 Call A yuda Forms ( " fr mNew Frd5 ")
3 End Sub

i Privat e Sub Ayuda6_Click ()


2 Call A yuda Forms ( " fr mNew Frd6 ")
3 End Sub

i Privat e Sub Ayuda7_Click ()


2
3 Dim MIDivisas As Byte
4
5 If frmNewFrd . cmbSubyacente . Value = " Divisas " And frmNewFrd .
cmbTipoSubyacent e . Value <> " USD " Then
6 MIDivisas = 1
7 Else
8 MIDivisas = 0
9 End If
i0
ii Call A yuda Forms ( " frmNewFrd7 " , MIDivisa s )
i2
i3 End Sub

i Privat e Sub Ayuda8_Click ()


2 Call A yuda Forms ( " frmNewFrd8 ")
3 End Sub

lej
A

an
dr
o P

re
Valoracion de Derivados 77

i Privat e Sub Ayuda9_Clic k ()


2 Call A yuda Forms ( " fr mNew Frd9 ")
3 End Sub

i Privat e Sub btnAdquirir_Clic k ()


2
3 Dim FEs critura As Intege r
4 Dim FrdTipo As String
5 Dim FrdSubyacent e As String
6 Dim Divisor As Integer
7
8 Call V frmN ewFrd
9 If RValForm = False Then
i0 Exit Sub
ii End If
i2
i3 Me . Hide
i4
i5 Call CodFrd
i6
i7 Call ClasificacionFr d (0 , False )
i8
i9 If Mid ( Sh eets (" CODIGO ") . Cells (19 , 47) , 1, 2) = " S2 " Then
20 Divisor = 100
2i Else
22 Divisor = 1
23 End If
24
25 Fila en la que se escr ibi r a la in for mac i on del nuevo Frd
26 FEscrit ura = Sheets (" CODIGO "). Cells (7 , 51) + Sheets (" CODIGO " ) . Cells
(8 , 51)
27
28 Se empiez a a escribi r la i nfo rmac i o n de nuevo Frd - columna por
columna
29 Cells ( FEscritura , 1) = Sheets (" CODIGO ") . Cells (5 , 51)
30 Cells ( FEscritura , 3) = frmNewFrd . dtpkOperacion
3i Cells ( FEscritura , 4) = UCase ( frmNewFrd . txbEnt idad )
32 Cells ( FEscritura , 5) = UCase ( frmNewFrd . cmbTipo )
33 Cells ( FEscritura , 6) = frmNewFrd . cmbTipoSubyace nt e
34 Cells ( FEscritura , 7) = frmNewFrd . dtpkCumplimiento
35 Cells ( FEscritura , 8) = frmNewFrd . lblUnidadesMonto
36 C1Formatofr m = Round ( CDbl ( frmNewFrd . txbMont o ) , 6)
37 Cells ( FEscritura , 9) = C1Formatofrm
38 Cells ( FEscritura , 10) = Sheets (" CODIGO ") . Cells (18 , 49)
39
40 C1Formatofr m = CDbl ( frmNewFr d . txbMont o )
4i C2Formatofr m = CDbl ( frmNewFr d . txbPreci o )
42 Cells ( FEscritura , 11) = Round ( C1Formatofrm * C2Formatofrm , 6) /
Divisor
43
44 Cells ( FEscritura , 12) = frmNewFrd . lblUnidadesPrecio
45 Cells ( FEscritura , 13) = Round ( C2Formatofrm , 6)
46 Cells ( FEscritura , 14) = UCase ( frmNewFrd . cmbEnt rega )
47 Call P erio doFrd ( FEscritura )
48 Call ObservacionFr d ( FrdTitul o (0) , FEscrit ura )
49 Cells ( FEscritura , 19) = " SI "
50 Cells ( FEscritura , 22) = Sheets (" CODIGO ") . Cells (18 , 51)
5i Cells ( FEscritura , 24) = Sheets (" CODIGO ") . Cells (18 , 52)
52
53 Se llama la fun ci o n que le da format o a la fila nuev a ( en la que
se acaba de escribir la info )
54 Call F orma toFrd ( FEscritura )
55
56 Unload Me

lej
A

an
dr
o P

re
Valoracion de Derivados 78

57
58 Cells (3 , 3) . Select
59
60 End Sub

i Privat e Sub btnCerrar_Click ()


2 Unload Me
3 End Sub

i Privat e Sub btnFra_Click ()


2 frmNewFrd_ 3 . Show
3 End Sub

i Privat e Sub btnTitulo_Click ()


2 frmNewFrd_ 2 . Show
3 End Sub

i Privat e Sub cmbSubyacente_Enter ()


2 frmNewFrd . cmbTipoSubyacente . Enabled = True
3 End Sub

i Privat e Sub cmbSubyacente_Exit ( ByVal Cancel As MSForm s . ReturnBoolea n )


2
3 Dim TiposSubyacente s () As String
4 Dim N As Integer
5 Dim F As Integer
6 Dim i As Integer
7
8 frmNewFrd . cmbTipoSubyacente . MatchRequired = False
9
i0 If frmNewFrd . cmbSubyacente . Value = " " Then
ii Exit Sub
i2 End If
i3
i4 Sheets (" CODIGO ") . Cells (10 , 47) = frmNewFrd . cmbSubyacent e . Value
i5
i6 N = Sheets (" CODIGO " ). Cells (10 , 49)
i7 F = Sheets (" CODIGO " ). Cells (10 , 48)
i8
i9 ReDim TiposSubyacente s (N - 1)
20 For i = 0 To N - 1
2i TiposSubyacentes ( i) = Sheets (" CODIGO " ). Cells (F , 48 + i)
22 Next i
23
24 frmNewFrd . cmbTipoSubyacente . List = TiposSubyacentes
25 frmNewFrd . cmbTipoSubyacente . Value = TiposSubyacentes (0)
26 frmNewFrd . cmbTipoSubyacente . MatchRequired = True
27
28 If frmNewFrd . cmbSubyacente . Value = " T tulos Renta Fija " Then
29 frmNewFrd . btnTitulo . Visibl e = True
30 frmNewFrd . btnFra . Visible = False
3i ElseIf frmNewFrd . cmbSubyacente . Value = " Tasas de Interes " Then
32 frmNewFrd . btnTitulo . Visibl e = False
33 frmNewFrd . btnFra . Visible = True
34 Else
35 frmNewFrd . btnTitulo . Visibl e = False
36 frmNewFrd . btnFra . Visible = False
37 End If
38
39 End Sub

lej
A

an
dr
o P

re
Valoracion de Derivados 79

i Privat e Sub cmbTipoSubyacente_Exi t ( ByVal Cancel As MSForms .


ReturnBoolean )
2
3 If frmNewFrd . cmbTipoSubyacente . Value = "" Then
4 Exit Sub
5 End If
6
7 Sheets (" CODIGO ") . Cells (18 , 47) = frmNewFrd . cmbTipoSubyacente . Value
8
9 frmNewFrd . lblUnidadesMonto = Sheets ( " CODIGO " ). Cells (18 , 48)
i0 frmNewFrd . lblUnidadesPrecio = Sheets (" CODIGO " ). Cells (18 , 50)
ii
i2 frmNewFrd . lblUnidadesMonto . Visible = True
i3 frmNewFrd . lblUnidadesPrecio . Visible = True
i4
i5 End Sub

i Privat e Sub txbMonto_Exi t ( ByVal Cancel As MSForm s . ReturnBoolean )


2
3 Fnum6d = ""
4 Call txbFormatoMile s ( frmNewFrd . txbMonto , 3)
5 frmNewFrd . txbMonto = Fnum6d
6
7 End Sub

i Privat e Sub txbPrecio_Exi t ( ByVal Cancel As MSForm s . ReturnBoolean )


2
3 Fnum6d = ""
4 Call txbFormatoMile s ( frmNewFrd . txbPrecio )
5 frmNewFrd . txbPrecio = Fnum6d
6
7 End Sub

i Privat e Sub UserForm_Initializ e ()


2
3 Dim Vector As Variant
4 Dim Elemento As Variant
5
6 Se limpia n los ComboBox
7 frmNewFrd . cmbTipo . Clear
8 frmNewFrd . cmbSubyacente . Clear
9 frmNewFrd . cmbEnt rega . Clear
i0
ii Se cargan los elemento de la lista Tipo Contrato
i2 Vector = Array (" Compra " , " Venta ")
i3 For Each Elemento In Vector
i4 frmNewFrd . cmbTipo . AddItem Elemento
i5 Next
i6
i7 Se cargan los elemento de la lista Subyacente
i8 Vector = Array (" Divisas " , " Tasas de Interes " , " T t ulo s Renta Fija ")
i9 For Each Elemento In Vector
20 frmNewFrd . cmbSubyacente . AddItem Element o
2i Next
22
23 Se cargan los elemento de la lista Entrega
24 Vector = Array (" Deliver y " , " Non Delivery ")
25 For Each Elemento In Vector
26 frmNewFrd . cmb Entr ega . AddItem Element o
27 Next
28
29 frmNewFrd . dtpkOperacion . Value = Date
30 frmNewFrd . dtpkCumplimiento . Value = Date + 3

lej
A

an
dr
o P

re
Valoracion de Derivados 80

3i
32 ReDim FrdTitulo (1)
33 FrdTitulo (0) = False
34
35 End Sub

frmNewFrd 1
En la Figura 24 se muestra el diseno del formulario frmNewFrd_1.

Figura 24: Diseno del formulario frmNewFrd 1

i Privat e Sub btnCalcular_Click ()


2
3 Call VfrmNewFrd_1
4 If RValForm = False Then
5 Exit Sub
6 End If
7
8 C1Formatofr m = CDbl ( frmNewFrd_1 . txbMont o )
9 C2Formatofr m = CDbl ( frmNewFr d . txbMont o )
i0 frmNewFrd . txbPrecio = CStr ( Round ( C1Formatofrm / C2Formatofrm , 6) )
ii
i2 Unload Me
i3
i4 End Sub

i Privat e Sub btnCancelar_Click ()


2 Unload Me
3 End Sub

i Privat e Sub UserForm_Initialize ()


2
3 Dim Tipo As String
4
5 If frmNewFrd . cmbTipo . Valu e = " Venta " Then
6 Tipo = " recibira "
7 Else
8 Tipo = " entregara "
9 End If
i0
ii frmNewFrd_ 1 . lblEncabezado = " Si no conoce el precio en USD /" &
frmNewFrd . cmbTipoSubyacente . Value & " pactado , escriba el monto en
dol are s que " & Tipo & " en la fecha de cumplimiento ."
i2
i3 End Sub

frmNewFrd 2
En la Figura 25 se muestra el diseno del formulario frmNewFrd_2.
lej
A

an
dr
o P

re
Valoracion de Derivados 81

Figura 25: Diseno del formulario frmNewFrd 2

i Privat e Sub Ayuda1_Clic k ()


2 Call A yuda Forms ( " frmNewFrd_21 ")
3 End Sub

i Privat e Sub Ayuda2_Clic k ()


2 Call A yuda Forms ( " frmNewFrd_22 ")
3 End Sub

i Privat e Sub Ayuda3_Clic k ()


2 Call A yuda Forms ( " frmNewFrd_23 ")
3 End Sub

i Privat e Sub Ayuda4_Clic k ()


2 Call A yuda Forms ( " frmNewFrd_24 ")
3 End Sub

i Privat e Sub Ayuda5_Clic k ()


2 Call A yuda Forms ( " frmNewFrd_25 ")
3 End Sub

i Privat e Sub Ayuda6_Clic k ()


2 Call A yuda Forms ( " frmNewFrd_26 ")
3 End Sub

i Privat e Sub Ayuda7_Clic k ()


2 Call A yuda Forms ( " frmNewFrd_27 ")
3 End Sub

i Privat e Sub Ayuda8_Clic k ()


2 Call A yuda Forms ( " frmNewFrd_28 ")
3 End Sub

lej
A

an
dr
o P

re
Valoracion de Derivados 82

i Privat e Sub Ayuda9_Click ()


2 Call A yuda Forms ( " frmNewFrd_29 ")
3 End Sub

i Privat e Sub btnCerrar_Click ()


2 Unload Me
3 End Sub

i Privat e Sub btnGuardar_Click ()


2
3 Dim F As Integer
4
5 Call VfrmNewFrd_2
6 If RValForm = False Then
7 Exit Sub
8 End If
9
i0 ReDim FrdTitulo (9)
ii FrdTitulo (0) = True
i2 FrdTitulo (1) = frmNewFrd_2 . txbEntidad
i3 FrdTitulo (2) = frmNewFrd_2 . txbClas e
i4 FrdTitulo (3) = frmNewFrd_2 . txbPlaz o
i5 FrdTitulo (4) = frmNewFrd_2 . txbTfacial
i6 FrdTitulo (5) = frmNewFrd_2 . cmbPeriodicidad
i7 FrdTitulo (6) = frmNewFrd_2 . cmbModalidad
i8 If frmNewFrd_2 . opbC upon Si . Value = True Then
i9 FrdTitulo (7) = " Si "
20 FrdTitulo (8) = frmNewFrd_2 . dtpkFechaCupon
2i FrdTitulo (9) = FormatNumber ( frmNewFrd_ 2 . txbMontoCupon , 3 ,

vbUseDefault , vbUseDefault , vbTrue )


22 Else

23 FrdTitulo (7) = " No "


24 FrdTitulo (8) = " NA "
25 FrdTitulo (9) = " NA "
26 End If
27
28
29 Unload Me
30
3i End Sub

i Privat e Sub opbCuponNo_Click ()


2
3 If frmNewFrd_2 . opbC upon Si . Value = False Then
4 frmNewFrd_2 . Label9 . Enable d = False
5 frmNewFrd_2 . dtpkFechaCupon . Enabled = False
6 frmNewFrd_2 . Ayuda8 . Enable d = False
7 frmNewFrd_2 . Label10 . Enable d = False
8 frmNewFrd_2 . txbMontoCupon . Enabled = False
9 frmNewFrd_2 . Ayuda9 . Enable d = False
i0 frmNewFrd_2 . txbMontoCupon = ""
ii End If
i2
i3 End Sub

i Privat e Sub opbCuponSi_Click ()


2
3 If frmNewFrd_2 . opbC upon Si . Value = True Then
4 frmNewFrd_2 . Label9 . Enable d = True
5 frmNewFrd_2 . dtpkFechaCupon . Enabled = True

lej
A

an
dr
o P

re
6 frmNewFrd_2 .Valoracion
Ayuda8 . Enable
de dDerivados
= True 83
7 frmNewFrd_2 . Label10 . Enable d = True

lej
A

an
dr
o P

re
Valoracion de Derivados 84

8 frmNewFrd_ 2 . txbMontoCupon . Enabled = True


9 frmNewFrd_ 2 . Ayuda9 . Enable d = True
i0 Fnum6d = ""
ii frmNewFrd_ 2 . txbMontoCupon = frmNewFrd_ 2 . txb Tfacial
i2 Call txbFormatoMiles ( frmNewFrd_2 . txbMontoCupon )
i3 frmNewFrd_ 2 . txbMontoCupon = Fnum6d
i4 End If
i5
i6 End Sub

i Privat e Sub txbMont oCupon_AfterUpdat e ()


2
3 Fnum6d = ""
4 Call txbFormatoMile s ( frmNewFrd_2 . txbMontoCupon )
5 frmNewFrd_ 2 . txbMontoCupon = Fnum6d
6
7 End Sub

i Privat e Sub UserForm_Initializ e ()


2
3 Dim Vector As Variant
4 Dim Elemento As Variant
5
6 Se limpia el ComboBox
7 frmNewFrd_ 2 . cmbPeriodicidad . Clear
8
9 Se cargan los elemento de la lista Pe riod icida d
i0 Vector = Array (" Diaria " , " Semanal " , " Mensual " , " T rimestral " , "
Semestral " , " Anual " )
ii For Each Elemento In Vector
i2 frmNewFrd_ 2 . cmbPeriodicidad . AddIte m Elemento
i3 Next
i4
i5 Se cargan los elemento de la lista Modalidad
i6 Vector = Array (" Vencido " , " Ant icip ado ")
i7 For Each Elemento In Vector
i8 frmNewFrd_ 2 . cmbModalidad . AddItem Elemento
i9 Next
20
2i Se carga la fech a de hoy en el DatePicker
22 frmNewFrd_ 2 . dtpkFechaCupon . Value = Date
23
24 Se carga " NO CUPON " como opcion por defect o
25 frmNewFrd_ 2 . op bCup onNo . Value = True
26
27 End Sub

frmNewFrd 3
En la Figura 26 se muestra el diseno del formulario frmNewFrd_3.
i Privat e Sub Ayuda1_Clic k ()
2 Call A yuda Forms ( " frmNewFrd_31 ")
3 End Sub

i Privat e Sub btnCerrar_Clic k ()


2 Unload Me
3 End Sub

i Privat e Sub btnGuardar_Clic k ()


2
3 Dim F As Integer
4

lej
A

an
dr
o P

re
Valoracion de Derivados 85

Figura 26: Diseno del formulario frmNewFrd 3

5 Call VfrmNewFrd_3
6 If RValForm = False Then
7 Exit Sub
8 End If
9
i0 FrdFechaLi q = frmNewFrd_3 . dtpkFechaLiquidacion
ii
i2 Unload Me
i3
i4 End Sub

i Privat e Sub UserForm_Initialize ()


2
3 Se cargan las fechas de Op era ci o n y C umplim iento en los TextBox
4 frmNewFrd_ 3 . txbFOperacion = frmNewFrd . dtpkOperacion
5 frmNewFrd_ 3 . txbFCumplimiento = frmNewFr d . dtpkCumplimiento
6
7 Se carga la fech a de hoy en el DatePicker
8 frmNewFrd_ 3 . dtpkFechaLiquidacion . Value = Date
9
i0 End Sub

frmNewFut
En la Figura 27 se muestra el diseno del formulario frmNewFut.
i Privat e Sub Ayuda1_Click ()
2 Call A yuda Forms ( " frmNewFut1 ")
3 End Sub

i Privat e Sub Ayuda10_Click ()


2 Call A yuda Forms ( " frmNewFut10 ")
3 End Sub

i Privat e Sub Ayuda2_Click ()


2 Call A yuda Forms ( " fr mNew Fut2 " , , True )
3 End Sub

i Privat e Sub Ayuda3_Click ()


2 Call A yuda Forms ( " fr mNew Fut3 ")
3 End Sub

lej
A

an
dr
o P

re
Valoracion de Derivados 86

Figura 27: Diseno del formulario frmNewFut

i Privat e Sub Ayuda4_Clic k ()


2 Call A yuda Forms ( " fr mNew Fut4 ")
3 End Sub

i Privat e Sub Ayuda5_Clic k ()


2 Call A yuda Forms ( " frmNewFut5 ")
3 End Sub

i Privat e Sub Ayuda6_Clic k ()


2 Call A yuda Forms ( " frmNewFut6 ")
3 End Sub

i Privat e Sub Ayuda7_Clic k ()


2 Call A yuda Forms ( " fr mNew Fut7 ")
3 End Sub

i Privat e Sub Ayuda8_Clic k ()


2 Call A yuda Forms ( " fr mNew Fut8 ")
3 End Sub

i Privat e Sub Ayuda9_Clic k ()


2 Call A yuda Forms ( " fr mNew Fut9 ")
3 End Sub

i Privat e Sub btnAdquirir_Clic k ()


2
3 Dim FEs critura As Intege r
4 Dim FrdTipo As String
5 Dim FrdSubyacent e As String
6
7 Call V frmN ewFut

lej
A

an
dr
o P

re
Valoracion de Derivados 87

8 If RValForm = False Then


9 Exit Sub
i0 End If
ii
i2 Me . Hide
i3
i4 Call CodFut
i5
i6 Fil a en la que se e scr ib ir a la i nfo rma ci o n del nuev o Frd
i7 FEs crit ura = Sheets (" CODIGO "). Cells (7 , 66) + Sheets (" CODIGO ") . Cells
(8 , 66)
i8
i9 Se empiez a a escribi r la i nfo rmac i o n de nuevo Frd - column a por
column a
20 Cells ( FEscritura , 1) = Sheets (" CODIGO ") . Cells (5 , 66)
2i Cells ( FEscritura , 3) = frmNewFut . dtpkOperacion
22 Cells ( FEscritura , 4) = UCase ( frmNewFut . txbEnt idad )
23 Cells ( FEscritura , 5) = UCase ( frmNewFut . cmbTipo )
24 Cells ( FEscritura , 6) = frmNewFut . cmbSubyacente
25 Cells ( FEscritura , 7) = frmNewFut . dtpkCumplimiento
26 Cells ( FEscritura , 8) = frmNewFut . lblUnidadesMonto
27 C1Formatofrm = Round ( CDbl ( frmNewFut . txbMonto ) , 6)
28 Cells ( FEscritura , 9) = C1Formatofrm
29 Cells ( FEscritura , 10) = Sheets (" CODIGO ") . Cells (18 , 64)
30 C1Formatofrm = Round ( CDbl ( frmNewFut . txbN ominal ) , 6)
3i Cells ( FEscritura , 11) = C1Formatofrm
32 Cells ( FEscritura , 12) = frmNewFut . lblUnidadesPrecio
33 C1Formatofrm = Round ( CDbl ( frmNewFut . txbPrecio ) , 6)
34 Cells ( FEscritura , 13) = C1Formatofrm
35 Cells ( FEscritura , 14) = UCase ( frmNewFut . cmbEnt rega )
36 Cells ( FEscritura , 15) = frmNewFut . cmbTipoSubyacente
37 Cells ( FEscritura , 16) = " SI "
38 Cells ( FEscritura , 18) = Sheets (" CODIGO ") . Cells (18 , 66)
39
40 Se llama la fun ci o n que le da format o a la fila nuev a ( en la que
se acaba de escribir la info )
4i Call F orma toFut ( FEscritura )
42
43 Unload Me
44
45 Cells (3 , 3) . Select
46
47 End Sub

i Privat e Sub btnCerrar_Click ()


2 Unload Me
3 End Sub

i Privat e Sub cmbSubyacente_Enter ()


2 frmNewFut . cmbTipoSubyacente . Enabled = True
3 End Sub

i Privat e Sub cmbSubyacente_Exit ( ByVal Cancel As MSForm s . ReturnBoolea n )


2
3 Dim TiposSubyacente s () As String
4 Dim N As Integer
5 Dim F As Integer
6 Dim i As Integer
7
8 frmNewFut . cmbTipoSubyacente . MatchRequired = False
9
i0 If frmNewFut . cmbSubyacente . Value = " " Then
ii Exit Sub

lej
A

an
dr
o P

re
Valoracion de Derivados 88

i2 End If
i3
i4 Sheets (" CODIGO ") . Cells (10 , 62) = frmNewFut . cmbSubyacent e . Value
i5
i6 N = Sheets (" CODIGO " ). Cells (10 , 64)
i7 F = Sheets (" CODIGO " ). Cells (10 , 63)
i8
i9 ReDim TiposSubyacente s (N - 1)
20 For i = 0 To N - 1
2i TiposSubyacente s ( i) = Sheets (" CODIGO " ). Cells (F , 63 + i)
22 Next i
23
24 frmNewFut . cmbTipoSubyacente . List = TiposSubyacentes
25 frmNewFut . cmbTipoSubyacente . Value = TiposSubyacentes (0)
26 frmNewFut . cmbTipoSubyacente . MatchRequired = True
27
28 End Sub

i Privat e Sub cmbTipoSubyacente_Exi t ( ByVal Cancel As MSForms .


ReturnBoolean )
2
3 If frmNewFut . cmbTipoSubyacente . Value = "" Then
4 Exit Sub
5 End If
6
7 Sheets (" CODIGO ") . Cells (18 , 62) = frmNewFut . cmbTipoSubyacente . Value
8
9 frmNewFut . lblUnidadesMonto = Sheets ( " CODIGO " ). Cells (18 , 63)
i0 frmNewFut . lblUnidadesNominal = Sheets (" CODIGO ") . Cells (18 , 64)
ii frmNewFut . lblUnidadesPrecio = Sheets (" CODIGO " ). Cells (18 , 65)
i2
i3 frmNewFut . lblUnidadesMonto . Visible = True
i4 frmNewFut . lblUnidadesNominal . Visible = True
i5 frmNewFut . lblUnidadesPrecio . Visible = True
i6
i7 End Sub

i Privat e Sub txbMonto_Exi t ( ByVal Cancel As MSForm s . ReturnBoolean )


2
3 Fnum6d = ""
4 Call txbFormatoMile s ( frmNewFut . txbMonto , 3)
5 frmNewFut . txbMonto = Fnum6d
6
7 End Sub

i Privat e Sub txbNominal_Exi t ( ByVal Cancel As MSForms . ReturnBoolean )


2
3 Fnum6d = ""
4 Call txbFormatoMile s ( frmNewFut . txbNomina l , 3)
5 frmNewFut . txbNom inal = Fnum6d
6
7 End Sub

i Privat e Sub txbPrecio_Exi t ( ByVal Cancel As MSForm s . ReturnBoolean )


2
3 Fnum6d = ""
4 Call txbFormatoMile s ( frmNewFut . txbPrecio )
5 frmNewFut . txbPrecio = Fnum6d
6
7 End Sub

lej
A

an
dr
o P

re
Valoracion de Derivados 89

i Privat e Sub UserForm_Initialize ()


2
3 Dim Vector As Variant
4 Dim Elemento As Variant
5
6 Se limpia n los ComboBox
7 frmNewFut . cmbTipo . Clear
8 frmNewFut . cmbSubyacente . Clear
9 frmNewFut . cmb Entr ega . Clear
i0
ii Se cargan los elemento de la lista Tipo Contrato
i2 Vector = Array (" Compra " , " Venta ")
i3 For Each Elemento In Vector
i4 frmNewFut . cmbTipo . AddItem Elemento
i5 Next
i6
i7 Se cargan los elemento de la lista Subyacente
i8 Vector = Array (" TRM " , " Bono Nocional " )
i9 For Each Elemento In Vector
20 frmNewFut . cmbSubyacente . AddItem Element o
2i Next
22
23 Se cargan los elemento de la lista Entrega
24 Vector = Array (" Deliver y " , " Non Delivery ")
25 For Each Elemento In Vector
26 frmNewFut . cmbEnt rega . AddItem Element o
27 Next
28
29 frmNewFut . dtpkOperacion . Value = Date
30 frmNewFut . dtpkCumplimiento . Value = Date + 3
3i frmNewFut . cmb Entr ega = " Delivery "
32 frmNewFut . cmb Entr ega . Enabled = False
33
34 End Sub

frmNewOpc
En la Figura 28 se muestra el diseno del formulario frmNewOpc.
i Privat e Sub Ayuda1_Click ()
2 Call A yuda Forms ( " frmNewOpc1 ")
3 End Sub

i Privat e Sub Ayuda10_Click ()


2 Call A yuda Forms ( " frmNewOpc10 ")
3 End Sub

i Privat e Sub Ayuda11_Click ()


2 Call A yuda Forms ( " frmNewOpc11 ")
3 End Sub

i Privat e Sub Ayuda2_Click ()


2 Call A yuda Forms ( " fr mNew Opc2 " , , True )
3 End Sub

i Privat e Sub Ayuda3_Click ()


2 Call A yuda Forms ( " fr mNew Opc3 ")
3 End Sub

i Privat e Sub Ayuda4_Click ()


2 Call A yuda Forms ( " frmNewOpc4 ")
3 End Sub

lej
A

an
dr
o P

re
Valoracion de Derivados 90

Figura 28: Diseno del formulario frmNewOpc

i Privat e Sub Ayuda5_Clic k ()


2 Call A yuda Forms ( " frmNewOpc5 ")
3 End Sub

i Privat e Sub Ayuda6_Clic k ()


2 Call A yuda Forms ( " frmNewOpc6 ")
3 End Sub

i Privat e Sub Ayuda7_Clic k ()


2
3 Dim MIDivisas As Byte
4
5 If frmNewFrd . cmbSubyacente . Value = " Divisas " And frmNewFrd .
cmbTipoSubyacent e . Value <> " USD " Then
6 MIDivisas = 1
7 Else
8 MIDivisas = 0
9 End If
i0
ii Call A yuda Forms ( " fr mNew Opc7 " , MIDivisas )
i2
i3 End Sub

i Privat e Sub Ayuda8_Clic k ()


2 Call A yuda Forms ( " fr mNew Opc8 ")
3 End Sub

i Privat e Sub Ayuda9_Clic k ()


2 Call A yuda Forms ( " fr mNew Opc9 ")
3 End Sub

lej
A

an
dr
o P

re
Valoracion de Derivados 91

i Privat e Sub btnAdquirir_Click ()


2
3 Dim FEscritu ra As Intege r
4
5 Dim i As Integer
6 Dim j As Integer
7 Dim D As Variant
8
9 Call V frmN ewOpc
i0 If RValForm = False Then
ii Exit Sub
i2 End If
i3
i4 Me . Hide
i5
i6 Call CodOpc
i7
i8 Fil a en la que se e scr ib ir a la i nfo rma ci o n de la nueva Opcion
i9 FEs crit ura = Sheets (" CODIGO "). Cells (7 , 96) + ( Sheets (" CODIGO " ).
Cells (8 , 96) * 2)
20
2i Se empiez a a escribi r la i nfo rmac i o n de nuevo Frd - column a por
column a
22
23 Cells ( FEscritura , 1) = Sheets (" CODIGO ") . Cells (5 , 96)
24
25 Cells ( FEscritura , 3) = frmNewOpc . dtpkOperacion
26
27 Cells ( FEscritura , 4) = UCase ( frmNewOpc . txbEnt idad )
28
29 If frmNewOpc . opb Europea = True Then
30 Cells ( FEscritura , 5) = " EUROPEA "
3i Else
32 Cells ( FEscritura , 5) = " AMERICANA "
33 End If
34
35 Cells ( FEscritura , 6) = UCase ( frmNewOpc . cmbDer echo )
36
37 Cells ( FEscritura , 7) = frmNewOpc . cmbTipoSubyace nte
38
39 Cells ( FEscritura , 8) = frmNewOpc . dtpkCumplimiento
40
4i Cells ( FEscritura , 9) = frmNewOpc . lblUnidadesMonto
42 C1Formatofrm = Round ( CDbl ( frmNewOpc . txbMonto ) , 6)
43 Cells ( FEscritura , 10) = C1Formatofrm
44
45 Cells ( FEscritura , 11) = Sheets (" CODIGO ") . Cells (18 , 94)
46 C1Formatofrm = CDbl ( frmNewOp c . txbMont o )
47 C2Formatofrm = CDbl ( frmNewOp c . txbPrim a )
48 Cells ( FEscritura , 12) = Round ( C1Formatofrm * C2Formatofrm , 6)
49
50 Cells ( FEscritura , 13) = frmNewOpc . lblUnidadesPrima
5i C1Formatofrm = Round ( CDbl ( frmNewOpc . txbPrima ) , 6)
52 Cells ( FEscritura , 14) = C1Formatofrm
53
54 Cells ( FEscritura , 15) = frmNewOpc . lblUnidadesPrecio
55 C1Formatofrm = Round ( CDbl ( frmNewOpc . txbPrecio ) , 6)
56 Cells ( FEscritura , 16) = C1Formatofrm
57
58 Cells ( FEscritura , 17) = UCase ( frmNewOpc . cmbEnt rega )
59
60 If OpcDividendo s (0 , 0) = True Then
6i For i = 1 To 2
62 For j = 1 To 10

lej
A

an
dr
o P

re
Valoracion de Derivados 92

63 D = OpcDividendos (j , i )
64 If D = 0 Then
65 D = ""
66 End If
67 Cells ( F Escritur a - 1 + i , 17 + j) = D
68 N ext
69 Next
70 End If
7i
72 Cells ( FEscritura , 28) = " SI "
73
74 Cells ( FEscritura , 31) = frmNewOpc . lblUnidadesPrecio
75
76 Cells ( FEscritura , 33) = frmNewOpc . lblUnidadesPrima
77
78 Se llama la fun ci o n que le da format o a la fila nuev a ( en la que
se acaba de escribir la info )
79 Call F orma toOpc ( FEscritura )
80
8i Unload Me
82
83 Cells (3 , 3) . Select
84
85 End Sub

i Privat e Sub btnCerrar_Clic k ()


2 Unload Me
3 End Sub

i Privat e Sub btnDividendos_Clic k ()


2
3 Dim i As Integer
4 Dim j As Integer
5
6 If OpcDividendo s (0 , 0) = True Then
7 For j = 1 To 2
8 For i = 1 To 10
9 If OpcDividendo s (i , 1) > 0 Then
i0 If j = 1 Then
ii frmNewOpc_1 . spsDividendos . Cells (1 + i , j ) =
OpcDividendos (i , j )
i2 Else
i3 frmNewOpc_1 . spsDividendos . Cells (1 + i , j ) =
Round ( OpcDividendos (i , j) , 3)
i4 End If
i5 End If
i6 N ext
i7 Next
i8 End If
i9
20 frmNewOpc_ 1 . Show
2i
22 End Sub

i Privat e Sub cmbSubyacente_Ente r ()


2 frmNewOpc . cmbTipoSubyacente . Enabled = True
3 End Sub

i Privat e Sub cmbSubyacente_Exi t ( ByVal Cancel As MSForm s . ReturnBoolea n )


2
3 Dim TiposSubyacente s () As String
4 Dim N As Integer
5 Dim F As Integer

lej
A

an
dr
o P

re
Valoracion de Derivados 93

6 Dim i As Integer
7
8 frmNewOpc . cmbTipoSubyacente . MatchRequired = False
9
i0 If frmNewOpc . cmbSubyacente . Value = " " Then
ii Exit Sub
i2 End If
i3
i4 Sheets (" CODIGO ") . Cells (10 , 92) = frmNewOpc . cmbSubyacent e . Value
i5
i6 N = Sheets (" CODIGO " ). Cells (10 , 94)
i7 F = Sheets (" CODIGO " ). Cells (10 , 93)
i8
i9 ReDim TiposSubyacente s (N - 1)
20 For i = 0 To N - 1
2i TiposSubyacentes ( i) = Sheets (" CODIGO " ). Cells (F , 93 + i)
22 Next i
23
24 frmNewOpc . cmbTipoSubyacente . List = TiposSubyacentes
25 frmNewOpc . cmbTipoSubyacente . Value = TiposSubyacentes (0)
26 frmNewOpc . cmbTipoSubyacente . MatchRequired = True
27
28 If frmNewOpc . cmbSubyacente . Value = " Accione s " Then
29 frmNewOpc . btnDividendos . Visible = True
30 Else
3i frmNewOpc . btnDividendos . Visible = False
32 End If
33
34 End Sub

i Privat e Sub cmbTipoSubyacente_Exit ( ByVal Cancel As MSForms .


ReturnBoolea n )
2
3 If frmNewOpc . cmbTipoSubyacente . Value = "" Then
4 Exit Sub
5 End If
6
7 Sheets (" CODIGO ") . Cells (18 , 92) = frmNewOpc . cmbTipoSubyacent e . Value
8
9 frmNewOpc . lblUnidadesMonto = Sheets ( " CODIGO "). Cells (18 , 93)
i0 frmNewOpc . lblUnidadesPrecio = Sheets (" CODIGO " ). Cells (18 , 95)
ii frmNewOpc . lblUnidadesPrima = Sheets ( " CODIGO "). Cells (18 , 98)
i2
i3 frmNewOpc . lblUnidadesMonto . Visible = True
i4 frmNewOpc . lblUnidadesPrecio . Visible = True
i5 frmNewOpc . lblUnidadesPrima . Visible = True
i6
i7 End Sub

i Privat e Sub txbMonto_Exit ( ByVal Cancel As MSForm s . ReturnBoolea n )


2
3 Fnum6d = ""
4 Call txbFormatoMiles ( frmNewOpc . txbMonto , 0)
5 frmNewOpc . txbMonto = Fnum6d
6
7 End Sub

i Privat e Sub txbPrecio_Exit ( ByVal Cancel As MSForm s . ReturnBoolea n )


2
3 Fnum6d = ""
4 Call txbFormatoMiles ( frmNewOpc . txbPrecio )
5 frmNewOpc . txbPrecio = Fnum6d
6
7 End Sub

lej
A

an
dr
o P

re
Valoracion de Derivados 94

i Privat e Sub txbPrima_Exi t ( ByVal Cancel As MSForm s . ReturnBoolean )


2
3 Fnum6d = ""
4 Call txbFormatoMile s ( frmNewOpc . txbPrima )
5 frmNewOpc . txbPrima = Fnum6d
6
7 End Sub

i Privat e Sub UserForm_Initializ e ()


2
3 Dim Vector As Variant
4 Dim Elemento As Variant
5
6 Se limpia n los ComboBox
7 frmNewOpc . cmbDer echo . Clear
8 frmNewOpc . cmbSubyacente . Clear
9 frmNewOpc . cmbEnt rega . Clear
i0
ii Se cargan los elemento de la lista Derecho
i2 Vector = Array (" Comprar " , " Vender " )
i3 For Each Elemento In Vector
i4 frmNewOpc . cmb Dere cho . AddItem Element o
i5 Next
i6
i7 Se cargan los elemento de la lista Subyacente
i8 Vector = Array (" Accione s " , " Monedas " , " Indices " )
i9 For Each Elemento In Vector
20 frmNewOpc . cmbSubyacente . AddItem Element o
2i Next
22
23 Se cargan los elemento de la lista Entrega
24 Vector = Array (" Deliver y " , " Non Delivery ")
25 For Each Elemento In Vector
26 frmNewOpc . cmb Entr ega . AddItem Element o
27 Next
28
29 Se seleccion a Opcion Europea por Defecto
30 frmNewOpc . opb Euro pea . Value = True
3i
32 frmNewOpc . dtpkOperacion . Value = Date
33 frmNewOpc . dtpkCumplimiento . Value = Date + 3
34
35 ReDim OpcDividendo s (1 , 1)
36 OpcDividendo s (0 , 0) = Fals e
37
38 End Sub

frmNewOpc 1
En la Figura 29 se muestra el diseno del formulario frmNewOpc_1.
i Privat e Sub Ayuda1_Clic k ()
2 Call A yuda Forms ( " frmNewOpc_11 ")
3 End Sub

i Privat e Sub btnCerrar_Clic k ()


2 frmNewOpc_ 1 . spsDividendos . Range (" A2 : B11 " ). ClearContents
3 Unload Me
4 End Sub

i Privat e Sub btnGuardar_Clic k ()


2
3 Dim i As Integer

lej
A

an
dr
o P

re
Valoracion de Derivados 95

Figura 29: Diseno del formulario frmNewOpc 1

4 Dim j As Integer
5
6 Call VfrmNewOpc_1
7 If RValForm = False Then
8 Exit Sub
9 End If
i0
ii ReDim OpcDividendos (10 , 2)
i2 OpcDividendo s (0 , 0) = True
i3 For j = 1 To 2
i4 For i = 1 To 10
i5 If j = 1 Then
i6 OpcDividendos (i , j) = frmNewOpc_1 . spsDividendo s . Cells (1
+ i, j)
i7 Else
i8 OpcDividendos (i , j) = CSng ( frmNewOpc_ 1 . spsDividendo s .
Cells (1 + i , j) )
i9 End If
20 Next
2i Next
22
23 Unload Me
24
25 End Sub

i Privat e Sub UserForm_Initialize ()


2 frmNewOpc_ 1 . spsDividendos . Range (" A2 : B11 " ). ClearContents
3 End Sub

frmValFrd, frmValFut y frmValOpc


En las Figuras 30, 31 y 32 se muestran los disenos de los siguientes formula-
rios: frmValFrd, frmValFut y frmValOpc respectivamente.
Estos tres formularios no contienen codigo, por lo que no se muestra.

lej
A

an
dr
o P

re
Valoracion de Derivados 96

Figura 30: Diseno del formulario frmValFrd

Figura 31: Diseno del formulario frmValFut

2. Modulos

Ayuda
i Sub Ayu daForms ( Cod , Optional MI = 0, Optiona l BarraVertical = False )
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a llama el formulario dond e se muestra *
4 * la ayud a de los formularios *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Se escrib e el Codigo de la ayud a en el la hoja cod igo s
8 Sheets (" CODIGO ") . Cells (3 , 106) = Cod
9
i0 Se leen los H ip er vin cu lo s en caso de existir
ii NameHyp1 = Sheets (" CODIGO ") . Cells (3 , 110)
i2 NameHyp2 = Sheets (" CODIGO ") . Cells (3 , 112)
i3

Figura 32: Diseno del formulario frmValOpc

lej
A

an
dr
o P

re
Valoracion de Derivados 97

i4 Se lee la in form aci o n de la ayuda


i5 frmAyudafr m . Label1 = Sheets (" CODIGO ") . Cells (3 , 107)
i6 frmAyudafr m . Label2 = Sheets (" CODIGO ") . Cells (3 , 108)
i7 frmAyudafr m . Label3 = Sheets (" CODIGO ") . Cells (3 , 109)
i8 frmAyudafr m . Label4 = Sheets (" CODIGO ") . Cells (3 , 111)
i9
20 Se da format o al formulario en caso de que se vaya a mostra r mas
i nfo rmac i o n ( H ip er vin cu lo s )
2i Select Case MI
22 Case 0
23 frmAyudafrm . Frame2 . Height = 186
24 frmAyudafrm . Frame3 . Visibl e = False
25 frmAyudafrm . Label3 . Visibl e = False
26 frmAyudafrm . Label4 . Visibl e = False
27 Case 1
28 frmAyudafrm . Frame2 . Height = 138
29 frmAyudafrm . Frame3 . Visibl e = True
30 frmAyudafrm . Label3 . Visibl e = True
3i Case 2
32 frmAyudafrm . Frame2 . Height = 138
33 frmAyudafrm . Frame3 . Visibl e = True
34 frmAyudafrm . Label3 . Visibl e = True
35 frmAyudafrm . Label4 . Visibl e = True
36 End Select
37
38 If BarraVertica l = False Then
39 frmAyudafrm . Frame2 . S crollBars = fmScrollBarsNon e
40 frmAyudafrm . Label2 . Width = 366
4i Else
42 frmAyudafrm . Label2 . Width = 348
43 frmAyudafrm . Frame2 . S crollBars = fmScrollBarsVertical
44 End If
45
46 frmAyudafr m . Show
47
48 End Sub

i Sub CargarSubFormsAyud a ( Form As String )


2
3 Select Case Form
4
5 Case " frmNewFrd_1 "
6
7 If IsNumeric ( frmNewFrd . txbMonto ) = False Or frmNewFr d .
txbMonto <= 0 Then
8 MsgBox ( " No es posible cargar la ayuda porque no se
ha ingresado el monto del contrat o en " &
frmNewFrd . cmbTipoSubyacente . Value & ". ") ,
vbExclamation , " ATENCI ON - I NF O RM A CI ON IN S UF I C IEN T E
"
9 Exit Sub
i0 End If
ii
i2 If frmNewFrd . cmbTipo = "" Then
i3 MsgBox ( " No es posible cargar la ayuda porque no se
ha seleccionado el tipo de contrato ." ) ,
vbExclamation , " ATENCI ON - I NF O RM A CI ON IN S UF I C IEN T E
"
i4 Exit Sub
i5 End If
i6
i7 frmNewFrd_1 . Show
i8
i9 End Select
20

lej
A

an
dr
o P

re
Valoracion de Derivados 98

2i End Sub

Forwards
i Sub NewFrd ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a llama el formulario que permit e *
4 * adquiri r nuevos FORWARDS *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 frmNewFrd . Show
8
9 End Sub

i Sub CodFrd ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a lee en la hoja CODIG O el consecutivo *
4 * en el que van los FORWARDS y lo procesa para *
5 * encontrar el siguiente consecutivo *
6 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
7
8 Dim CodI As Integer
9 Dim CodA As Integer
i0
ii CodI = Sheets (" CODIGO ") . Cells (4 , 51)
i2 CodA = Sheets (" CODIGO ") . Cells (5 , 51)
i3
i4 If CodA = 0 Or CodA < CodI Then
i5 CodA = CodI
i6 Else
i7 CodA = CodA + 1
i8 End If
i9
20 Sheets (" CODIGO ") . Cells (5 , 51) = CodA
2i
22 End Sub

i Sub For matoFrd ( F)


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a aplic a el formato correcto a los *
4 * datos que se escriben cuando se adquier e un *
5 * FORWARD en la hoja FORWARDS . *
6 * F - Fila en la que se a plic ar a el format o *
7 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
8
9 Dim Rango As String
i0
ii A pplicatio n . ScreenUpdatin g = False
i2
i3
i4 Rango = "A" & F & " ,D" & F & " ,E" & F & " ,F " & F & " ,H " & F & " ,J " & F
& " ,L " & F & " ,N " & F & " ,P " & F & " ,S" & F & " ,V " & F & " ,X" & F & " ,Z
" & F
i5 F ormat o General
i6 Range ( Rang o ). Select
i7 Selection . NumberFormat = " General "
i8 With Selection
i9 . Font . Name = " Verdana "
20 . Font . Size = 8
2i . HorizontalAlignmen t = xlCenter
22 . VerticalAlignmen t = xlCente r
23 . WrapText = False
24 . Orientatio n = 0
25 . AddIndent = False

lej
A

an
dr
o P

re
Valoracion de Derivados 99

26 . IndentLevel = 0
27 . ShrinkToFit = False
28 . ReadingOrder = xlContext
29 . M ergeCells = False
30 End With
3i
32 Rango = "B" & F & " ,C" & F & " ,G" & F & " ,O" & F & " ,R " & F
33 F ormat o Fech a
34 Range ( Rango ). Select
35 Selection . NumberFormat = " [ -409] d - mmm - yy ;@"
36 With Selection
37 . Font . Name = " Verdana "
38 . Font . Size = 8
39 . HorizontalAlignmen t = xlCenter
40 . VerticalAlignment = xlCente r
4i . WrapText = False
42 . Orientation = 0
43 . AddIndent = False
44 . IndentLevel = 0
45 . ShrinkToFit = False
46 . ReadingOrder = xlContext
47 . M ergeCells = False
48 End With
49
50 Rango = "I" & F & " ,K" & F & " ,AA " & F & " ,AB " & F & " ,AC " & F
5i F ormat o Mile s sin Decimales
52 Range ( Rango ). Select
53 Selection . NumberFormat = " # ,##0 "
54 With Selection
55 . Font . Name = " Verdana "
56 . Font . Size = 8
57 . HorizontalAlignmen t = xlCenter
58 . VerticalAlignment = xlCente r
59 . WrapText = False
60 . Orientation = 0
6i . AddIndent = False
62 . IndentLevel = 0
63 . ShrinkToFit = False
64 . ReadingOrder = xlContext
65 . M ergeCells = False
66 End With
67
68 Rango = "M" & F & " ,Q" & F & " ,U" & F & " ,W" & F & " ,Y " & F
69 F ormat o Mile s con 3 Decimales
70 Range ( Rango ). Select
7i Selection . NumberFormat = " # ,##0.000 "
72 With Selection
73 . Font . Name = " Verdana "
74 . Font . Size = 8
75 . HorizontalAlignmen t = xlCenter
76 . VerticalAlignment = xlCente r
77 . WrapText = False
78 . Orientation = 0
79 . AddIndent = False
80 . IndentLevel = 0
8i . ShrinkToFit = False
82 . ReadingOrder = xlContext
83 . M ergeCells = False
84 End With
85
86 Rango = "T" & F
87 F ormat o Porcentaje con 3 Decimales
88 Range ( Rango ). Select
89 Selection . NumberFormat = " 0.000 % "
90 With Selection

lej
A

an
dr
o P

re
Valoracion de Derivados 100

9i . Font . Name = " Verdana "


92 . Font . Size = 8
93 . HorizontalAlignmen t = xlCenter
94 . VerticalAlignmen t = xlCente r
95 . WrapText = False
96 . Orientatio n = 0
97 . AddIndent = False
98 . IndentLeve l = 0
99 . ShrinkToFi t = False
i00 . ReadingOrde r = xlContext
i0i . M ergeCells = False
i02 End With
i03
i04 Rang o = " A" & F & ": AC " & F
i05 F ormat o BORDES
i06 Range ( Rang o ). Select
i07 Selection . Borders ( xlDiagonalDown ). LineStyl e = xlNone
i08 Selection . Borders ( xlDiagonalUp ). LineStyle = xlNone
i09 With Selection
ii0 . Borders ( xlEd geLe ft ) . LineStyle = xlContinuous
iii . Borders ( xlEd geLe ft ) . ColorInde x = 15
ii2 . Borders ( xlEd geLe ft ) . TintAndShade = 0
ii3 . Borders ( xlEd geLe ft ) . Weight = xlThin
ii4
ii5 . Borders ( xlEdgeTo p ). LineStyl e = xlContinuou s
ii6 . Borders ( xlEdgeTo p ). ColorIndex = 15
ii7 . Borders ( xlEdgeTo p ). TintAndShade = 0
ii8 . Borders ( xlEdgeTo p ). Weight = xlThin
ii9
i20 . Borders ( xlEdgeBottom ) . LineStyle = xlContinuous
i2i . Borders ( xlEdgeBottom ) . Co lorIndex = 15
i22 . Borders ( xlEdgeBottom ) . TintAndShade = 0
i23 . Borders ( xlEdgeBottom ) . Weight = xlThin
i24
i25 . Borders ( xlEdgeRight ). LineStyle = xlContinuou s
i26 . Borders ( xlEdgeRight ). C olor Index = 15
i27 . Borders ( xlEdgeRight ). T intAndShad e = 0
i28 . Borders ( xlEdgeRight ). Weight = xlThin
i29
i30 . Borders ( xlInsideVertical ). LineStyl e = xlContinuous
i3i . Borders ( xlInsideVertical ). Col orIndex = 15
i32 . Borders ( xlInsideVertical ). TintAndShade = 0
i33 . Borders ( xlInsideVertical ). Weight = xlThin
i34 End With
i35 Selection . Borders ( xlInsideHorizontal ). LineStyle = xlNone
i36
i37 Applicatio n . ScreenUpdating = True
i38
i39 End Sub

i Sub ClasificacionFr d (F , Optional Escrit o = True )


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a categoriza el FORWARD que esta en *
4 * fila F y me entrega : *
5 * Tipo : Compra o Venta *
6 * Subyacent e : Divisas , I nte r es o T tu lo s *
7 * S ub Su bya ce nt e : USD , DTF , UVR , TES20 ... *
8 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
9
i0 Dim Tc As String
ii Dim Tss As String
i2
i3 If Escrit o = True Then
i4 Tc = Cells (F , 5)
i5 Tss = Cells (F , 6)

lej
A

an
dr
o P

re
Valoracion de Derivados 101

i6 Else
i7 Tc = frmNewFrd . cmbTip o
i8 Tss = frmNewFrd . cmbTipoSubyacente
i9 End If
20
2i If Tc = " Compra " Then
22 FrdTipo = " C"
23 Else
24 FrdTipo = " V"
25 End If
26
27 Sheets (" CODIGO ") . Cells (18 , 47) = Tss
28
29 FrdSubyacent e = Mid ( Sheets (" CODIGO ") . Cells (19 , 47) , 1, 2)
30 FrdTipoSubyacent e = Mid ( Sheets (" CODIGO ") . Cells (19 , 47) , 4, 6)
3i
32 End Sub

i Sub ObservacionFr d ( Campo , F )


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a me arroj a el camp o ob ser vac i o n *
4 * segu n sea el FORWARD .
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Dim Psw As String
8
9 Psw = " I7DF ;(8 jch "
i0 ActiveShee t . Unprotec t ( Psw )
ii
i2 If Campo = True Then
i3 Cells (F , 16) = Sheets (" CODIGO " ). Cells (18 , 53)
i4 Cells (F , 16) . Select
i5 With Selection . V alidation
i6 . Delete
i7 . Add Type := xlValidateInputOnl y , AlertStyle :=
xlValidAlertStop , Operato r := xlBetween
i8 . IgnoreBlank = True
i9 . I nputTitle = " Condiciones del T tulo "
20 . InputMessage = " Emisor : " & UCase ( FrdTitulo (1) ) _
2i & Chr (10) & " Clase : " & UCase ( FrdTitulo
(2) ) _
22 & Chr (10) & " Plazo : " & FormatNumbe r (
FrdTitulo (3) , 0 , vbFalse , vbFalse ,
vbTrue ) & " d as " _
23 & Chr (10) & " Tasa Facial : " &
FormatNumber ( FrdTitulo (4) , 3 , vbFalse ,
vbFalse , vbFalse ) & " %" _
24 & Chr (10) & " Periodicidad : " &
FrdTitulo (5) _
25 & Chr (10) & " Modalidad : " & FrdTitulo
(6) _
26 & Chr (10) & " Cupon : " & FrdTitulo (7) _
27 & Chr (10) & " Fecha Cupon : " & FrdTitul o
(8) _
28 & Chr (10) & " Monto Cupon : " & FrdTitul o
(9)
29 . ShowInput = True
30 . ShowError = False
3i End With
32 Cells (F , 17) = FrdTitul o (9)
33 Cells (F , 18) = FrdTitul o (8)
34 Else
35 Cells (F , 16) = " NA "
36 Cells (F , 17) = " NA "
37 Cells (F , 18) = " NA "

lej
A

an
dr
o P

re
Valoracion de Derivados 102

38 End If
39
40 ActiveShee t . Protect ( Password := Psw , DrawingObjects := True , Contents :=
True , Scenario s := True , UserInterfaceOnly := False ,
AllowFormattingCell s := True , AllowFormattingColumns := False ,
AllowFormattingRow s := False , AllowInsertingColumn s := False ,
AllowInsertingRow s := False , AllowInsertingHyperlinks := False ,
AllowDeletingColumn s := False , AllowDeletingRows := False , AllowSortin g
:= True , AllowFilterin g := True , AllowUsingPivotTables := True ) = True
4i ActiveShee t . EnableSelection = xlUnlockedCell s
42
43 End Sub

i Sub Per iodoFrd ( F)


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a me arroj a el camp o Fecha Liqu ida ci o n *
4 * segun sea el FORWARD .
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Call ClasificacionFr d ( F)
8
9 If FrdSubyacent e = " S2 " Then
i0 Cells (F , 15) = FrdFechaLiq
ii Else
i2 Cells (F , 15) = " NA "
i3 End If
i4
i5 End Sub

i Sub Val orarFrd ()


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valor a los FORWARDS que hay VIGENTES *
4 * en la tabla de la hoja FORWARDS . *
5 * Los FORWARD S que no esta n vigente s conservan su *
6 * valor para determinar ganancias o per did a s del *
7 * portafoli o . *
8 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
9
i0 Dim Campo1 As Integer
ii Dim Campo2 As Integer
i2 Dim i As Integer
i3 Dim FechaVal As Date
i4
i5 Call FechaSerie s ( Cells (3 , 3) )
i6 If RValSeri es = False Then
i7 Exit Sub
i8 End If
i9
20 Call VerificarVigenciaFr d
2i Call ContarVigentesFr d
22
23 Campo1 = 1
24 Campo2 = FrdVigentes
25 FechaVal = Sheets (" FORWARD S " ). Cells (3 , 3)
26 frmValFrd . PrgBar = 0
27 frmValFrd . lblProgreso = " Calcul ando ... "
28
29 frmValFrd . Show (0)
30 Sheets (" CODIGO ") . Cells (88 , 46) = FechaVa l
3i
32 For i = 1 To Campo2
33
34 frmValFrd . PrgBar = (i / Campo2 ) * 100
35 Campo1 = i

lej
A

an
dr
o P

re
Valoracion de Derivados 103

36 frmValFrd . lblProgreso = " Valorando FORWARD " & Campo1 & " de "
& Campo2
37
38 Call ClasificacionFrd ( FrdVigentesPos ( i))
39
40 Select Case FrdSubyacente
4i
42 Case " S1 "
43
44 Select Case FrdTipoSubyacente
45
46 Case " T1 "
47
48 Select Case FrdTipo
49
50 Case " C"
5i Call ValFrd_Divisas_C_USD (
FrdVigentesPos ( i))
52 Case " V"
53 Call ValFrd_Divisas_V_USD (
FrdVigentesPos ( i))
54
55 End Select
56
57 Case " T2 "
58
59 Select Case FrdTipo
60
6i Case " C"
62 Call ValFrd_Divisas_C_EUR (
FrdVigentesPos ( i))
63 Case " V"
64 Call ValFrd_Divisas_V_EUR (
FrdVigentesPos ( i))
65
66 End Select
67
68 Case " T3 "
69
70 Select Case FrdTipo
7i
72 Case " C"
73 Call ValFrd_Divisas_C_GBP (
FrdVigentesPos ( i))
74 Case " V"
75 Call ValFrd_Divisas_V_GBP (
FrdVigentesPos ( i))
76
77 End Select
78
79 Case " T4 "
80
8i Select Case FrdTipo
82
83 Case " C"
84 Call ValFrd_Divisas_C_JPY (
FrdVigentesPos ( i))
85 Case " V"
86 Call ValFrd_Divisas_V_JPY (
FrdVigentesPos ( i))
87
88 End Select
89
90 End Select
9i

lej
A

an
dr
o P

re
Valoracion de Derivados 104

92 C ase " S2 "


93
94 Select Case FrdTipoSubyacente
95
96 Case " T1 " Or " T2 " Or " T3 " Or " T4 "
97
98 Select Case FrdTipo
99
i00 Case " C" Or "V "
i0i Call ValFrd_FRAs ( FrdVigentesPos ( i) )
i02
i03 End Select
i04
i05 End Select
i06
i07 C ase " S3 "
i08
i09 Select Case FrdTipoSubyacente
ii0
iii Case " T1 " Or " T2 " Or " T3 "
ii2
ii3 Select Case FrdTipo
ii4
ii5 Case " C"
ii6 Call V a lF rd _ T tu l os RF _ C ( FrdVigentesPo s (
i))
ii7 Case " V"
ii8 Call V a lF rd _ T tu l os RF _ V ( FrdVigentesPo s (
i))
ii9
i20 End Select
i2i
i22 End Select
i23
i24 End Select
i25
i26 Sheets (" FORWARDS "). Cells ( FrdVigentesPos ( i) , 2) = FechaVal
i27
i28 Next
i29
i30 frmValFrd . Hide
i3i
i32 End Sub

i Sub VerificarVigenciaFr d ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a recorre los FORWARD S ACTIVOS y *
4 * verific a uno a uno si a la fech a de v alo raci o n *
5 * estan vigente s o no . *
6 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
7
8 Dim N As Integer
9 Dim Fi As Integer
i0 Dim i As Integer
ii Dim FechaVal As Date
i2 Dim Col As Long
i3 Dim FFin As D ate
i4
i5 Col = 19 C olumn a en la que
esta el camp o " Vigent e "
i6
i7 Fi = Shee ts (" CODIGO "). Cells (7 , 51)
i8 N = Sheets (" CODIGO " ). Cells (8 , 51)
i9 FechaVal = Sheets (" FORWARD S " ). Cells (3 , 3)
20

lej
A

an
dr
o P

re
Valoracion de Derivados 105

2i For i = 1 To N
22
23 Call ClasificacionFrd ( Fi - 1 + i )
24
25 If FrdSubyacent e = " S2 " Then
26 FFin = Sheets (" FORWARD S ") . Cells ( Fi - 1 + i , 15)
27 Else
28 FFin = Sheets (" FORWARD S ") . Cells ( Fi - 1 + i , 7)
29 End If
30
3i If Sheets ( " FORWARDS " ). Cells ( Fi - 1 + i , 3) <= FechaVal And FFin
>= FechaVal Then
32 Sheets (" FORWARDS "). Cells ( Fi - 1 + i , Col ) = " SI "
33 Sheets (" FORWARDS "). Cells ( Fi - 1 + i , 26) = FFin - FechaVa l
34 Else
35 Sheets (" FORWARDS "). Cells ( Fi - 1 + i , Col ) = " NO "
36 Sheets (" FORWARDS "). Cells ( Fi - 1 + i , 26) = ""
37 End If
38 Next
39
40 End Sub

i Sub ContarVigentesFr d ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a cuent a los FORWARDS que estan *
4 * vigente s de la tabla . *
5 * Esta rutin a t ambi e n construy e un vector con las *
6 * filas en las que estan los FORWARD S vigentes . *
7 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
8
9 Dim N As Integer
i0 Dim Fi As Integer
ii Dim i As Integer
i2 Dim Col As Long
i3
i4 Col = 19 C olumn a en la que
esta el camp o " Vigent e "
i5
i6 Fi = Sheets (" CODIGO "). Cells (7 , 51)
i7 N = Sheets (" CODIGO " ). Cells (8 , 51)
i8
i9 FrdVigente s = 0
20 ReDim FrdVigentesPos (N )
2i
22 For i = 1 To N
23 If Sheets ( " FORWARDS " ). Cells ( Fi - 1 + i , Col ) = " SI " Then
24 FrdVigentes = FrdVigentes + 1
25 FrdVigentesPos ( FrdVigentes ) = Fi - 1 + i
26 End If
27 Next
28
29 ReDim Preserve FrdVigentesPos ( FrdVigentes )
30
3i End Sub

i Sub ValFrd_Divisas_V_US D (F)


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valor a los FORWARDS de VENT A que *
4 * tienen como subyacente el USD
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Sheets (" CODIGO ") . Cells (90 , 51) = Sheets (" FORWARDS "). Cells (F , 13)
8 Sheets (" CODIGO ") . Cells (92 , 51) = Sheets (" FORWARDS "). Cells (F , 26)
9

lej
A

an
dr
o P

re
Valoracion de Derivados 106

i0 Sheets (" FORWARDS "). Cells (F , 20) = Sheets ( " CODIGO "). Cells (94 , 51)
ii Sheets (" FORWARDS "). Cells (F , 21) = ""
i2 Sheets (" FORWARDS "). Cells (F , 23) = Sheets ( " CODIGO "). Cells (91 , 51)
i3 Sheets (" FORWARDS "). Cells (F , 25) = Sheets ( " CODIGO "). Cells (97 , 51)
i4
i5 Sheets (" FORWARDS "). Cells (F , 27) = Sheets ( " CODIGO "). Cells (96 , 51) *
Sheets (" FORWARDS "). Cells (F , 9)
i6 Sheets (" FORWARDS "). Cells (F , 28) = Sheets ( " CODIGO "). Cells (97 , 51) *
Sheets (" FORWARDS "). Cells (F , 9)
i7 Sheets (" FORWARDS "). Cells (F , 29) = Sheets ( " CODIGO "). Cells (99 , 51) *
Sheets (" FORWARDS "). Cells (F , 9)
i8
i9 End Sub

i Sub ValFrd_Divisas_C_US D (F)


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valor a los FORWARDS de COMPR A que *
4 * tienen como subyacente el USD
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Sheets (" CODIGO ") . Cells (90 , 51) = Sheets (" FORWARDS "). Cells (F , 13)
8 Sheets (" CODIGO ") . Cells (92 , 51) = Sheets (" FORWARDS "). Cells (F , 26)
9
i0 Sheets (" FORWARDS "). Cells (F , 20) = Sheets ( " CODIGO "). Cells (94 , 51)
ii Sheets (" FORWARDS "). Cells (F , 21) = ""
i2 Sheets (" FORWARDS "). Cells (F , 23) = Sheets ( " CODIGO "). Cells (91 , 51)
i3 Sheets (" FORWARDS "). Cells (F , 25) = Sheets ( " CODIGO "). Cells (97 , 51)
i4
i5 Sheets (" FORWARDS "). Cells (F , 27) = Sheets ( " CODIGO "). Cells (97 , 51) *
Sheets (" FORWARDS "). Cells (F , 9)
i6 Sheets (" FORWARDS "). Cells (F , 28) = Sheets ( " CODIGO "). Cells (96 , 51) *
Sheets (" FORWARDS "). Cells (F , 9)
i7 Sheets (" FORWARDS "). Cells (F , 29) = - Sheets (" CODIGO " ). Cells (99 , 51) *
Sheets (" FORWARDS " ). Cells (F , 9)
i8
i9 End Sub

i Sub ValFrd_Divisas_V_EU R (F)


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valor a los FORWARDS de VENT A que *
4 * tienen como subyacente el EUR
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Sheets (" CODIGO ") . Cells (149 , 55) = Sheets ( " FORWARDS " ). Cells (F , 13)
8 Sheets (" CODIGO ") . Cells (151 , 55) = Sheets ( " FORWARDS " ). Cells (F , 26)
9
i0 Sheets (" FORWARDS "). Cells (F , 20) = Sheets ( " CODIGO "). Cells (152 , 55)
ii Sheets (" FORWARDS "). Cells (F , 21) = Sheets ( " CODIGO "). Cells (147 , 55)
i2 Sheets (" FORWARDS "). Cells (F , 23) = Sheets ( " CODIGO "). Cells (150 , 55)
i3 Sheets (" FORWARDS "). Cells (F , 25) = Sheets ( " CODIGO "). Cells (158 , 55) /
Sheets (" CODIGO ") . Cells (147 , 55)
i4
i5 Sheets (" FORWARDS "). Cells (F , 27) = Sheets (" CODIGO " ). Cells (157 , 55) *
Sheets (" FORWARDS " ). Cells (F , 9)
i6 Sheets (" FORWARDS "). Cells (F , 28) = Sheets (" CODIGO " ). Cells (158 , 55) *
Sheets (" FORWARDS " ). Cells (F , 9)
i7 Sheets (" FORWARDS "). Cells (F , 29) = Sheets (" CODIGO " ). Cells (160 , 55) *
Sheets (" FORWARDS " ). Cells (F , 9)
i8
i9 End Sub

i Sub ValFrd_Divisas_C_EU R (F)


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *

lej
A

an
dr
o P

re
Valoracion de Derivados 107

3 * Esta rutin a valor a los FORWARDS de COMPR A que *


4 * tienen como subyacente el EUR
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Sheets (" CODIGO ") . Cells (149 , 55) = Sheets ( " FORWARDS " ). Cell s (F , 13)
8 Sheets (" CODIGO ") . Cells (151 , 55) = Sheets ( " FORWARDS " ). Cell s (F , 26)
9
i0 Sheets (" FORWARDS " ). Cells (F , 20) = Sheets ( " CODIGO " ). Cells (152 , 55)
ii Sheets (" FORWARDS " ). Cells (F , 21) = Sheets ( " CODIGO " ). Cells (147 , 55)
i2 Sheets (" FORWARDS " ). Cells (F , 23) = Sheets ( " CODIGO " ). Cells (150 , 55)
i3 Sheets (" FORWARDS " ). Cells (F , 25) = Sheets ( " CODIGO " ). Cells (158 , 55) /
Sheets (" CODIGO ") . Cells (147 , 55)
i4
i5 Sheets (" FORWARDS " ). Cells (F , 27) = Sheets ( " CODIGO " ). Cells (158 , 55) *
Sheets (" FORWARDS "). Cells (F , 9)
i6 Sheets (" FORWARDS " ). Cells (F , 28) = Sheets ( " CODIGO " ). Cells (157 , 55) *
Sheets (" FORWARDS "). Cells (F , 9)
i7 Sheets (" FORWARDS " ). Cells (F , 29) = - Sheets (" CODIGO " ). Cell s (160 , 55)
* Sheets (" FORWARDS ") . Cell s (F , 9)
i8
i9 End Sub

i Sub ValFrd_Divisas_V_GB P (F)


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valor a los FORWARDS de VENT A que *
4 * tienen como subyacente el GBP
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Sheets (" CODIGO ") . Cells (149 , 59) = Sheets ( " FORWARDS " ). Cell s (F , 13)
8 Sheets (" CODIGO ") . Cells (151 , 59) = Sheets ( " FORWARDS " ). Cell s (F , 26)
9
i0 Sheets (" FORWARDS " ). Cells (F , 20) = Sheets ( " CODIGO " ). Cells (152 , 59)
ii Sheets (" FORWARDS " ). Cells (F , 21) = Sheets ( " CODIGO " ). Cells (147 , 59)
i2 Sheets (" FORWARDS " ). Cells (F , 23) = Sheets ( " CODIGO " ). Cells (150 , 59)
i3 Sheets (" FORWARDS " ). Cells (F , 25) = Sheets ( " CODIGO " ). Cells (158 , 59) /
Sheets (" CODIGO ") . Cells (147 , 59)
i4
i5 Sheets (" FORWARDS " ). Cells (F , 27) = Sheets (" CODIGO " ). Cells (157 , 59) *
Sheets (" FORWARDS "). Cells (F , 9)
i6 Sheets (" FORWARDS " ). Cells (F , 28) = Sheets (" CODIGO " ). Cells (158 , 59) *
Sheets (" FORWARDS "). Cells (F , 9)
i7 Sheets (" FORWARDS " ). Cells (F , 29) = Sheets (" CODIGO " ). Cells (160 , 59) *
Sheets (" FORWARDS "). Cells (F , 9)
i8
i9 End Sub

i Sub ValFrd_Divisas_C_GB P (F)


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valor a los FORWARDS de COMPR A que *
4 * tienen como subyacente el GBP
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Sheets (" CODIGO ") . Cells (149 , 59) = Sheets ( " FORWARDS " ). Cell s (F , 13)
8 Sheets (" CODIGO ") . Cells (151 , 59) = Sheets ( " FORWARDS " ). Cell s (F , 26)
9
i0 Sheets (" FORWARDS " ). Cells (F , 20) = Sheets ( " CODIGO " ). Cells (152 , 59)
ii Sheets (" FORWARDS " ). Cells (F , 21) = Sheets ( " CODIGO " ). Cells (147 , 59)
i2 Sheets (" FORWARDS " ). Cells (F , 23) = Sheets ( " CODIGO " ). Cells (150 , 59)
i3 Sheets (" FORWARDS " ). Cells (F , 25) = Sheets ( " CODIGO " ). Cells (158 , 59) /
Sheets (" CODIGO ") . Cells (147 , 59)
i4
i5 Sheets (" FORWARDS " ). Cells (F , 27) = Sheets (" CODIGO " ). Cells (158 , 59) *
Sheets (" FORWARDS "). Cells (F , 9)

lej
A

an
dr
o P

re
Valoracion de Derivados 108

i6 Sheets (" FORWARDS "). Cells (F , 28) = Sheets (" CODIGO " ). Cells (157 , 59) *
Sheets (" FORWARDS " ). Cells (F , 9)
i7 Sheets (" FORWARDS "). Cells (F , 29) = - Sheets (" CODIGO " ). Cells (160 , 59)
* Sheets ( " FORWARDS ") . Cell s (F , 9)
i8
i9 End Sub

i Sub ValFrd_Divisas_V_JP Y (F)


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valor a los FORWARDS de VENT A que *
4 * tienen como subyacente el JPY
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Sheets (" CODIGO ") . Cells (170 , 55) = Sheets ( " FORWARDS " ). Cells (F , 13)
8 Sheets (" CODIGO ") . Cells (172 , 55) = Sheets ( " FORWARDS " ). Cells (F , 26)
9
i0 Sheets (" FORWARDS "). Cells (F , 20) = Sheets ( " CODIGO "). Cells (173 , 55)
ii Sheets (" FORWARDS "). Cells (F , 21) = Sheets ( " CODIGO "). Cells (168 , 55)
i2 Sheets (" FORWARDS "). Cells (F , 23) = Sheets ( " CODIGO "). Cells (171 , 55)
i3 Sheets (" FORWARDS "). Cells (F , 25) = Sheets ( " CODIGO "). Cells (179 , 55) /
Sheets (" CODIGO ") . Cells (168 , 55)
i4
i5 Sheets (" FORWARDS "). Cells (F , 27) = Sheets (" CODIGO " ). Cells (178 , 55) *
Sheets (" FORWARDS " ). Cells (F , 9)
i6 Sheets (" FORWARDS "). Cells (F , 28) = Sheets (" CODIGO " ). Cells (179 , 55) *
Sheets (" FORWARDS " ). Cells (F , 9)
i7 Sheets (" FORWARDS "). Cells (F , 29) = Sheets (" CODIGO " ). Cells (181 , 55) *
Sheets (" FORWARDS " ). Cells (F , 9)
i8
i9 End Sub

i Sub ValFrd_Divisas_C_JP Y (F)


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valor a los FORWARDS de COMPR A que *
4 * tienen como subyacente el JPY
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Sheets (" CODIGO ") . Cells (170 , 55) = Sheets ( " FORWARDS " ). Cells (F , 13)
8 Sheets (" CODIGO ") . Cells (172 , 55) = Sheets ( " FORWARDS " ). Cells (F , 26)
9
i0 Sheets (" FORWARDS "). Cells (F , 20) = Sheets ( " CODIGO "). Cells (173 , 55)
ii Sheets (" FORWARDS "). Cells (F , 21) = Sheets ( " CODIGO "). Cells (168 , 55)
i2 Sheets (" FORWARDS "). Cells (F , 23) = Sheets ( " CODIGO "). Cells (171 , 55)
i3 Sheets (" FORWARDS "). Cells (F , 25) = Sheets ( " CODIGO "). Cells (179 , 55) /
Sheets (" CODIGO ") . Cells (168 , 55)
i4
i5 Sheets (" FORWARDS "). Cells (F , 27) = Sheets ( " CODIGO "). Cells (179 , 55) *
Sheets (" FORWARDS " ). Cells (F , 9)
i6 Sheets (" FORWARDS "). Cells (F , 28) = Sheets ( " CODIGO "). Cells (178 , 55) *
Sheets (" FORWARDS " ). Cells (F , 9)
i7 Sheets (" FORWARDS "). Cells (F , 29) = - Sheets (" CODIGO " ). Cells (181 , 55)
* Sheets ( " FORWARDS ") . Cell s (F , 9)
i8
i9 End Sub

i Sub Va lF r d_ T t ul os R F_ V (F )
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutina valora los FORWARDS de VENTA que *
4 * tienen com o subyacente TIT U LO S RENT A FIJA EN *
5 * COP
6 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
7
8 Sheets (" CODIGO ") . Cells (174 , 48) = Sheets ( " FORWARD S " ). Cells (F , 13)

lej
A

an
dr
o P

re
Valoracion de Derivados 109

9 Sheets (" CODIGO ") . Cells (175 , 48) = Sheets ( " FORWARDS " ). Cell s (F , 17)
i0 Sheets (" CODIGO ") . Cells (176 , 47) = Sheets ( " FORWARDS " ). Cell s (F , 16)
ii Sheets (" CODIGO ") . Cells (177 , 48) = Sheets ( " FORWARDS " ). Cell s (F , 26)
i2 Sheets (" CODIGO ") . Cells (178 , 48) = Sheets ( " FORWARDS " ). Cell s (F , 18) -
Sheets (" FORWARDS "). Cells (3 , 3)
i3
i4 Sheets (" FORWARDS " ). Cells (F , 20) = Sheets ( " CODIGO " ). Cells (179 , 48)
i5 Sheets (" FORWARDS " ). Cells (F , 21) = ""
i6 Sheets (" FORWARDS " ). Cells (F , 23) = Sheets ( " CODIGO " ). Cells (176 , 48)
i7 Sheets (" FORWARDS " ). Cells (F , 25) = Sheets ( " CODIGO " ). Cells (185 , 48)
i8
i9 Sheets (" FORWARDS " ). Cells (F , 27) = Sheets ( " CODIGO " ). Cells (184 , 48) *
Sheets (" FORWARDS "). Cells (F , 9)
20 Sheets (" FORWARDS " ). Cells (F , 28) = Sheets ( " CODIGO " ). Cells (185 , 48) *
Sheets (" FORWARDS "). Cells (F , 9)
2i Sheets (" FORWARDS " ). Cells (F , 29) = Sheets ( " CODIGO " ). Cells (187 , 48) *
Sheets (" FORWARDS "). Cells (F , 9)
22
23 End Sub

i Sub Va lF r d_ T t ul os R F_ C (F )
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valor a los FORWARDS de COMPR A que *
4 * tienen como subyacente TIT UL O S RENTA FIJA EN *
5 * COP
6 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
7
8 Sheets (" CODIGO ") . Cells (174 , 48) = Sheets ( " FORWARDS " ). Cell s (F , 13)
9 Sheets (" CODIGO ") . Cells (175 , 48) = Sheets ( " FORWARDS " ). Cell s (F , 17)
i0 Sheets (" CODIGO ") . Cells (176 , 47) = Sheets ( " FORWARDS " ). Cell s (F , 16)
ii Sheets (" CODIGO ") . Cells (177 , 48) = Sheets ( " FORWARDS " ). Cell s (F , 26)
i2 Sheets (" CODIGO ") . Cells (178 , 48) = Sheets ( " FORWARDS " ). Cell s (F , 18) -
Sheets (" FORWARDS "). Cells (3 , 3)
i3
i4 Sheets (" FORWARDS " ). Cells (F , 20) = Sheets ( " CODIGO " ). Cells (179 , 48)
i5 Sheets (" FORWARDS " ). Cells (F , 21) = ""
i6 Sheets (" FORWARDS " ). Cells (F , 23) = Sheets ( " CODIGO " ). Cells (176 , 48)
i7 Sheets (" FORWARDS " ). Cells (F , 25) = Sheets ( " CODIGO " ). Cells (185 , 48)
i8
i9 Sheets (" FORWARDS " ). Cells (F , 27) = Sheets ( " CODIGO " ). Cells (185 , 48) *
Sheets (" FORWARDS "). Cells (F , 9)
20 Sheets (" FORWARDS " ). Cells (F , 28) = Sheets (" CODIGO " ). Cells (184 , 48) *
Sheets (" FORWARDS "). Cells (F , 9)
2i Sheets (" FORWARDS " ). Cells (F , 29) = - Sheets (" CODIGO " ). Cells (187 , 48)
* Sheets (" FORWARDS ") . Cell s (F , 9)
22
23 End Sub

i Sub ValFrd_FRA s (F )
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valor a los FORWARDS de COMPR A y de *
4 * VENTA que son sobre FRAs *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Sheets (" CODIGO ") . Cells (18 , 47) = Sheets (" FORWARDS "). Cells (F , 6)
8 Sheets (" CODIGO ") . Cells (169 , 58) = Sheets ( " FORWARDS " ). Cell s (F , 15)
9 Sheets (" CODIGO ") . Cells (170 , 58) = Sheets ( " FORWARDS " ). Cell s (F , 7)
i0 Sheets (" CODIGO ") . Cells (190 , 59) = Sheets ( " FORWARDS " ). Cell s (F , 9)
ii Sheets (" CODIGO ") . Cells (191 , 59) = Sheets ( " FORWARDS " ). Cell s (F , 13)
i2
i3 Sheets (" FORWARDS " ). Cells (F , 20) = " NA "
i4 Sheets (" FORWARDS " ). Cells (F , 21) = Sheets ( " CODIGO " ). Cells (198 , 59)
i5 Sheets (" FORWARDS " ). Cells (F , 23) = " NA "
i6 Sheets (" FORWARDS " ). Cells (F , 25) = Sheets ( " CODIGO " ). Cells (186 , 59)

lej
A

an
dr
o P

re
Valoracion de Derivados 110

i7 Sheets (" FORWARDS "). Cells (F , 27) = Sheets ( " CODIGO "). Cells (193 , 59)
i8 Sheets (" FORWARDS "). Cells (F , 28) = Sheets ( " CODIGO "). Cells (194 , 59)
i9 Sheets (" FORWARDS "). Cells (F , 29) = Sheets ( " CODIGO "). Cells (196 , 59)
20
2i End Sub

Futuros
i Sub NewFut ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a llama el formulario que permit e *
4 * adquiri r nuevos FUTUROS *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 frmNewFut . Show
8
9 End Sub

i Sub CodFut ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a lee en la hoja CODIG O el consecutivo *
4 * en el que van los FUTUROS y lo proces a para *
5 * encontrar el siguiente consecutivo *
6 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
7
8 Dim CodI As Integer
9 Dim CodA As Integer
i0
ii CodI = Sheets (" CODIGO ") . Cells (4 , 66)
i2 CodA = Sheets (" CODIGO ") . Cells (5 , 66)
i3
i4 If CodA = 0 Or CodA < CodI Then
i5 CodA = CodI
i6 Else
i7 CodA = CodA + 1
i8 End If
i9
20 Sheets (" CODIGO ") . Cells (5 , 66) = CodA
2i
22 End Sub

i Sub For matoFut ( F)


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a aplic a el formato correcto a los *
4 * datos que se escriben cuando se adquier e un *
5 * FUTURO en la hoja FUTUROS . *
6 * F - Fila en la que se a plic ar a el format o *
7 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
8
9 Dim Rango As String
i0
ii A pplicatio n . ScreenUpdatin g = False
i2
i3 Rango = "A" & F & " ,D" & F & " ,E" & F & " ,F " & F & " ,H " & F & " ,J " & F
& " ,L " & F & " ,N " & F & " ,O " & F & " ,P" & F & " ,R " & F & " ,T" & F
i4 F ormat o General
i5 Range ( Rang o ). Select
i6 Selection . NumberFormat = " General "
i7 With Selection
i8 . Font . Name = " Verdana "
i9 . Font . Size = 8
20 . HorizontalAlignmen t = xlCenter
2i . VerticalAlignmen t = xlCente r
22 . WrapText = False

lej
A

an
dr
o P

re
Valoracion de Derivados 111

23 . Orientation = 0
24 . AddIndent = False
25 . IndentLevel = 0
26 . ShrinkToFit = False
27 . ReadingOrder = xlContext
28 . M ergeCells = False
29 End With
30
3i Rango = "B" & F & " ,C" & F & " ,G" & F
32 F ormat o Fech a
33 Range ( Rango ). Select
34 Selection . NumberFormat = " [ -409] d - mmm - yy ;@"
35 With Selection
36 . Font . Name = " Verdana "
37 . Font . Size = 8
38 . HorizontalAlignmen t = xlCenter
39 . VerticalAlignment = xlCente r
40 . WrapText = False
4i . Orientation = 0
42 . AddIndent = False
43 . IndentLevel = 0
44 . ShrinkToFit = False
45 . ReadingOrder = xlContext
46 . M ergeCells = False
47 End With
48
49 Rango = "U" & F & " ,V" & F & " ,W" & F
50 F ormat o Mile s sin Decimales
5i Range ( Rango ). Select
52 Selection . NumberFormat = " # ,##0 "
53 With Selection
54 . Font . Name = " Verdana "
55 . Font . Size = 8
56 . HorizontalAlignmen t = xlCenter
57 . VerticalAlignment = xlCente r
58 . WrapText = False
59 . Orientation = 0
60 . AddIndent = False
6i . IndentLevel = 0
62 . ShrinkToFit = False
63 . ReadingOrder = xlContext
64 . M ergeCells = False
65 End With
66
67 Rango = "I" & F & " ,K" & F & " ,M" & F & " ,Q" & F & " ,S " & F
68 F ormat o Mile s con 3 Decimales
69 Range ( Rango ). Select
70 Selection . NumberFormat = " # ,##0.000 "
7i With Selection
72 . Font . Name = " Verdana "
73 . Font . Size = 8
74 . HorizontalAlignmen t = xlCenter
75 . VerticalAlignment = xlCente r
76 . WrapText = False
77 . Orientation = 0
78 . AddIndent = False
79 . IndentLevel = 0
80 . ShrinkToFit = False
8i . ReadingOrder = xlContext
82 . M ergeCells = False
83 End With
84
85 Rango = "A" & F & ": W" & F
86 F ormat o BORDES
87 Range ( Rango ). Select

lej
A

an
dr
o P

re
Valoracion de Derivados 112

88 Selection . Borders ( xlDiagonalDown ). LineStyl e = xlNone


89 Selection . Borders ( xlDiagonalUp ). LineStyle = xlNone
90 With Selection
9i . Borders ( xlEd geLe ft ) . LineStyle = xlContinuous
92 . Borders ( xlEd geLe ft ) . ColorInde x = 15
93 . Borders ( xlEd geLe ft ) . TintAndShade = 0
94 . Borders ( xlEd geLe ft ) . Weight = xlThin
95
96 . Borders ( xlEdgeTo p ). LineStyl e = xlContinuou s
97 . Borders ( xlEdgeTo p ). ColorIndex = 15
98 . Borders ( xlEdgeTo p ). TintAndShade = 0
99 . Borders ( xlEdgeTo p ). Weight = xlThin
i00
i0i . Borders ( xlEdgeBottom ) . LineStyle = xlContinuous
i02 . Borders ( xlEdgeBottom ) . Co lorIndex = 15
i03 . Borders ( xlEdgeBottom ) . TintAndShade = 0
i04 . Borders ( xlEdgeBottom ) . Weight = xlThin
i05
i06 . Borders ( xlEdgeRight ). LineStyle = xlContinuou s
i07 . Borders ( xlEdgeRight ). C olor Index = 15
i08 . Borders ( xlEdgeRight ). T intAndShad e = 0
i09 . Borders ( xlEdgeRight ). Weight = xlThin
ii0
iii . Borders ( xlInsideVertical ). LineStyl e = xlContinuous
ii2 . Borders ( xlInsideVertical ). Col orIndex = 15
ii3 . Borders ( xlInsideVertical ). TintAndShade = 0
ii4 . Borders ( xlInsideVertical ). Weight = xlThin
ii5 End With
ii6 Selection . Borders ( xlInsideHorizontal ). LineStyle = xlNone
ii7
ii8 Applicatio n . ScreenUpdating = True
ii9
i20 End Sub

i Sub Val orarFut ()


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valor a los FUTUROS que hay VIGENTES *
4 * en la tabla de la hoja FUTUROS . *
5 * Los FUTURO S que no esta n vigente s conserva n su *
6 * valor para determinar ganancias o per did a s del *
7 * portafoli o . *
8 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
9
i0 Dim Campo1 As Integer
ii Dim Campo2 As Integer
i2 Dim SubTitul o As String
i3 Dim ColVal As Integer
i4 Dim i As Integer
i5 Dim FechaVal As Date
i6
i7 Call FechaSerie s ( Cells (3 , 3) )
i8 If RValSeri es = False Then
i9 Exit Sub
20 End If
2i
22 Call VerificarVigenciaFu t
23 Call ContarVigentesFu t
24
25 Campo1 = 1
26 Campo2 = FutVigentes
27 FechaVal = Sheets (" FUTUROS "). Cells (3 , 3)
28 frmValFut . PrgBar = 0
29 frmValFut . lblProgreso = " Calcul ando ... "
30
3i frmValFut . Show (0)

lej
A

an
dr
o P

re
Valoracion de Derivados 113

32 Sheets (" CODIGO ") . Cells (88 , 61) = FechaVa l


33
34 For i = 1 To Campo2
35
36 frmValFut . PrgBar = (i / Campo2 ) * 100
37 Campo1 = i
38 frmValFut . lblProgreso = " Valorando FUTURO " & Campo1 & " de " &
Campo2
39
40 Sheets (" CODIGO ") . Cells (18 , 62) = Sheets (" FUTURO S " ). Cell s (
FutVigentesPos ( i) , 15)
4i SubTitulo = Sheets (" FUTURO S " ). Cells ( FutVigentesPos ( i ) , 6)
42
43 Select Case SubTitulo
44
45 Case " TRM "
46 ColVal = 65
47
48 Case " Bono Nocional "
49 ColVal = 70
50
5i End Select
52
53 Sheets (" CODIGO ") . Cells (93 , ColVal ) = Sheets (" FUTUROS "). Cells (
FutVigentesPos ( i) , 13)
54 Sheets (" CODIGO ") . Cells (95 , ColVal ) = Sheets (" FUTUROS "). Cells (
FutVigentesPos ( i) , 9)
55 Sheets (" CODIGO ") . Cells (96 , ColVal ) = Sheets (" FUTUROS "). Cells (
FutVigentesPos ( i) , 11)
56 Sheets (" CODIGO ") . Cells (98 , ColVal - 1) = Sheets (" FUTUROS ") .
Cells ( FutVigentesPos (i ) , 7)
57 Sheets (" CODIGO ") . Cells (100 , ColVal - 1) = Sheets ( " FUTURO S " ).
Cells ( FutVigentesPos (i ) , 5)
58
59 Sheets (" FUTUROS "). Cells ( FutVigentesPos ( i) , 17) = Sheets (" CODIGO
" ). Cells (90 , ColVal )
60 Sheets (" FUTUROS "). Cells ( FutVigentesPos ( i) , 19) = Sheets (" CODIGO
" ). Cells (92 , ColVal )
6i Sheets (" FUTUROS "). Cells ( FutVigentesPos ( i) , 21) = Sheets (" CODIGO
" ). Cells (102 , ColVal )
62 Sheets (" FUTUROS "). Cells ( FutVigentesPos ( i) , 22) = Sheets (" CODIGO
" ). Cells (103 , ColVal )
63 Sheets (" FUTUROS "). Cells ( FutVigentesPos ( i) , 23) = Sheets (" CODIGO
" ). Cells (105 , ColVal )
64
65 Sheets (" FUTUROS "). Cells ( FutVigentesPos ( i) , 2) = FechaVal
66 Next
67
68 frmValFut . Hide
69
70 End Sub

i Sub VerificarVigenciaFu t ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a recorre los FUTURO S ACTIVO S y *
4 * verific a uno a uno si a la fecha de val ora ci o n *
5 * esta n vigentes o no . *
6 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
7
8 Dim N As Integer
9 Dim Fi As Intege r
i0 Dim i As Integer
ii Dim FechaVal As Date
i2 Dim Col As Long
i3

lej
A

an
dr
o P

re
Valoracion de Derivados 114

i4 Col = 16 C olumn a en la que


esta el camp o " Vigent e "
i5
i6 Fi = Shee ts (" CODIGO "). Cells (7 , 66)
i7 N = Sheets (" CODIGO " ). Cells (8 , 66)
i8 FechaVal = Sheets (" FUTURO S "). Cells (3 , 3)
i9
20 For i = 1 To N
2i If Sheets ( " FUTUROS " ). Cells ( Fi - 1 + i , 3) <= FechaVa l And
Sheets (" FUTUROS "). Cells ( Fi - 1 + i , 7) >= FechaVa l Then
22 S heets (" FUTUROS "). Cells ( Fi - 1 + i , Col ) = " SI "
23 S heets (" FUTUROS "). Cells ( Fi - 1 + i , 20) = Sheets (" FUTUROS ")

. Cells ( Fi - 1 + i , 7) - FechaVal
24 Else

25 S heets (" FUTUROS "). Cells ( Fi - 1 + i , Col ) = " NO "


26 S heets (" FUTUROS "). Cells ( Fi - 1 + i , 20) = ""
27 End If
28 Next
29
30 End Sub

i Sub ContarVigentesFu t ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a cuent a los FUTUROS que estan *
4 * vigente s de la tabla . *
5 * Esta rutin a t ambi e n construy e un vector con las *
6 * filas en las que estan los FUTURO S vigentes . *
7 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
8
9 Dim N As Integer
i0 Dim Fi As Integer
ii Dim i As Integer
i2 Dim Col As Long
i3
i4 Col = 16 C olumn a en la que
esta el camp o " Vigent e "
i5
i6 Fi = Shee ts (" CODIGO "). Cells (7 , 66)
i7 N = Sheets (" CODIGO " ). Cells (8 , 66)
i8
i9 FutVigente s = 0
20 ReDim FutVigentesPo s (N )
2i
22 For i = 1 To N
23 If Sheets ( " FUTUROS " ). Cells ( Fi - 1 + i , Col ) = " SI " Then
24 FutVigente s = FutVigentes + 1
25 FutVigentesPo s ( FutVigentes ) = Fi - 1 + i
26 End If
27 Next
28
29 ReDim Preserve FutVigentesPos ( FutVigentes )
30
3i End Sub

MainCod
i Sub Series ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a lee en la hoja SERIE S que variables *
4 * hay y establec e en cual column a se encuentra *
5 * cada una de ella s . *
6 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *

lej
A

an
dr
o P

re
7
8 Dim FE As Intege r
Valoracion de Derivados 115

lej
A

an
dr
o P

re
Valoracion de Derivados 116

9 Dim HActual As String


i0 Dim lS As Integer
ii Dim i As Intege r
i2
i3 A pplicatio n . ScreenUpdating = False
i4
i5 HActua l = ActiveSheet . Name
i6
i7 Wor kshe ets (" CODIGO "). Activat e
i8
i9 Range ( " AE6 : AF200 " ). Select
20 Selection . ClearContents
2i
22 FE = Cells (3 , 32)
23
24 Wor kshe ets (" SERIES "). Activat e
25
26 Cells ( FE , 1) . Select
27 Range ( Selectio n , Selectio n . End ( xlToRight )). Select
28
29 lS = Selection . Column s . Count
30 Sheets (" CODIGO ") . Cells (4 , 32) = lS
3i
32 For i = 1 To lS
33 Sheets (" CODIGO ") . Cells (5 + i , 31) = Cells (FE , i )
34 Sheets (" CODIGO ") . Cells (5 + i , 32) = i
35 Next i
36
37 Wor kshe ets ( HActua l ) . Activate
38
39 End Sub
40
4i Sub BUG_FI X ()
42
43 Sheets (" CODIGO ") . Cells (9 , 3) = Sheets ( " CODIGO " ). Cells (9 , 3) + 1
44
45 If Sheets ( " CODIGO ") . Cells (9 , 3) > 15 Then
46 BUG = 1
47 End If
48
49 End Sub

i Sub Tipo_SubyacentesFR D ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a lee en la hoja CODIG O los Tipo s de *
4 * Subyacente s que hay para los FORWARDS y los *
5 * organiz a en form a de vector , junt o con sus *
6 * unidade s . *
7 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
8
9 Dim k As Integer
i0 Dim i As Integer
ii Dim j As Intege r
i2 Dim Ts As String
i3 Dim HActua l As String
i4
i5 A pplicatio n . ScreenUpdating = False
i6
i7 HActua l = ActiveSheet . Name
i8
i9 Wor kshe ets (" CODIGO "). Activat e
20
2i Range ( " AT21 : AT85 " ). Select
22 Selection . ClearContents
23

lej
A

an
dr
o P

re
Valoracion de Derivados 117

24 k = 0
25
26 For i = 1 To 5
27 For j = 1 To 13
28 Ts = Cells (11 + i , 47 + j )
29 k = k + 1
30 Cells (20 + k , 46) = Ts
3i Next
32 Next
33
34 Workshe ets ( HActua l ) . Activate
35
36 End Sub

i Sub Tipo_SubyacentesFU T ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a lee en la hoja CODIG O los Tipo s de *
4 * Subyacente s que hay para los FUTUROS y los *
5 * organiza en form a de vector , junt o con sus *
6 * unidades . *
7 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
8
9 Dim k As Integer
i0 Dim i As Integer
ii Dim j As Intege r
i2 Dim Ts As String
i3 Dim HActua l As String
i4
i5 A pplicatio n . ScreenUpdatin g = False
i6
i7 HActua l = ActiveShee t . Name
i8
i9 Workshe ets (" CODIGO "). Activat e
20
2i Range ( " BI2 1 : BI85 " ). Select
22 Selection . ClearContents
23
24 k = 0
25
26 For i = 1 To 5
27 For j = 1 To 13
28 Ts = Cells (11 + i , 62 + j )
29 k = k + 1
30 Cells (20 + k , 61) = Ts
3i Next
32 Next
33
34 Workshe ets ( HActua l ) . Activate
35
36 End Sub

i Sub Tipo_SubyacentesOP C ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a lee en la hoja CODIG O los Tipo s de *
4 * Subyacente s que hay para las OPCIONES y los *
5 * organiza en form a de vector , junt o con sus *
6 * unidades . *
7 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
8
9 Dim k As Integer
i0 Dim i As Integer
ii Dim j As Intege r
i2 Dim Ts As String
i3 Dim HActua l As String

lej
A

an
dr
o P

re
Valoracion de Derivados 118

i4
i5 A pplicatio n . ScreenUpdating = False
i6
i7 HActua l = ActiveSheet . Name
i8
i9 Wor kshe ets (" CODIGO "). Activat e
20
2i Range ( " CM21 : CM85 " ). Select
22 Selection . ClearContents
23
24 k = 0
25
26 For i = 1 To 5
27 For j = 1 To 13
28 Ts = Cells (11 + i , 92 + j )
29 k = k + 1
30 Cells (20 + k , 91) = Ts
3i Next
32 Next
33
34 Wor kshe ets ( HActua l ) . Activate
35
36 End Sub

i Sub FechaSerie s ( Fecha )


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valid a que para la fech a en la que *
4 * se esta valorand o existan todos los datos SERIE S *
5 * necesario s . *
6 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
7
8 Dim N As Integer
9 Dim k As Integer
i0 Dim Fil a As Long
ii
i2 N = Sheets (" CODIGO " ). Cells (4 , 32) - 1
i3
i4 Sheets (" CODIGO ") . Cells (4 , 36) = Fecha
i5
i6 If Sheets ( " CODIGO ") . Cells (4 , 37) = 0 Then
i7 MsgBox ( " IN F OR MA C I ON PARA LA VALO RACI ON NO ENCONT RADA " & Chr
(13) & " " & Chr (13) & " Verifique que TODAS las series tengan
i n f or ma c i on para la fecha en la que esta valorand o . " ) ,
vbCritical , " ERROR "
i8 RVa lSer ies = False
i9 Exit Sub
20 End If
2i
22 Fila = Sheets (" CODIGO ") . Cells (4 , 38)
23 For k = 1 To N
24 If Sheets ( " SERIES " ). Cells ( Fila , k + 1) = "" Then
25 MsgBox ( " IN F OR MA C I ON PARA LA VALO RACI ON NO E NCON TRAD A " &
Chr (13) & " " & Chr (13) & " Verifique que TODAS las series
tengan i n fo r ma c i o n para la fecha en la que esta valorando . "
) , vbCritica l , " ERROR "
26 RValSe ries = False
27 Exit Sub
28 End If
29 Next
30
3i RVa lSer ies = True
32
33 End Sub

lej
A

an
dr
o P

re
Valoracion de Derivados 119

i Sub txbFormatoMile s ( Expresion , Optional D = 6)


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a transforma los valores ingresados *
4 * en un TextBo x en nu m ero s con formato de " Mile s " *
5 N - Numero a transformar
6 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
7
8 If Expresion = "" Then
9
i0 Else
ii Fnum6d = FormatNumbe r ( CStr ( Expresion ) , D , vbUseDefault ,
vbUseDefault , vbTrue )
i2 End If
i3
i4 End Sub

i Sub Creditos ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a muestra el formulari o de C red it o s *
4 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
5
6 frmCredito s . Show
7
8 End Sub

i Sub Save ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a guard a el libro *
4 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
5
6 ActiveWorkboo k . Save
7
8 End Sub

Opciones
i Sub NewOpc ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a llama el formulario que permit e *
4 * adquiri r nuevas OPCIONES *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 frmNewOpc . Show
8
9 End Sub

i Sub CodOpc ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a lee en la hoja CODIG O el consecutivo *
4 * en el que van las OPCIONES y lo procesa para *
5 * encontrar el siguiente consecutivo *
6 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
7
8 Dim CodI As Integer
9 Dim CodA As Integer
i0
ii CodI = Sheets (" CODIGO ") . Cells (4 , 96)
i2 CodA = Sheets (" CODIGO ") . Cells (5 , 96)
i3
i4 If CodA = 0 Or CodA < CodI Then
i5 CodA = CodI
i6 Else
i7 CodA = CodA + 1

lej
A

an
dr
o P

re
Valoracion de Derivados 120

i8 End If
i9
20 Sheets (" CODIGO ") . Cells (5 , 96) = CodA
2i
22 End Sub

i Sub FormatoO pc ( F)
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a aplic a el formato correcto a los *
4 * datos que se escriben cuando se adquier e una *
5 * OPCI ON en la hoja OPCIONES . *
6 * F - Fila en la que se a plic ar a el format o *
7 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
8
9 Dim Rango As String
i0 Dim Psw As String
ii
i2 Psw = " &9 RjTn [2 y "
i3
i4 A pplicatio n . ScreenUpdating = False
i5 A ctiveShee t . Unprotect ( Psw )
i6
i7 Rango = "A" & F & " ,D" & F & " ,E" & F & " ,F" & F & " ,G " & F & " ,I " & F
& " ,K " & F & " ,M " & F & " ,O " & F & " ,Q" & F & " ,AB " & F & " , AE " & F & "
,AG " & F
i8 F ormat o General
i9 Range ( Rango ). Select
20 Selection . NumberFormat = " General "
2i With Selection
22 . Font . Name = " Verdana "
23 . Font . Size = 8
24 . HorizontalAlignmen t = xlCenter
25 . VerticalAlignment = xlCente r
26 . WrapText = False
27 . Orientation = 0
28 . AddIndent = False
29 . IndentLevel = 0
30 . ShrinkToFit = False
3i . ReadingOrder = xlContext
32 . M ergeCells = False
33 End With
34
35 Rango = "B" & F & " ,C" & F & " ,H" & F & " ,R" & F & " ,S " & F & " ,T " & F
& " ,U " & F & " ,V " & F & " ,W " & F & " ,X" & F & " ,Y " & F & " ,Z " & F & " ,
AA " & F
36 F ormat o Fech a
37 Range ( Rango ). Select
38 Selection . NumberFormat = " [ -409] d - mmm - yy ;@"
39 With Selection
40 . Font . Name = " Verdana "
4i . Font . Size = 8
42 . HorizontalAlignmen t = xlCenter
43 . VerticalAlignment = xlCente r
44 . WrapText = False
45 . Orientation = 0
46 . AddIndent = False
47 . IndentLevel = 0
48 . ShrinkToFit = False
49 . ReadingOrder = xlContext
50 . M ergeCells = False
5i End With
52
53 Rango = "J" & F & " ,L" & F & " ,AK " & F
54 F ormat o Mile s sin Decimales
55 Range ( Rango ). Select

lej
A

an
dr
o P

re
Valoracion de Derivados 121

56 Selection . NumberFormat = " # ,##0 "


57 With Selection
58 . Font . Name = " Verdana "
59 . Font . Size = 8
60 . HorizontalAlignmen t = xlCenter
6i . VerticalAlignmen t = xlCente r
62 . WrapText = False
63 . Orientatio n = 0
64 . AddIndent = False
65 . IndentLeve l = 0
66 . ShrinkToFi t = False
67 . ReadingOrde r = xlContext
68 . M ergeCells = False
69 End With
70
7i Rango = "N" & F & " ,P" & F & " ,AD " & F & " ,AF " & F & " ,AH " & F & " ,AJ "
& F & " ,R" & F + 1 & " ,S" & F + 1 & " ,T" & F + 1 & " ,U " & F + 1 & " ,V"
& F + 1 & " ,W " & F + 1 & " ,X" & F + 1 & " ,Y " & F + 1 & " ,Z" & F + 1 & "
,AA " & F + 1
72 F ormat o Mile s con 3 Decimales
73 Range ( Rang o ). Select
74 Selection . NumberFormat = " # ,##0.000 "
75 With Selection
76 . Font . Name = " Verdana "
77 . Font . Size = 8
78 . HorizontalAlignmen t = xlCenter
79 . VerticalAlignmen t = xlCente r
80 . WrapText = False
8i . Orientatio n = 0
82 . AddIndent = False
83 . IndentLeve l = 0
84 . ShrinkToFi t = False
85 . ReadingOrde r = xlContext
86 . M ergeCells = False
87 End With
88
89 Rango = " AC " & F & " ,AI " & F
90 F ormat o Porcentaje con 3 Decimales
9i Range ( Rang o ). Select
92 Selection . NumberFormat = " 0.000 % "
93 With Selection
94 . Font . Name = " Verdana "
95 . Font . Size = 8
96 . HorizontalAlignmen t = xlCenter
97 . VerticalAlignmen t = xlCente r
98 . WrapText = False
99 . Orientatio n = 0
i00 . AddIndent = False
i0i . IndentLeve l = 0
i02 . ShrinkToFi t = False
i03 . ReadingOrde r = xlContext
i04 . M ergeCells = False
i05 End With
i06
i07 Rang o = " A" & F & ": A" & F + 1 & " ,B" & F & ": B" & F + 1 & " ,C" & F & "
: C" & F + 1 & " ,D" & F & " :D" & F + 1 & " ,E" & F & " :E " & F + 1 & " ,F "
& F & ": F" & F + 1 & " ,G" & F & ":G " & F + 1 & " ,H" & F & ": H" & F + 1
& " ,I " & F & ":I " & F + 1 & " ,J" & F & ":J " & F + 1 & " ,K" & F & ": K" &
F + 1 & " ,L" & F & " :L " & F + 1 & " ,M" & F & ": M" & F + 1 & " ,N " & F &
" :N " & F + 1 & " ,O" & F & ":O " & F + 1 & " ,P" & F & ": P" & F + 1 & " ,Q
" & F & " :Q" & F + 1 & " ,AB " & F & " : AB " & F + 1 & " ,AC " & F & " : AC " &
F + 1 & " ,AD " & F & ": AD " & F + 1 & " ,AE " & F & " : AE " & F + 1 & " ,AF " &
F & ": AF " & F + 1 & " ,AG " & F & " : AG " & F + 1 & " ,AH " & F & " : AH " & F
+ 1 & " ,AI " & F & " : AI " & F + 1 & " ,AJ " & F & " : AJ " & F + 1 & " ,AK " & F
& ": AK " & F + 1 & " ,AL " & F & " : AL " & F + 1 & " ,AM " & F & ": AM " & F +

lej
A

an
dr
o P

re
Valoracion de Derivados 122

1
i08 Range ( Rango ). Select
i09 Range ( "A " & F) . Activat e
ii0 With Selection
iii . HorizontalAlignmen t = xlCenter
ii2 . WrapText = False
ii3 . Orientation = 0
ii4 . AddIndent = False
ii5 . IndentLevel = 0
ii6 . ShrinkToFit = False
ii7 . ReadingOrder = xlContext
ii8 . M ergeCells = False
ii9 End With
i20 Selection . Merge
i2i
i22 Rang o = " A" & F & ": AK " & F + 1
i23 F ormat o BORDES
i24 Range ( Rango ). Select
i25 Selection . Borders ( xlDiagonalDown ). LineStyl e = xlNone
i26 Selection . Borders ( xlDiagonalUp ). LineStyle = xlNone
i27 With Selection
i28 . Borders ( xlEd geLe ft ) . LineStyle = xlContinuous
i29 . Borders ( xlEd geLe ft ) . ColorInde x = 15
i30 . Borders ( xlEd geLe ft ) . TintAndShade = 0
i3i . Borders ( xlEd geLe ft ) . Weigh t = xlThin
i32
i33 . Borders ( xlEdgeTo p ). LineStyl e = xlContinuou s
i34 . Borders ( xlEdgeTo p ). Color Index = 15
i35 . Borders ( xlEdgeTo p ). TintAndShade = 0
i36 . Borders ( xlEdgeTo p ). Weight = xlThin
i37
i38 . Borders ( xlEdgeBottom ) . LineStyle = xlContinuous
i39 . Borders ( xlEdgeBottom ) . Co lorIndex = 15
i40 . Borders ( xlEdgeBottom ) . TintAndShade = 0
i4i . Borders ( xlEdgeBottom ) . Weight = xlThin
i42
i43 . Borders ( xlEdgeRight ). LineStyle = xlContinuou s
i44 . Borders ( xlEdgeRight ). C olor Index = 15
i45 . Borders ( xlEdgeRight ). T intAndShad e = 0
i46 . Borders ( xlEdgeRight ). Weight = xlThin
i47
i48 . Borders ( xlInsideVertical ). LineStyl e = xlContinuous
i49 . Borders ( xlInsideVertical ). Col orIndex = 15
i50 . Borders ( xlInsideVertical ). TintAndShade = 0
i5i . Borders ( xlInsideVertical ). Weight = xlThin
i52 End With
i53 Selection . Borders ( xlInsideHorizontal ). LineStyle = xlNone
i54
i55 ActiveShee t . Protect ( Password := Psw , DrawingObjects := True , Contents :=
True , Scenario s := True , UserInterfaceOnly := False ,
AllowFormattingCell s := True , AllowFormattingColumns := False ,
AllowFormattingRow s := False , AllowInsertingColumn s := False ,
AllowInsertingRow s := False , AllowInsertingHyperlinks := False ,
AllowDeletingColumn s := False , AllowDeletingRows := False , AllowSortin g
:= True , AllowFilterin g := True , AllowUsingPivotTables := True ) = True
i56 ActiveShee t . EnableSelection = xlUnlockedCell s
i57 Applicatio n . ScreenUpdating = True
i58
i59 End Sub

i Sub VOpcion ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a lee todo s los dato s necesarios para *
4 * valora r las OPCIONES *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *

lej
A

an
dr
o P

re
Valoracion de Derivados 123

6
7 Dim Sub yacente As Intege r
8 Dim Div idendos As Varian t
9
i0 Dim S As Doub le
ii Dim X As Doub le
i2 Dim r As Doub le
i3 Dim t1 As Double
i4 Dim t As Doub le
i5 Dim q As Doub le
i6 Dim Divs () As Double
i7 Dim Sigma As Double
i8 Dim nsteps As Double
i9
20 Dim Price As Double
2i Dim Delta As Double
22 Dim Gamma As Double
23 Dim Theta As Double
24 Dim Vega As Double
25 Dim Rho As Do uble
26
27 Dim ImplyVol As Boolean
28
29 Dim i As Integer
30
3i Dim dt As Double
32 Dim P_Sigm a As Double
33 Dim P_Rho As Double
34 Dim Sigma_Mi n As Double
35 Dim Delta_Sigm a As Double
36 Dim Delta_ q As Double
37 Dim iter As Double
38
39 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
40 L ectur a de Variable s
4i %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42
43 Subyace nte = Sheets (" CODIGO "). Cells (105 , 102)
S ubyacent e de la Opcion
44
45 S = CDbl ( Sheets ( " CODIGO " ). Cells (95 , 102) )
Precio Spot del subyacente
46 X = CDbl ( Sheets ( " CODIGO " ). Cells (102 , 102) )
Precio de Ej ercici o
47 r = CDbl ( Sheets ( " CODIGO " ). Cells (97 , 102) )
Tas a libre de Riesg o
48 t = CDbl ( Sheets ( " CODIGO " ). Cells (101 , 102) )
Tiempo al ve ncimient o
49 If Sub yacente = 2 Then
50 q = CDbl ( Sheets ( " CODIGO " ). Cells (98 , 102) )
Tas a libre de Riesg o Extranjer a
5i ElseIf Su byacente = 3 Then
52 q = CDbl ( Sheets ( " CODIGO " ). Cells (99 , 102) )
R endimient o Anua l del ndice
53 End If
54 Divide ndos = Sheets (" CODIGO "). Range ( " CW109 : CX118 " ). Value
55 Call VariantToArra y ( Dividendos , Divs () )
56 Sigma = CD bl ( Sheets ( " CODIGO "). Cells (96 , 102) )
V olatilida d del subyacente
57 nsteps = CDbl ( Sheets ( " CODIGO "). Cells (103 , 102) )
Numero de Pasos del Arbo l binomial
58 iAmerican = Sheets (" CODIGO ") . Cells (91 , 102)
A merican a o Europea
59 iCall = Sheets (" CODIGO "). Cells (92 , 102)
D erech o a Comprar ( Call ) o a

lej
A

an
dr
o P

re
Valoracion de Derivados 124

Vender ( Put )
60 iEquity = Sheets (" CODIGO " ). Cells (106 , 102)
S ubyacent e Accione s
6i
62 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
63 I n i c i a l i za c i o n de Variables
64 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
65
66 t1 = 0#
67
68 Price = 0
69 P_Sigma = 0
70 P_Rho = 0
7i
72 Delta = 0
73 Gamma = 0
74 Theta = 0
75
76 Delta_q = 0
77 Delta_Sigm a = 0
78
79 Call VDataOpciones (S , X , r , t , q , Sigma , nsteps , ImplyVol ,
Sub yace nte )
80 If OpcVDataOpcione s = False Then
8i OpcionValorada = False
82 Exit Sub
83 End If
84 S = CDbl ( Sheets (" CODIGO ") . Cells (95 , 102) )
85
86 dt = t / nsteps
87 Sigma_Min = (r - q) * Sqr ( dt ) * 0.00001
88 If Sigma_Min < 0# Then
89 Sigma_Min = 0#
90 End If
9i
92 iter = ValOpcBinom (S , X , r + 0.01 , t1 , t , q + Delta_q , Divs () ,
Sigma , nsteps , iAmerica n , iCall , iEquity , P_Rho , Delta_Sigma ,
Delta_Sigma , Delta_Sigm a )
93
94 OpcPrecio = Price
95
96 End Sub

i Sub VDataOpcione s (S , X , r , t , q , Sigma , nsteps , Subyacente )


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valid a todo s los datos necesarios *
4 * para valorar las OPCIONES *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Dim td As Double
8
9 If S <= 0 Then
i0 OpcVDataOpciones = False
ii Exit Sub
i2 End If
i3
i4 If X <= 0 Then
i5 OpcVDataOpciones = False
i6 Exit Sub
i7 End If
i8
i9 If r <= -0.1 Or r > 1 Then
20 OpcVDataOpciones = False
2i Exit Sub
22 End If

lej
A

an
dr
o P

re
Valoracion de Derivados 125

23
24 If t <= 0 Then
25 OpcVDataOpcione s = False
26 Exit Sub
27 End If
28
29 If Subyacen te = 2 Then
30 If q <= -0.1 Or q > 1 Then
3i OpcVDataOpcione s = False
32 E xit Sub
33 End If
34 ElseIf Su byacente = 3 Then
35 If q < 0 Or q > 1 Then
36 OpcVDataOpcione s = False
37 E xit Sub
38 End If
39 End If
40
4i If Subyacen te = 1 Then
42 For i = 1 To 10
43 td = CDbl ( Sheets (" CODIGO " ). Cells (108 + i , 101) )
44 If td >= 0 Then
45 S = S - ( CDbl ( Sheets (" CODIGO " ). Cells (108 + i , 102) ) *
Exp (- r * td ) )
46 End If
47 Next
48 If S <= 0 Then
49 OpcVDataOpcione s = False
50 E xit Sub
5i End If
52 End If
53
54 If ( Sigma < 0.0025 Or Sigma > 2) Then
55 OpcVDataOpcione s = False
56 Exit Sub
57 End If
58
59 If nsteps < 2 Or nsteps > 500 Then
60 OpcVDataOpcione s = False
6i Exit Sub
62 End If
63
64 OpcVDataOpcione s = True
65
66 End Sub

i Sub VariantToArra y ( Datos_E n As Variant , a () As Double )


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a convierte un camp o varian t en una *
4 * mariz double . *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Dim temp As Variant
8 Dim i , j , imax , jmax , imin , jmin
9
i0 temp = Datos_En
ii
i2 imin = LBound ( temp , 1)
i3 jmin = LBound ( temp , 2)
i4
i5 imax = UBound ( temp , 1)
i6 jmax = UBound ( temp , 2)
i7
i8 ReDim a ( imax - imin , jmax - jmin )
i9 For i = 0 To ( imax - imin )

lej
A

an
dr
o P

re
Valoracion de Derivados 126

20 For j = 0 To ( jmax - jmin )


2i a (i , j) = CDbl ( temp ( i + imin , j + jmin ) )
22 Next j
23 Next i
24
25 End Sub

i Sub ValorarO pc ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valor a las OPCIONES que hay VIGENTES *
4 * en la tabla de la hoja OPCIONES . *
5 * Las OPCIONES que no esta n vigente s conservan su *
6 * valor para determinar ganancias o per did a s del *
7 * portafoli o . *
8 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
9
i0 Dim Cam po1 As Integer
ii Dim Cam po2 As Integer
i2 Dim i As Integer
i3 Dim j As Integer
i4 Dim FechaVal As Date
i5
i6 Call FechaSeries ( Cells (3 , 3) )
i7 If RVa lSeries = False Then
i8 Exit Sub
i9 End If
20
2i Call VerificarVigenciaOpc
22 Call ContarVigentesOpc
23
24 Campo1 = 1
25 Campo2 = OpcVigentes
26 FechaVal = Sheets (" OPCIONE S ") . Cell s (3 , 3)
27 frmValOpc . PrgBar = 0
28 frmValOpc . lblProgreso = " Calcul ando ... "
29
30 frmValOpc . Show (0)
3i Sheets (" CODIGO ") . Cells (88 , 91) = FechaVa l
32
33 For i = 1 To Campo2
34
35 frmValOpc . PrgBar = (i / Campo2 ) * 100
36 Campo1 = i
37 frmValOpc . lblProgreso = " Valorando OPCI ON " & Campo1 & " de " &
Campo2
38
39 Call ClasificacionOpc ( OpcVigentesPos ( i))
40
4i Sheets (" CODIGO ") . Cells (91 , 101) = Sheets ( " OPCIONES " ) . Cells (
OpcVigentesPos ( i) , 5)
42 Sheets (" CODIGO ") . Cells (92 , 101) = Sheets ( " OPCIONES " ) . Cells (
OpcVigentesPos ( i) , 6)
43 Sheets (" CODIGO ") . Cells (95 , 101) = Sheets ( " OPCIONES " ) . Cells (
OpcVigentesPos ( i) , 7)
44 Sheets (" CODIGO ") . Cells (101 , 101) = Sheets ( " OPCIONES " ) . Cells (
OpcVigentesPos ( i) , 8)
45 Sheets (" CODIGO ") . Cells (102 , 102) = Sheets ( " OPCIONES " ) . Cells (
OpcVigentesPos ( i) , 16)
46 Sheets (" CODIGO ") . Cells (105 , 101) = OpcSubyacente
47
48 Sheets (" CODIGO ") . Range (" CW109 : CX118 ") . ClearContents
49
50 If Sheets ( " CODIGO " ). Cells (106 , 102) = 1 Then
5i For j = 1 To 10
52 If (( Sheets (" OPCIONE S " ). Cells ( OpcVigentesPos (i ) , 17 + j

lej
A

an
dr
o P

re
Valoracion de Derivados 127

) - FechaVa l ) / Sheets (" CODIGO " ). Cells (90 , 99) ) > 0


Then
53 Sheets (" CODIGO ") . Cells (108 + j , 101) = ( Sheets ("
OPCIONES ") . Cells ( OpcVigentesPos ( i) , 17 + j) -
FechaVal ) / Sheets ( " CODIGO ") . Cells (90 , 99)
54 Sheets (" CODIGO ") . Cells (108 + j , 102) = Sheets ( "
OPCIONES ") . Cells ( OpcVigentesPos ( i) + 1, 17 + j )
55 End If
56 N ext
57 End If
58
59 Call VOpcion
60
6i Sheets (" OPCIONES "). Cells ( OpcVigentesPos ( i) , 29) = Sheets ( "
CODIGO ") . Cells (97 , 102)
62 Sheets (" OPCIONES "). Cells ( OpcVigentesPos ( i) , 30) = Sheets ( "
CODIGO ") . Cells (88 , 102)
63 Sheets (" OPCIONES "). Cells ( OpcVigentesPos ( i) , 32) = Sheets ( "
CODIGO ") . Cells (95 , 102)
64 Sheets (" OPCIONES "). Cells ( OpcVigentesPos ( i) , 34) = OpcPrecio
65 Sheets (" OPCIONES "). Cells ( OpcVigentesPos ( i) , 35) = Sheets ( "
CODIGO ") . Cells (96 , 102)
66 Sheets (" OPCIONES "). Cells ( OpcVigentesPos ( i) , 37) = ( Sheets ( "
OPCIONES ") . Cells ( OpcVigentesPos ( i) , 34) - Sheets ( " OPCIONES " ).
Cells ( OpcVigentesPos (i ) , 14) ) * Sheets ( " OPCIONES " ). Cells (
OpcVigentesPo s ( i) , 10)
67
68 Sheets (" OPCIONES "). Cells ( OpcVigentesPos ( i) , 2) = FechaVal
69
70 Next
7i
72 frmValOpc . Hide
73
74 End Sub

i Sub VerificarVigenciaOp c ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a recorre las OPCIONE S ACTIVAS y *
4 * verific a una a una si a la fech a de v alo raci o n *
5 * estan vigente s o no . *
6 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
7
8 Dim N As Integer
9 Dim Fi As Integer
i0 Dim i As Integer
ii Dim FechaVal As Date
i2 Dim Col As Long
i3
i4 Col = 28 C olumn a en la que
esta el camp o " Vigent e "
i5
i6 Fi = Shee ts (" CODIGO "). Cells (7 , 96)
i7 N = Sheets (" CODIGO " ). Cells (8 , 96)
i8 FechaVal = Sheets (" OPCIONE S " ). Cells (3 , 3)
i9
20 For i = 1 To N
2i If Sheets ( " OPCIONES " ). Cells ( Fi + (i - 1) * 2 , 3) <= FechaVal
And Sheets ( " OPCIONES " ). Cells ( Fi + (i - 1) * 2, 8) >= FechaVa l
Then
22 S heets (" OPCIONES " ). Cells ( Fi + ( i - 1) * 2 , Col ) = " SI "
23 S heets (" OPCIONES " ). Cells ( Fi + ( i - 1) * 2 , 36) = ( Sheets ( "

OPCIONES ") . Cells ( Fi + (i - 1) * 2, 8) - FechaVal ) / Sheets (


" CODIGO " ). Cells (90 , 99)
24 Else

lej
A

an
dr
o P

re
25 S heets (" OPCIONES " ). Cells de
Valoracion ( FiDerivados
+ (i - 1) * 2 , Col ) = " NO " 128

lej
A

an
dr
o P

re
Valoracion de Derivados 129

26 Sheets (" OPCIONES "). Cells ( Fi + (i - 1) * 2, 36) = " "


27 End If
28 Next
29
30 End Sub

i Sub ContarVigentesOp c ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a cuent a las OPCIONES que estan *
4 * vigente s de la tabla . *
5 * Esta rutin a t ambi e n construy e un vector con las *
6 * filas en las que estan las OPCIONE S vigentes . *
7 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
8
9 Dim N As Integer
i0 Dim Fi As Integer
ii Dim i As Integer
i2 Dim Col As Long
i3
i4 Col = 28 C olumn a en la que
esta el camp o " Vigent e "
i5
i6 Fi = Sheets (" CODIGO "). Cells (7 , 96)
i7 N = Sheets (" CODIGO " ). Cells (8 , 96)
i8
i9 OpcVigente s = 0
20 ReDim OpcVigentesPos (N )
2i
22 For i = 1 To N
23 If Sheets ( " OPCIONES " ). Cells ( Fi + (i - 1) * 2 , Col ) = " SI " Then
24 OpcVigentes = OpcVigentes + 1
25 OpcVigentesPos ( OpcVigentes ) = Fi + ( i - 1) * 2
26 End If
27 Next
28
29 ReDim Preserve OpcVigentesPos ( OpcVigentes )
30
3i End Sub

i Sub ClasificacionOp c (F , Optional Escrit o = True )


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a categoriza la OPCI ON que esta en *
4 * fila F y me entreg a : *
5 * Subyacente : Divisas , Inte r e s o T tu lo s *
6 * S ub Su bya ce nt e : USD , DTF , UVR , TES20 ... *
7 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
8
9 Dim Tss As String
i0
ii If Escrit o = True Then
i2 Tss = Cells (F , 7)
i3 Else
i4 Tss = frmNewOpc . cmbTipoSubyacente
i5 End If
i6
i7
i8 Sheets (" CODIGO ") . Cells (18 , 92) = Tss
i9
20 OpcSubyacent e = Mid ( Sheets (" CODIGO ") . Cells (19 , 92) , 1 , 2)
2i
22 End Sub

Validaciones
lej
A

an
dr
o P

re
Valoracion de Derivados 130

i Sub Vfr mNewFrd ()


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valida todo s los capos del Form *
4 * frmNewFr d *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 If frmNewFrd . txb Entidad = "" Then
8 Call MensajeError1 (" Entida d " )
9 RValForm = False
i0 Exit Sub
ii End If
i2
i3 If frmNewFrd . cmbTipo = "" Then
i4 Call MensajeError1 (" Tipo de contrat o " )
i5 RValForm = False
i6 Exit Sub
i7 End If
i8
i9 If frmNewFrd . cmb Entrega = "" Then
20 Call MensajeError1 (" Entreg a " )
2i RValForm = False
22 Exit Sub
23 End If
24
25 If frmNewFrd . cmbSubyacente = "" Then
26 Call MensajeError1 (" Sub yace nte ")
27 RValForm = False
28 Exit Sub
29 End If
30
3i If frmNewFrd . cmbTipoSubyacente = "" Then
32 Call MensajeError1 (" Tipo de Sub yace nte ")
33 RValForm = False
34 Exit Sub
35 End If
36
37 If frmNewFrd . dtpkOperacion < Date Then
38 Call MensajeError1 (" Fecha operaci on " )
39 RValForm = False
40 Exit Sub
4i End If
42
43 If frmNewFrd . dtpkCumplimiento <= Date Or frmNewFr d . dtpkCumplimient o
<= frmNewFrd . dtpkOperacion + 2 Then
44 Call MensajeError1 (" Cumplimiento ")
45 RValForm = False
46 Exit Sub
47 End If
48
49 If IsNumeric ( frmNewFrd . txbMonto ) = False Or frmNewFr d . txbMont o <= 0
Then
50 Call MensajeError1 (" Monto contrat o ")
5i RValForm = False
52 Exit Sub
53 End If
54
55 If IsNumeric ( frmNewFrd . txbPrecio ) = False Or frmNewFrd . txbPrecio <=
0 Then
56 Call MensajeError1 (" Precio pactado ")
57 RValForm = False
58 Exit Sub
59 End If
60
6i If FrdFechaLi q = 0 Then

lej
A

an
dr
o P

re
Valoracion de Derivados 131

62 Call MensajeError3
63 RValForm = False
64 Exit Sub
65 End If
66
67 RValForm = True
68
69 End Sub

i Sub VfrmNewFrd_ 1 ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valida todo s los capos del Form *
4 * frmNewFrd_ 1 *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 If IsNumeric ( frmNewFrd_1 . txbMonto ) = False Or frmNewFrd_ 1 . txbMonto
< 0 Then
8 Call MensajeError1 (" Monto ")
9 RValForm = False
i0 Exit Sub
ii End If
i2
i3 RValForm = True
i4
i5 End Sub

i Sub VfrmNewFrd_ 2 ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valida todo s los capos del Form *
4 * frmNewFrd_ 2 *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Dim p1 As Date
8 Dim p2 As Date
9 Dim p3 As Date
i0 Dim p4 As Long
ii
i2 If frmNewFrd_ 2 . txbEntidad = "" Then
i3 Call MensajeError1 (" Entida d " )
i4 RValForm = False
i5 Exit Sub
i6 End If
i7
i8 If frmNewFrd_2 . txbClase = "" Then
i9 Call MensajeError1 (" Clase de T tulo ")
20 RValForm = False
2i Exit Sub
22 End If
23
24 If IsNumeric ( frmNewFrd_2 . txbPlazo ) = False Or frmNewFrd_ 2 . txbPlazo
<= 0 Then
25 Call MensajeError1 (" Plazo de Madu racion ")
26 RValForm = False
27 Exit Sub
28 End If
29
30 If IsNumeric ( frmNewFrd_2 . txbTfacial ) = False Or frmNewFrd_ 2 .
txb Tfac ial <= 0 Then
3i Call MensajeError1 (" Tasa Facial ")
32 RValForm = False
33 Exit Sub
34 End If
35
36 If frmNewFrd_2 . cmbPeriodicidad = " " Then

lej
A

an
dr
o P

re
Valoracion de Derivados 132

37 Call MensajeError1 (" Periodicidad ")


38 RValForm = False
39 Exit Sub
40 End If
4i
42 If frmNewFrd_ 2 . cmbModalidad = "" Then
43 Call MensajeError1 (" Modalida d ")
44 RValForm = False
45 Exit Sub
46 End If
47
48 If frmNewFrd_ 2 . opbCuponSi . Value = True Then
49
50 If IsNumeric ( frmNewFrd_2 . txbMontoCupon ) = False Or frmNewFrd_ 2 .
txbMontoCupo n <= 0 Then
5i C all MensajeError1 (" Monto ")
52 RValForm = False
53 E xit Sub
54 End If
55
56 p1 = frmNewFrd_2 . dtpkFechaCupon
57 p2 = frmNewFrd . dtpkOperacion
58 p3 = frmNewFrd . dtpkCumplimiento
59 p4 = frmNewFrd_2 . txbPlazo
60 If p1 < p2 Or p2 + p4 < p1 Or p1 > p3 Then
6i C all MensajeError1 (" Fecha ")
62 RValForm = False
63 E xit Sub
64 End If
65
66 Else
67
68 End If
69
70 RValForm = True
7i
72 End Sub

i Sub VfrmNewFrd_ 3 ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valida todo s los capos del Form *
4 * frmNewFrd_ 3 *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Dim p1 As Date
8 Dim p2 As Date
9 Dim p3 As Date
i0
ii p1 = frmNewFrd_3 . dtpkFechaLiquidacion
i2 p2 = frmNewFrd . dtpkOperacion
i3 p3 = frmNewFrd . dtpkCumplimiento
i4 If p1 <= p2 Or p1 >= p3 Then
i5 C all MensajeError1 (" Fecha L iq ui d ac i o n ")
i6 RValForm = False
i7 E xit Sub
i8 End If
i9
20 RValForm = True
2i
22 End Sub

i Sub Vfr mNewFut ()


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valid a todo s los capos del Form *

lej
A

an
dr
o P

re
Valoracion de Derivados 133

4 * frmNewFu t *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 If frmNewFut . txb Entidad = "" Then
8 Call MensajeError1 (" Entida d " )
9 RValForm = False
i0 Exit Sub
ii End If
i2
i3 If frmNewFut . cmbTipo = "" Then
i4 Call MensajeError1 (" Tipo de contrat o ")
i5 RValForm = False
i6 Exit Sub
i7 End If
i8
i9 If frmNewFut . cmb Entrega = "" Then
20 Call MensajeError1 (" Entreg a " )
2i RValForm = False
22 Exit Sub
23 End If
24
25 If frmNewFut . cmbSubyacente = "" Then
26 Call MensajeError1 (" Sub yace nte ")
27 RValForm = False
28 Exit Sub
29 End If
30
3i If frmNewFut . cmbTipoSubyacente = "" Then
32 Call MensajeError1 (" Tipo de Subyacente ")
33 RValForm = False
34 Exit Sub
35 End If
36
37 If frmNewFut . dtpkOperacion < Date Then
38 Call MensajeError1 (" Fecha operacion " )
39 RValForm = False
40 Exit Sub
4i End If
42
43 If frmNewFut . dtpkCumplimiento <= Date Or frmNewFu t . dtpkCumplimient o
<= frmNewFut . dtpkOperacion + 2 Then
44 Call MensajeError1 (" Cumplimiento ")
45 RValForm = False
46 Exit Sub
47 End If
48
49 If IsNumeric ( frmNewFut . txbMonto ) = False Or frmNewFu t . txbMont o <= 0
Then
50 Call MensajeError1 (" Monto contrat o ")
5i RValForm = False
52 Exit Sub
53 End If
54
55 If IsNumeric ( frmNewFut . txbNomi nal ) = False Or frmNewFut . txb Nominal
<= 0 Then
56 Call MensajeError1 (" Nomina l Contrato ")
57 RValForm = False
58 Exit Sub
59 End If
60
6i If IsNumeric ( frmNewFut . txbPrecio ) = False Or frmNewFut . txbPrecio <=
0 Then
62 Call MensajeError1 (" Precio pactado ")
63 RValForm = False
64 Exit Sub

lej
A

an
dr
o P

re
Valoracion de Derivados 134

65 End If
66
67 RValForm = True
68
69 End Sub

i Sub Vfr mNewOpc ()


2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valida todo s los capos del Form *
4 * frmNewOp c *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 If frmNewOpc . txb Entidad = "" Then
8 Call MensajeError1 (" Entida d " )
9 RValForm = False
i0 Exit Sub
ii End If
i2
i3 If frmNewOpc . cmb Derecho = "" Then
i4 Call MensajeError1 (" Tipo de contrato ")
i5 RValForm = False
i6 Exit Sub
i7 End If
i8
i9 If frmNewOpc . cmb Entrega = "" Then
20 Call MensajeError1 (" Entreg a " )
2i RValForm = False
22 Exit Sub
23 End If
24
25 If frmNewOpc . cmbSubyacente = "" Then
26 Call MensajeError1 (" Sub yace nte ")
27 RValForm = False
28 Exit Sub
29 End If
30
3i If frmNewOpc . cmbTipoSubyacente = "" Then
32 Call MensajeError1 (" Tipo de Sub yace nte ")
33 RValForm = False
34 Exit Sub
35 End If
36
37 If frmNewOpc . dtpkOperacion < Date Then
38 Call MensajeError1 (" Fecha operaci on " )
39 RValForm = False
40 Exit Sub
4i End If
42
43 If frmNewOpc . dtpkCumplimiento <= Date Or frmNewOp c . dtpkCumplimient o
<= frmNewOpc . dtpkOperacion + 3 Then
44 Call MensajeError1 (" Cumplimiento ")
45 RValForm = False
46 Exit Sub
47 End If
48
49 If IsNumeric ( frmNewOpc . txbMonto ) = False Or frmNewOp c . txbMont o <= 0
Then
50 Call MensajeError1 (" Numerdo de opciones " )
5i RValForm = False
52 Exit Sub
53 End If
54
55 If IsNumeric ( frmNewOpc . txbPrecio ) = False Or frmNewOpc . txbPrecio <=
0 Then
56 Call MensajeError1 (" Precio pactado ")

lej
A

an
dr
o P

re
Valoracion de Derivados 135

57 RValForm = False
58 Exit Sub
59 End If
60
6i If IsNumeric ( frmNewOpc . txbPrima ) = False Or frmNewOp c . txbPrim a <= 0
Then
62 Call MensajeError1 (" Prima ")
63 RValForm = False
64 Exit Sub
65 End If
66
67 RValForm = True
68
69 End Sub

i Sub VfrmNewOpc_ 1 ()
2 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
3 * Esta rutin a valida todo s los capos del Form *
4 * frmNewOpc_ 1 *
5 * * * * * * * * * ** * * * * * ** * * * ** * * * * * * * ** * * * * ** * * * * ** * * ** * * *
6
7 Dim k As Integer
8 Dim Celda As Variant
9
i0 Dim F_Operacion_o p As Date
ii Dim F_Cumplimiento_o p As Date
i2
i3
i4 F_Operacion_o p = frmNewOp c . dtpkOperacion
i5 F_Cumplimiento_o p = frmNewOp c . dtpkCumplimiento
i6
i7 For k = 1 To 10
i8 Celda = frmNewOpc_1 . spsDividendos . Cells (1 + k , 2)
i9 If IsNumeric ( Celda ) = Fals e And Celda <> "" Then
20 Call MensajeError1 (" Valor ")
2i RValForm = False
22 Exit Sub
23 End If
24 Next
25
26 For k = 1 To 10
27 Celda = frmNewOpc_1 . spsDividendos . Cells (1 + k , 1)
28 If IsDate ( Celda ) = False And Celda <> "" Then
29 Call MensajeError1 (" Fecha ")
30 RValForm = False
3i Exit Sub
32 Else
33 If k = 1 Then
34 If Celda < F_Operacion_op Or Celda > F_Cumplimiento_o p
Then
35 Call MensajeError2
36 RValForm = False
37 Exit Sub
38 End If
39 Else
40 If Celda <> "" Then
4i If Celda < frmNewOpc_1 . spsDividendos . Cell s (k , 1) Or
Celda > F_Cumplimiento_op Then
42 Call MensajeError2
43 RValForm = False
44 Exit Sub
45 End If
46 End If
47 End If
48 End If

lej
A

an
dr
o P

re
Valoracion de Derivados 118

49 Next
50
5i RValForm = True
52
53 End Sub

i Sub MensajeError 1 ( Campo )


2 MsgBox ( " El campo -" & Campo & " - contien e in f orm a c i o n invalid a .
Por favor rev selo . " ) , vbCritica l , " ERROR - CAMPO CON IN F OR MA C I ON
INV ALIDA "
3 End Sub

i Sub MensajeError 2 ()
2 MsgBox ( " No puede haber fechas menores a la fecha de operacio n de
la OPCI ON , ni mayores a la fecha de cumplimiento de la misma . " &
Chr (13) & " Tenga en cuenta que los datos deben estar en orden
ascende nte ." ) , vbCritical , " ERROR - CAMPO CON INF O R MA C I ON INV ALIDA "
3 End Sub

i Sub MensajeError 3 ()
2 MsgBox ( " No se ha ingresad o la Fecha de L iq u id a ci o n ." & Chr (13) & "
Ingrese PARAMETRIZA R FRA y complet e la i nf o rm ac i o n necesari a ." ) ,
vbCritical , " ERROR - CAMPO CON IN F OR M AC I ON INV AL ID A "
3 End Sub

Variables
i * * * * ** * * * ** * * * ** * * * ** ** * ** * * * ** * * * ** * * * ** * * ** *
2 * VARIABLE S CO MOD IN * Estas son
variables que se usan en toda la ap lic aci o n .
3 * * * * ** * * * ** * * * ** * * * ** ** * ** * * * ** * * * ** * * * ** * * ** *
4 Public C1Formatofr m As Double Esta variabl e
sirv e para converti r los nu mer o s almacenados como texto en el
formulario en N UME RO S .
5 Public C2Formatofr m As Double Esta variabl e
sirv e para converti r los nu mer o s almacenados como texto en el
formulario en N UME RO S .
6 Public C3Formatofr m As Double Esta variabl e
sirv e para converti r los nu mer o s almacenados como texto en el
formulario en N UME RO S .
7 Public Fnum6d As String Esta variabl e
guarda un numer o con formato " Miles " y 6 decimales .
8 Public BUG As Byte
9 * * * * ** * * * ** * * * ** * * * ** ** * ** * * * ** * * * ** * * * ** * * ** *
i0
ii
i2 **********************************************
i3 * VARIABLE S VAL IDAC I ON *
i4 * * * * ** * * * ** * * * ** * * * *** * * ** * * * ** * * * ** * * * ** * * ** *
i5 Public RValFor m As Boolea n Esta variabl e
indica si el formulario paso todas la va lidaci one s .
i6 Public RV alSe ries As Boolean Esta variabl e
indica si todas las serie s tienen dato s para un fech a es pec fic a .
i7 * * * * ** * * * ** * * * ** * * * *** * * ** * * * ** * * * ** * * * ** * * ** *
i8
i9
20 * * * * ** * * * ** * * * ** * * * *** * * ** * * * ** * * * ** * * * ** * * ** *
2i * VARIABLE S AYUD A *
22 * * * * ** * * * ** * * * ** * * * *** * * ** * * * ** * * * ** * * * ** * * ** *
23 Public NameHyp 1 As String Esta variabl e
indica el formulari o que se debe carga r cuando se acude al hipervicul o
1.

lej
A

an
dr
o P

re
Valoracion de Derivados 119

24 Public NameHyp 2 As String Esta variabl e


indica el formulari o que se debe carga r cuando se acude al hipervicul o
2.
25 * * * * * * * * * * ** * * ** * * * *** * * ** * * * ** * * * ** * * * ** * * * **
26
27
28 * * * * * * * * * * ** * * ** * * * *** * * ** * * * ** * * * ** * * * ** * * * **
29 * VARIABLES FORWARD S *
30 * * * * * * * * * * ** * * ** * * * *** * * ** * * * ** * * * ** * * * ** * * * **
3i Public FrdTitulo () As Varian t Esta variabl e
guarda las condicione s de los T t ulo s de Rent a Fija .
32 Public FrdTipo As String Esta variabl e
guarda el tipo del contrato .
33 Public FrdSubyacente As String Esta variabl e
guarda el subyacent e del contrato .
34 Public FrdTipoSubyacente As String Esta variabl e
guarda el Sub Subyacente del contrato .
35 Public FrdVigentes As Intege r Esta variabl e
guarda el numero de FORWARDS vigentes a una fecha .
36 Public FrdVigentesPos () As Integer Esta variabl e
guarda la pos ici o n ( fila de la tabla ) en la que se encuentra n los
FORWARD S vigentes a una fech a .
37 Public FrdFechaLiq As Date Esta variabl e
guarda la Fecha de Liq uid aci o n cuando los FORWARDS son FRAs
38 * * * * * * * * * * ** * * ** * * * *** * * ** * * * ** * * * ** * * * ** * * * **
39
40
4i * * * * * * * * * * ** * * ** * * * *** * * ** * * * ** * * * ** * * * ** * * * **
42 * VARIABLES FUTUROS *
43 * * * * * * * * * * ** * * ** * * * *** * * ** * * * ** * * * ** * * * ** * * * **
44 Public FutVigentes As Intege r Esta variabl e
guarda el numero de FORWARDS vigentes a una fecha .
45 Public FutVigentesPos () As Integer Esta variabl e
guarda la pos ici o n ( fila de la tabla ) en la que se encuentra n los
FORWARD S vigentes a una fech a .
46 * * * * * * * * * * ** * * ** * * * *** * * ** * * * ** * * * ** * * * ** * * * **
47
48
49 * * * * * * * * * * ** * * ** * * * *** * * ** * * * ** * * * ** * * * ** * * * **
50 * VARIABLES OPCIONE S *
5i * * * * * * * * * * ** * * ** * * * *** * * ** * * * ** * * * ** * * * ** * * * **
52 Public OpcDividendos () As Varian t Esta variabl e
guarda los dividendos que paga una Accion .
53 Public OpcVDataOpciones As Boolea n Esta variabl e
guarda el resultad o de la v ali daci o n de los datos necesario s para
valorar una Opcion .
54 Public OpcionValorada As Boolea n Esta variabl e me
dice si la ocpion se valor o o no .
55 Public OpcVigentes As Intege r Esta v ari abl e
guarda el numero de OPCIONES vigentes a una fecha .
56 Public OpcVigentesPos () As Integer Esta v ari abl e
guarda la pos ici o n ( fila de la tabla ) en la que se encuentra n las
OPCIONE S vigentes a una fech a .
57 Public OpcSubyacente As String Esta variabl e
guarda el subyacent e del contrato .
58 Public OpcPrecio As Double Esta variebl e
guarda el precio de la OPCION .
59 * * * * * * * * * * ** * * ** * * * *** * * ** * * * ** * * * ** * * * ** * * * **

lej
A

an
dr
o P

re
Valoracion de Derivados 120

3.4 Pruebas de desempeno

Los distintos valoradores se probaron evaluando su exactitud con los precios que muestra el
mercado. En los casos en los que el valorador no estuvo cerca del precio de mercado se
explican posibles razones por las que esto puede suceder.
Se aclara que pese a las diferencias encontradas, las entidades pueden hacer uso del
valorador de derivados para llevar la contabilizacion de este tipo de instrumentos, ya
que las metodologas de valoracion utilizadas son las propuestas por la Superintendencia
Financiera de Colombia.
En el caso de las Opciones sera prudente primero hacer aprobarx7 la metodologa
por la Superintendencia para evitar algun inconveniente.

En el caso de los Forwards se realizo la comparacion con contratos de este tipo de


instrumentos pactados con Corficolombiana y Valores Bancolombia.
Para llevar a cabo las pruebas se tomaron como referencia 10 contratosx8 que tena
SURAMERICANA vigentes y se comparo la valoracion de estos, arrojada por el
aplicativo PORFINx9 contra la valoracion arrojada por el valorador constrdo por
el autor.
Para hallar la diferencia general, se valoraron los 10 contratos con cada aplicacion,
se calcularon las diferencias y se hallo un promedio ponderado por monto nominal
de cada contrato. Este procedimiento se traduce en la expresion (3.1x.

P
l0
()U Pi U Ui )x x V Ni
i=l
Diferencia % = P (3.1x
VN

Donde:

U Pi Utilidad/Perdida del contrato i arrojada por PORFIN.


U Ui Utilidad/Perdida del contrato i arrojada por el Valorador de Derivados.
V Ni Valor Nominal del contrato i.

La corroboracion de la valoracion de los Futuros no se realizo debido a que la me-


todologa propuesta para valorar esta clase de instrumentos financieros derivados
(Ver Seccion 1.4.3x implica que se tome diariamente el precio del mercado para su
valoracion. Este hecho implica que no tenga mucho sentido hacer esta comparacion
de precios.
27
Las entidades vigiladas deben aprobar previa utilizacion cualquier metodologa de valoracion dife-
rente a las propuestas por el organo de control. Las entidades que no son vigiladas no requieren este
tramite.
28
Por motivos de confidencialidad no es posible indicar las caractersticas de los contratos que se
utilizaron para efectuar las pruebas. Son contratos sobre TRM con vencimientos menores a un mes.
29
Aplicativo desarrollado por ALFA GL para la administracion de portafolios. Esta es la aplicacion

lej
A

an
dr
o P

re
que se utiliza en SURAMERICANA para la Valoracion
valoracion de de
los Derivados
portafolios. 121

lej
A

an
dr
o P

re
Valoracion de Derivados 122

Para la verificacion de la calidad de la valoracion en el caso de las Opciones, se


encontro un inconveniente procedimental ya que en Colombia no hay mercado
de Opciones por lo que no es posible hacer una comprobacion de este tipo. En
cambio se utiliz una corroboracion con un software para valorar derivados que

acompana el libro de Hull (2008x. Esta comprobacion permite validar la efectividad


del metodo por dos razones: la primera es que se pueden comparar los resultados
de los modelos porque en ambos se utiliza la misma metodologa de valoracion
Arboles Binomiales y la segunda es el prestigio con que cuenta el autor de
libro y desarrollador de la aplicacion.

RESULTADOSDE LAS PRUEBAS


La Tabla 3 muestra el error promedio encontrado en la valoracion de cada uno de los
instrumentos financieros derivados.

Instrumento Diferencia Diferencia %


Forwards 7.348 0.9139
Futuros
Opciones 0.0000 0.0000

Tabla 3: Resultados de las Pruebas de Desempeno

Los resultados obtenidos son muy satisfactorios y muestran que el valorador arroja
valoraciones correctas.
En el caso de los Forwards las diferencias30 se deben en su mayor medida a redondeos
que efectua PORFIN en la elaboracion de los calculos3l .
Las diferencias encontradas en la valoracion de las Opciones son 0 porque es un
metodo teorico de valoracion y en los dos modelos se usan los mismos supuestos para
valorar. Se recomienda que, con el objetivo de obtener valoraciones mas precisas, se
estudie con mas profundidad el tema de la estimacion de las volatilidades futuras de los
subyacentes.

30
Las diferencias se calcularon con cotizaciones de Forwards a un mes.
3i
El aplicativo en su funcionamiento interno hace redondeos a un numero de cifras menor al que

lej
A

an
dr
o P

re
efectua ExcelTM . Valoracion de Derivados 123

lej
A

an
dr
o P

re
Valoracion de Derivados 124

4. Conclusiones
La definicion de los criterios para la ponderacion de las metodologas de valoracion
mostro que en Colombia un aspecto muy importante a la hora de implementar me-
todologas de este tipo es el enfoque que los entes reguladores han manifestado con
respecto al tema. Este hecho sugiere que los entes reguladores en este caso la Super-
intendencia Financiera de Colombia cuentan con un buen prestigio y reconocimien-
to y que adicionalmente sus propuestas son tecnicamente correctas y aceptadas por
grandes empresas que participan en el mercado, sin dejar de lado que por lo general
son de facil implementacion.

Al momento de hacer la seleccion de las metodologas de valoracion se eligio, en la


medida de lo posible, las que han sido propuestas por el regulador la Superinten-
dencia Financiera de Colombia por la aceptacion que estas tienen y la facilidad de
implementarlas.

La utilizacion de Microsoft ExcelTM 2007 como plataforma para el desarrollo del


valorador de derivados conlleva la ventaja que la multitud de usuarios que lo podran
utilizar por ser este un programa muy utilizado comercialmente por toda clase de
personas y empresas.

La utilizacion de los instrumentos financieros derivados puede proveerles a los inver-


sionistas muchas ventajas en termino de cobertura de riesgos y de rentabilidad en el
caso de que sean utilizados con fines especulativos, sin embargo tambien son muchos
los riesgos que se corren cuando no se comprende el funcionamiento y la exposicion
que trae la utilizacion de dichos instrumentos.

Como parte fundamental del conocimiento de los instrumentos financieros derivados


y su funcionamiento, esta la forma como se forman los precios de estos en el mercado.
Para la obtencion de este conocimiento herramientas como la que se propone es este
trabajo pueden ayudar a un inversionista cualquiera a entender de forma comprensible
los principios de este proceso y ademas le permitiran trabajar con derivados en su
empresa ya que los podra contabilizar de acuerdo con las normas establecidas.

Debido a lo novedoso que todava son los instrumentos financieros derivados en Co-
lombia es importante que se genere un conocimiento abierto para todas las personas
en el que se expongan tanto los riesgos como los beneficios que estan asociados al
uso de estos instrumentos. Es este orden de ideas sera muy provechoso que en las
universidades se implementaran cursos sobre el tema para los estudiantes y en general
todo el publico que este interesado.

Con respecto a la metodologa para valorar las Opciones es muy importante estudiar
mas a profundidad la estimacion de la volatilidad futura de los subyacentes con el fin
de obtener mejores resultados.
La valoracion de este tipo de instrumentos es muy sensible a esta variable y por lo
tanto de su correcta estimacion depende en gran parte el resultado obtenido.

lej
A

an
dr
o P

re
Valoracion de Derivados 125

5. Recomendaciones
El tema de los Derivados Financieros es bastante amplio y comprende muchsimos en-
foques que no han sido abarcados en este trabajo. Esta razon lleva a que sean varios los
aspectos del Valorador de Derivados que pueden ser mejorados.

En primer lugar, los Swaps son instrumentos que estan adquiriendo mucha fuerza
en el mercado por su versatilidad y eficiencia para cubrir riesgos y para construir
instrumentos mas elaborados como los Productos Estructurados. Es importante
profundizar en este tema y construir un valorador sencillo que les permita a los
agentes utilizar este derivado.
Una buena alternativa es utilizar la metodologa propuesta por la Superintenden-
cia Financiera de Colombia que se explico en este trabajo. Esta es ampliamente
aceptada, de facil implementacion y ademas a las instituciones vigiladas por este
ente les gusta por ser, precisamente, la que propone el regulador.
Sin perjuicio de lo anterior, vale la pena estudiar otras metodologas que pueden
ser mas precisas o mas acertadas.

En segundo lugar, esta el tema de las volatilidades en la valoracion de las Opcio-


nes. De la precision y buena estimacion que se haga de esta variable depende la
calidad del precio que se obtiene con la metodologa de los Arboles Binomiales. Se
sugiere profundizar este tema y analizar el enfoque de las Sonrisas de Volatilidad
(Volatility Smiles x que es la grafica de la volatilidad implcita de las opciones en
funcion de su precio de ejercicio.
Otros enfoque que se pueden utilizar para mejorar la estimacion de la volatilidad
futura de un subyacente son los enfoques estadsticos basados en analisis de series
de tiempo o los modelos que analizan la informacion historica bajo metodologas
como el EWMA (Exponential Weighted Moving Average x.

En cuanto a las Opciones son muchas las variante que se han creado de este
tipo de instrumento financiero derivado; se propone se estudien estas variantes
y se incluyan dentro del valorador ya que permiten la cobertura de riesgos mas
elaborados y por lo tanto le amplan los horizontes de actuacion a inversionistas
y empresarios.

Por otro lado estan las recomendaciones con respecto a la capacitacion que las distintas
entidades, como la Bolsa de Valores de Colombia, deben dar a todas las personas sobre
el tema de los Instrumentos Financieros Derivados.
Estos instrumentos, hoy en da, representan grandes posibilidades para toda clase
de inversionistas y cuando son bien manejados permiten cubrir practicamente cualquier
riesgo.
Es fundamental que se cree una cultura sobre este tipo de inversiones que posibilite
la obtencion de resultados positivos y al mismo tiempo evite que se generen grandes
perdidas financieras por el mas uso o la falta de conocimiento al operar con estos ins-
trumentos. Ademas, en la medida en que sean mas las personas que utilizan estos pro-
lej
A

an
dr
o P

re
Valoracion de Derivados 126

ductos, el mercado empezara a adquirir mayor profundidad y se crearan instrumentos


sobre nuevos subyacentes.

lej
A

an
dr
o P

re
Valoracion de Derivados 127

Bibliografa
Alexander, Sharpe & Bailey (2003x, Fundamentos de Inversiones - Teoria y Practica, 3
edn, Prentice-Hall.

Asobancaria (2007x, Esquema de formacion del indicador bancario de referencia IBR.

Bank for International Settlements (2009x, Amounts outstanding of over-the-counter


(OTCx derivatives by risk category and instrument.

Black, Fischer and Scholes, Myron (1973x, The Pricing of Options and Corporate Lia-
bilities, Journal of Political Economy .

Bolsa de Valores de Colombia (2009x, Mercados Mensual - Septiembre.

Chance, Don (1998x, A Brief History of Derivatives, Essays in Derivatives .

Chicago Board Options Exchange (2009x, CBOE History.

Davies, Roy (2009x, Gambling on Derivatives.

De Castro, R. (2003x, El universo LaTeX, 2 edn, Universidad Nacional de Colombia.

De Lara, A. (2005x, Productos Derivados Financieros, Limusa.

Derivex (2009x, Mercado de Derivados de Commodities Energeticos.

Dubofsky & Miller (2003x, Derivatives - Valuation and Risk Management, Oxford Uni-
versity press.

Hull, J. C. (2008x, Options, Futures and Other Derivatives, 7 edn, Prentice-Hall.

Hull, J. C. (2009x, Introduccion a los Mercados de Futuros y Opciones, 6 edn, Prentice-


Hall.

J. C. Cox, S.A. Ross y M. Rubinstein (1979x, Options Pricing: A Simplified Approach,


Journal of Financial Economics .

Jorion, P. (2002x, Valor en Riesgo - El nuevo paradigma para el control de riesgos con
derivados, Limusa.

Lamothe & Perez (2006x, Opciones Financieras y Productos Estructurados, 3 edn, Mc-
Graw Hill.

Lora, E. (2005x, Tecnicas de medicion economica: Metodologa y aplicaciones en Co-


lombia, Alfaomega Grupo Editor S.A.

Lowenstein, R. (2000x, When Genius Failed: The Rise and Fall of Long-Term Capital
Management, Random House.

Rendleman, Richard J. and Bartter, Brit J. (1979x, Two-State Option Pricing, Journal
of Finance .
lej
A

an
dr
o P

re
Valoracion de Derivados 128

Superintendecia Financiera de Colombia (1995x, Resolucion 400.


Superintendecia Financiera de Colombia (2008x, Resolucion numero 0083 de 2008.

Superintendecia Financiera de Colombia (2009x, Circular Externa 021.

Vilarino, Perez & Garca (2008x, Derivados - Valor Razonable, Riesgos y Contabilidad
- Teora y Pactica, Prentice Hall.

Wilmott, Howison & Dewynne (1995x, The Mathematics of Financial Derivatives, Cam-
bridge.

lej
A

an
dr
o P

re
Valoracion de Derivados 129

Anexos
A. Instalacion de la aplicacion

Pese a que el valorador es un archivo de Microsoft ExcelTM 2007 con Visual BasicTM
for Applications (VBAx, es necesario hacer la instalacion de tres archivos para lograr
que la aplicacion funcione correctamente.
El siguiente instructivo se diseno para facilitar la instalacion de la aplicacion a los
usuarios finales, sin embargo, despues de probarlo se detectaron algunas fallas en el
instalador para el sistema operativo en espanol, debido a las diferencias que se presentan
en las rutas de instalacion por el idioma.
Si usted utiliza Microsoft Windows VistaTM en espanol y desea instalar la apli-
cacion, puede contactar al autor3x de este trabajo para obtener mas ayuda sobre la
instalacion.

1. Instalacion del Microsoft OfficeTM 2003 WEB Components 11


El Microsoft OfficeTM 2003 WEB Components 11 es un complemento que ve-
nia por defecto con el paquete Microsoft OfficeTM hasta la version 2003. Este
complemento permite, entre otras cosas, agregar componentes adicionales a los
formularios creados con Visual BasicTM for Applications (VBAx, como son Hojas
de Calculo, Graficos de OfficeTM entre otros.
En la aplicacion, el uso del complemento se limita a la utilizacion de una Hoja de
Calculo en un formulario, lo que le permite al usuario introducir los datos de los
dividendos pagados por una accion en el caso de existir, cuando se estan valorando
opciones con subyacente acciones.
Es posible encontrar este complemento en la pagina web de Microsoft33 , sin
embargo, ha sido incluido en el CD en el que se encuentra este documento.
Para instalarlo vaya a E:\Instalacion y localice el archivo Microsoft Office
2003 WEB Components 11. Ejecute este archivo y siga los pasos que se muestran
en el instalador.

2. Instalacion Microsoft Common Controls 2


El Microsoft Common Controls 2 es un complemento que permite agregar con-
troles adicionales a los Formularios creados con Visual BasicTM for Applications
(VBAx.
Es posible encontrar este complemento en la pagina web de Microsoft34 , sin
embargo, ha sido incluido en el CD en el que se encuentra este documento.
Para instalarlo vaya a E:\Instalacion y localice el archivo Microsoft Common
Controls 2. Una vez haya extaido el contenido de la carpeta, haga doble click en
el archivo mscomct2.bat.
32
mcalepe@eia.edu.co
33
http://www.microsoft.com/downloads/details.aspx?familyid=7287252c-402e-4f72-97a5-e0fd290d4b76\&displaylang=en
34
http://support.microsoft.com/kb/297381

lej
A

an
dr
o P

re
Valoracion de Derivados 130

3. Instalacion del Valorador


El archivo Valorador es un instalador especialmente creador para el Valorador de
Derivados. El instalador se encargara de crearle un acceso directo en el Escritorio
del archivo ValoradorDerivados.xlsx.
Para instalar el Valorador vaya a E:\Instalacion y localice el archivo ValoradorE
o ValoradorS. Debe seleccionar el que termina en S si el sistema operativo esta
en Espanol y el que termina en E si el sistema operativo esta en Ingles. Ejecute
este archivo y siga los pasos que se muestran en el instalador.

Una vez finalizada la instalacion de la aplicacion se debe abrir el archivo que esta en
el escritorio llamado ValoradorDerivados.xlsx y se deben habilitar las macros antes
de empezar. A continuacion se explican los pasos para efectuar este procedimiento.

1. Si el perfil de seguridad de ExcelTM 2007 permite la notificacion de macros, le


debe aparecer una imagen como la que se muestra en la Figura 33.
Haga click en el boton Opciones... y seleccione la opcion Habilitar este conte-
nido. Finalice con el boton Aceptar.

Figura 33: Habilitacion de Macros

2. Si el perfil no esta configurado para notificar cuando un libro tiene macros, enton-
ces debe ir al boton de Office que se muestra en la Figura 34 y hacer click en el
boton Opciones de Excel.
Una vez all seleccione la opcion Mostrar ficha Programador en la cinta de opcio-
nes y finalice con el boton Aceptar.

Figura 34: Boton de Office

Posteriormente vaya a la pestana Programador, como se muestra en la Figura 35 y


haga click en el boton Seguridad de macros, seleccione la opcion Deshabilitar
todas las macros con notificacion y finalice con el boton Aceptar.
Una vez terminados estos pasos, cierre ExcelTM 2007 y vuelva a abrir el archivo.
En esta ocasion podra hacer el procedimiento descrito en el numeral 1.

lej
A

an
dr
o P

re
Valoracion de Derivados 131

Figura 35: Pestana del Programador

lej
A

an
dr
o P

re
Valoracion de Derivados 132

lej
A

an
dr
o P

re

Anda mungkin juga menyukai