Autorizada la entrega del proyecto del alumno

:
Juan Hornedo López-Ibor
LOS DIRECTORES DE PROYECTO
José Villar Collado
Fdo:



Fecha:


Álvaro Sánchez Miralles
Fdo:



Fecha:
Vº Bº DEL COORDINADOR DE PROYECTOS


Susana Ortiz Marcos



Fdo:



Fecha:



2
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo



Sistema de inversión en
bolsa a corto plazo

Proyecto de fin de carrera
Ingeniería Industrial
Escuela Técnica Superior de Ingeniería (ICAI)
Universidad Pontificia Comillas



Autor: Juan Hornedo López-Ibor
Directores: José Villar Collado, Álvaro Sánchez Miralles

Madrid, junio de 2008

3
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
Sistema de inversión en bolsa a corto plazo
Autor: Juan Hornedo López-Ibor
Directores: José Villar Collado y Álvaro Sánchez Miralles
RESUMEN
Este proyecto consiste en un sistema que, realizando predicciones de
cotizaciones de acciones de diferentes empresas, ejecuta órdenes de compra y venta
con el objetivo de obtener una inversión rentable.
La obtención de un modelo que permita predecir valores futuros de acciones de
empresas con la suficiente precisión supondría disponer de una importante ventaja en
el mercado bursátil, que derivaría en la obtención de elevados beneficios. Por este
motivo, a lo largo de la historia se han desarrollado muchos estudios que tratan de
modelar el comportamiento de la Bolsa.
El valor de una acción a lo largo del tiempo es una serie financiera. En la
actualidad existen dos vías para tratar de predecir series temporales: modelos lineales
(ARIMA, ARCH-GARCH) y modelos no lineales (redes neuronales y algoritmos
genéticos). La aplicación de las redes neuronales a la predicción de series financieras
está creciendo en los últimos años, y parece ser un método eficaz y que presenta
multitud de oportunidades. Por este motivo este proyecto aplica las redes neuronales
para modelar la variación del valor de una acción a lo largo del tiempo y realizar
predicciones. Concretamente se va a tratar de realizar predicciones a corto plazo de
los valores de las acciones de 20 empresas del IBEX-35 (de las que se dispone de
información bursátil intradiaria).
Se parte de una breve introducción teórica sobre la inversión en bolsa a corto
plazo y sobre las propiedades de las series temporales financieras.
Seguidamente se ha realizado un estudio de las principales variables
independientes para predecir valores bursátiles a corto plazo, y se ha programado su
cálculo en el software Matlab.

4
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
Una vez determinadas las principales variables, se estudia la aplicación de redes
neuronales a la predicción de series financieras. Se estudiaran las distintas
posibilidades del modelado mediante redes neuronales y se terminará definiendo una
red neuronal apropiada para el tipo de modelado que se pretende realizar. Esta red
neuronal se ha programado con la toolbox de redes neuronales de Matlab.
Con la red neuronal definida, se realizan una serie de simulaciones de inversión a
partir de las predicciones de la red neuronal, definiéndose previamente unos
determinados criterios de toma de decisiones de inversión.
Por último se plantea la implementación del sistema de inversión en tiempo real
a través de la plataforma Visual Chart.















5
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
SUMMARY
This project develops a system to forecast stocks of different companies and
to execute buy-sell orders in order to achieve a profitable investment.
Obtaining a model to forecast quotations of companies could provide an
important advantage to achieve huge profits. For this reason, many studies
throughout history have attempted to model the operations of the Stock Market.
The value of a stock over time is known as a financial time-serie. Nowadays
there are two ways to predict temporal time-series: linear models (ARIMA, ARCH-
GARCH) and non-linear models (Neural Networks and Genetic Algorithms). In the
past few years the application of neural networks for predicting financial time-series
has increased, since it seems to be an efficient and resourceful system. For this
reason this project applies neural networks to model the variation of the value of a
stock throughout time and forecast its future values. Specifically this system forecast
the values of the stocks of twenty companies of the IBEX-35 index at short term. The
project starts with a brief introduction to the main characteristics of the short-term
investment and to the properties of the financial time-series.
Secondly, the project carries out a study of the principal independent variables to
model the Stock Market operation, as well as a program to calculate it in Matlab
software.
Once the main variables are determined, we will study the application of
neural networks for predicting financial time-series. The different possibilities of
modeling with neural networks will be studied, and an appropriated neural network
will be defined. This neural network will be programmed using the network toolbox
of Matlab.
With the neural network defined, a number of simulations will be realized
based in a determinate criterion of decision making.


6
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
Tabla de contenido
1. Introducción ............................................................................................................ 12
1.1 Motivación del proyecto ................................................................................... 13
1.2 Inversión en Bolsa ............................................................................................. 14
La Bolsa ............................................................................................................... 14
Acciones .............................................................................................................. 15
Inversión en acciones a corto plazo ..................................................................... 17
1.3 Predicción de series financieras ........................................................................ 18
Series financieras ................................................................................................. 19
Modelos de predicción de series financieras ....................................................... 19
1.4 Objetivos del proyecto ...................................................................................... 21
1.5 Metodología y recursos utilizados .................................................................... 21
2. Análisis de las entradas al modelo: ......................................................................... 23
2.1 Introducción ...................................................................................................... 24
Gráficos bursátiles ............................................................................................... 26
2.2 Obtención de datos históricos ........................................................................... 29
2.3 Lista de entradas al modelo ............................................................................... 33
2.4 Indicadores bursátiles ........................................................................................ 34
ADX (movimiento direccional)........................................................................... 34
MACD (convergencia-divergencia del promedio móvil) ................................... 42
OBV (Balance de volúmenes) ............................................................................. 46
RSI (índice relativo de fuerza) ............................................................................ 50
CCI (Índice de commodities) .............................................................................. 55
Estocástico ........................................................................................................... 58
2.5 Coeficiente de variación de un indicador respecto al precio de una acción ..... 61
2.6 Rutina de creación de entradas.......................................................................... 64

7
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
3. Redes neuronales .................................................................................................... 66
3.1 Introducción ...................................................................................................... 67
Definición ............................................................................................................ 67
Conceptos básicos ............................................................................................... 68
Tipos de redes neuronales ................................................................................... 71
Tipos de entrenamiento ....................................................................................... 74
3.2 Perceptrón ......................................................................................................... 77
Motivos de la elección del perceptrón multicapa ................................................ 77
Características del perceptrón multicapa ............................................................. 77
3.3 Entrenamiento de la red neuronal ..................................................................... 78
Introducción......................................................................................................... 78
Algoritmo de Levenberg-Marquardt ................................................................... 81
Implementación en Matlab .................................................................................. 89
3.4 Modelado de la red neuronal ............................................................................. 93
Algoritmo de entrenamiento ................................................................................ 94
Funciones de transferencia .................................................................................. 94
Número de capas ................................................................................................. 95
Número de neuronas en cada capa ...................................................................... 95
Red neuronal escogida......................................................................................... 98
4. Funcionamiento del sistema en tiempo real.......................................................... 100
4.1 Principio de funcionamiento ........................................................................... 101
Decisiones de inversión ..................................................................................... 104
Datos de partida ................................................................................................. 107
Programación..................................................................................................... 108
4.2 Modo de prueba .............................................................................................. 108
4.3 Funcionamiento con Visual Chart................................................................... 109

8
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
Sistema de escritura de cotizaciones (Escritura.vba) ........................................ 109
Sistema de ejecución de órdenes (ejecucion.vba) ............................................. 110
Función funcionamiento_tiempo_real ............................................................... 111
5. Resultados y conclusiones .................................................................................... 113
5.1 Precisión de las predicciones realizadas ......................................................... 114
5.2 Evaluación de las decisiones de inversión realizadas ..................................... 119
5.3 Evaluación del beneficio obtenido .................................................................. 121
6 Líneas de continuación .......................................................................................... 124
6.1 Incorporación de nuevas entradas ................................................................... 125
6.2 Red neuronal ................................................................................................... 125
6.3 Toma de decisiones ......................................................................................... 126
6.4 Funcionamiento en tiempo real con Visual Chart ........................................... 127
7. Anexos .................................................................................................................. 128
7.1 Fiscalidad de la inversión en Bolsa ................................................................. 129
Plusvalías y minusvalías .................................................................................... 129
Dividendos......................................................................................................... 129
7.2 Brokers online ................................................................................................. 130
¿Qué es un broker online? ................................................................................. 130
Elección del broker online ................................................................................. 131
7.3 Guía del usuario del sistema de inversión ....................................................... 132
Creación de una red neuronal ............................................................................ 132
Simulación de varios días .................................................................................. 135
Simulación en tiempo real con Visual Basic ..................................................... 140
8. Bibliografía ........................................................................................................... 143


9
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
Índice de gráficos
Gráfico 1: Gráfico lineal de Endesa 14/05/08 (Elaboración propia con Visual Chart)
.................................................................................................................................... 27
Gráfico 2: Gráfico barras de Endesa 14/05/08 (Elaboración propia con Visual Chart)
.................................................................................................................................... 28
Gráfico 3: Gráfico candelabro de Endesa 14/05/08 (Elaboración propia con Visual
Chart) .......................................................................................................................... 29
Gráfico 4: Porcentaje de periodos en los que se dispone de información .................. 32
Gráfico 5: Ejemplo1 ADX (Fuente: www.stockcharts.com) ..................................... 38
Gráfico 6: Ejemplo2 ADX (Fuente: FxStreet) ........................................................... 39
Gráfico 7: Ejemplo3 ADX en Acerinox (Elaboración propia con Visual Chart) ..... 41
Gráfico 8: Ejemplo1 MACD (Elaboración propia con Visual Chart) ....................... 44
Gráfico 9: Ejemplo2 MACD en ACS (Elaboración propia con Visual Chart) ......... 46
Gráfico 10: Ejemplo1 OBV (Fuente TradeStation) ................................................... 48
Gráfico 11: Ejemplo2 OBV (Elaboración propia con Visual Chart) ........................ 50
Gráfico 12: Ejemplo1 RSI (Fuente StockCharts) ....................................................... 53
Gráfico 13: Ejemplo2 RSI (Elaboración propia con Visual Chart)........................... 54
Gráfico 14: Ejemplo CCI (Elaboración propia con Visual Chart) ............................ 58
Gráfico 15: Ejemplo Estocástico en Unión Fenosa (Elaboración propia con Visual
Chart) .......................................................................................................................... 60
Gráfico 16: Prueba para determinar el nº de neuronas de la primera capa oculta ...... 96
Gráfico 17: Prueba para determinar el nº de neuronas de la segunda capa oculta ..... 97
Gráfico 18: Errores medios por periodo ................................................................... 114
Gráfico 19: Comparación del error obtenido con el error de la predicción ingenua 115
Gráfico 20: Porcentajes de acierto en las empresas estudiadas ................................ 117
Gráfico 21: % de aciertos de la predicción del sistema en comparación con la
predicción ingenua .................................................................................................... 118
Gráfico 22: nº de posiciones tomadas en cada una de las empresas ......................... 119
Gráfico 23: Evolución del dinero invertido .............................................................. 121
Gráfico 24: Evolución del beneficio acumulado ...................................................... 122

10
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
Gráfico 25: Comparación de la variación del índice IBEX-35 con el dinero invertido
.................................................................................................................................. 123
Gráfico 26: Comisiones de los Brokers Online ........................................................ 132
Índice de Tablas
Tabla 1: Empresas analizadas ..................................................................................... 26
Tabla 2: Lista de entradas al modelo *Ver apartados: Indicadores Bursátiles y
Estudio de las variaciones de los indicadores respecto al precio .............................. 34
Tabla 3: Funciones de transferencia para redes neuronales ........................................ 69
Tabla 4: Tamaño de los vectores de entrenamiento.................................................... 89
Tabla 5: Parámetros de la red neuronal escogida ....................................................... 98
Tabla 6: Brokers online que operan con Visual Chart .............................................. 131
Índice de Ilustraciones
Ilustración 1: Estructura básica del modelo ................................................................ 24
Ilustración 2: 20 redes neuronales .............................................................................. 25
Ilustración 3: Gráfico candelabro ............................................................................... 28
Ilustración 4: Estructura de los datos históricos necesarios ........................................ 30
Ilustración 5: Cálculo del Directional Movement ...................................................... 36
Ilustración 6: Función ADX ....................................................................................... 40
Ilustración 7: Ejemplo del cálculo de la Media Exponencial ..................................... 43
Ilustración 8: Función MACD .................................................................................... 45
Ilustración 9: Función OBV........................................................................................ 49
Ilustración 10: Función RSI ........................................................................................ 54
Ilustración 11: Función CCI ....................................................................................... 57
Ilustración 12: Función ESTOCASTICO ................................................................... 60
Ilustración 13: Función divergence ............................................................................ 62
Ilustración 14: Función Crea_Entradas ...................................................................... 64
Ilustración 15. Función calcula_entradas ................................................................... 65
Ilustración 16: Neurona .............................................................................................. 68
Ilustración 17: Ejemplo red neuronal ......................................................................... 70
Ilustración 18: Red de propagación hacia delante ...................................................... 72

11
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
Ilustración 19: Red neuronal recurrente ..................................................................... 73
Ilustración 20: Red neuronal estocástica .................................................................... 73
Ilustración 21: Red neuronal modular ........................................................................ 74
Ilustración 22: Mínimos locales.................................................................................. 80
Ilustración 23: Nomenclatura de la red neuronal ........................................................ 82
Ilustración 24: Algoritmo de Levenberg-Marquardt (Elaboración propia) ................ 88
Ilustración 25: Datos para el entrenamiento ............................................................... 90
Ilustración 26: Entrenamiento en Matlab ................................................................... 93
Ilustración 27: Nomenclatura del las capas de una red neuronal................................ 95
Ilustración 28: Estructura de la Red Neuronal escogida (Elaboración propia) .......... 99
Ilustración 29: Rutina de funcionamiento en tiempo real ......................................... 101
Ilustración 30: arquitectura del programa ................................................................. 103
Ilustración 31: Árbol de decisión .............................................................................. 106
Ilustración 32: Función modoprueba ........................................................................ 108
Ilustración 33: Gráfico de Visual Chart con las 20 empresas ................................... 110
Ilustración 34: Obtención de datos en Visual Chart ................................................. 133
Ilustración 35: Nombres de los ficheros ................................................................... 134
Ilustración 36: Formato de la variable VALORES................................................... 137
Ilustración 37: Formato de la variable POSICIONES .............................................. 138
Ilustración 38: Insertar ESCRITURA.VBA ............................................................. 141
Ilustración 39: Parámetros del sistema EJECUCION.vba ........................................ 142

12
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
1. Introducción



1.1 Motivación del proyecto
1.2 Inversión en acciones
1.3 Predicción de series financieras
1.4 Objetivos del proyecto
1.5 Metodología y recursos utilizados

13
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
1.1 Motivación del proyecto
La motivación principal de este proyecto es la posibilidad de obtener beneficios
mediante la inversión en bolsa sin correr riesgos demasiado elevados, utilizando un
modelo matemático.
Se pretende estudiar la capacidad de las redes neuronales en la predicción de
acciones, y comprobar si se obtendrían beneficios si se toman decisiones de inversión
en base a éstas. Las redes neuronales han demostrado su efectividad en otras
disciplinas y existen motivos para pensar que se pueden aplicar con éxito a la
predicción de series financieras.
Se tiene la intención de poder realizar decisiones de inversión a partir de
predicciones, que repercutan en la obtención de beneficios. Además, las predicciones
de información no dejan de ser una información útil que se puede utilizar como
complemento a la intuición y al conocimiento bursátil.
Otro factor que anima a la realización de este proyecto es el hecho de la
proliferación de nuevos canales de contacto con el broker. Actualmente existen
muchos brokers que contactan con el cliente a través de internet. Esto supone que se
pueda plantear un sistema de inversión en bolsa que opere automáticamente a través
de un ordenador y no requiera la presencia física del inversor. Hasta ahora una de las
principales limitaciones de la inversión en bolsa a corto plazo era la necesidad de
disponer de tiempo para ello (ver [RAYA07]).
Los conceptos desarrollados en este estudio matemático realizado para la
predicción de series financieras, se pueden aplicar a la investigación de predicciones
en otros campos (predicciones de derivados financieros, predicciones de demanda
eléctrica, etc.).

14
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
1.2 Inversión en Bolsa
La inversión que plantea este sistema es la inversión en acciones (renta variable)
de 20 empresas del IBEX-35, de las que se dispone de información bursátil
intradiaria.
En este capítulo de introducción se van a explicar los conceptos financieros
necesarios para entender el funcionamiento del sistema.
La Bolsa
La bolsa es un mercado, es decir, un lugar en el cual se ponen en contacto los
demandantes y los ofertantes de un bien para comercializarlo. En el caso de la Bolsa,
el bien son activos financieros (títulos que de alguna manera representan dinero
invertido en una sociedad: acciones, bonos, obligaciones, etc.). Los participantes en
el mercado de la Bolsa son:
- Demandantes de capital: empresas, organismos públicos o privados y
otros entes. Tanto las empresas como los organismos, necesitan capital
para cubrir sus necesidades de inversión. Una de las opciones que tienen
para recaudar capital es acudir a la Bolsa y vender sus activos
financieros.
- Ofertantes de capital: inversores (tanto institucionales como
particulares). Los inversores desean obtener rentabilidad de sus
excedentes y entre las muchas alternativas de inversión que existen,
pueden decidir comprar en la Bolsa activos financieros emitidos por las
empresas.
- Intermediarios: agentes autorizados para negociar la compra y venta de
activos financieros. Son conocidos por el nombre de corredores
(brokers). Su labor principal es la de ejecutar las órdenes de compra y
venta de los inversores, y negociar con las empresas el modo de emitir y
comercializar sus acciones.

15
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
La bolsa canaliza el ahorro hacia la inversión productiva, facilitando la
movilidad de la riqueza. Es un instrumento de financiación para las empresas y de
inversión para los inversores.
Los activos financieros se clasifican en activos de renta variable y de renta
fija. Los activos financieros de renta fija se caracterizan por tener una rentabilidad
establecida e independiente del mercado (bonos, obligaciones, etc.). Por el contrario,
los activos financieros de renta variable tienen una rentabilidad que depende de las
fluctuaciones del mercado. Las acciones son los activos financieros por excelencia.
Acciones
El tipo de inversión que se plantea en este proyecto es la inversión en acciones.
Una acción es un título representativo del valor de una de las fracciones iguales en
las que se divide el capital social de una empresa (declarada como sociedad
anónima).
El valor de una acción va a variar a lo largo del tiempo, como el de cualquier
bien, dependiendo de las decisiones que toman los intervinientes en el mercado de la
Bolsa.
La compra de una acción de una empresa supone convertirse en accionista de la
misma y esto conlleva los siguientes derechos:
- Derecho al dividendo. El beneficio que una empresa obtiene en un
ejercicio se destina, en primer lugar, a compensar las pérdidas de años
anteriores si las hubiere; después deben pagarse los impuestos
correspondientes; la parte restante podrá destinarse a reservas y
dividendos. Las reservas son la parte del beneficio que se mantiene en la
sociedad con objeto de aumentar la potencia económica de la misma y
permitir financiar con recursos propios las inversiones que tengan
previstas. El dividendo es la parte del beneficio que la compañía reparte a
sus accionistas. Como puede deducirse, el importe del dividendo depende
de los resultados de la compañía cada año y de su política de distribución

16
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
de beneficios. Por eso a las acciones son consideradas un producto de
renta variable.
- Derecho a la transmisión. Todo accionista tiene derecho, a recibir la
parte proporcional que le corresponde que es la resultante de la
liquidación de la sociedad; ello no significa que tenga derecho a solicitar
a la sociedad que le devuelva el valor de su inversión en cualquier
momento. Sin embargo, todo accionista tiene el derecho de vender sus
acciones, siempre y cuando encuentre comprador. La transmisión está
prácticamente asegurada, dado que una de las principales funciones de la
Bolsa es precisamente dar liquidez a los valores cotizados. La diferencia
positiva entre el precio de venta y el precio al que se compraron las
acciones se denomina plusvalía
- Derecho preferente de suscripción. Cuando una sociedad anónima
efectúa una ampliación de capital con emisión de nuevas acciones, sus
accionistas actuales tienen derecho preferente para suscribir
(comprometerse a la compra) de las nuevas acciones.
- Derecho a voto. Todos los accionistas tienen derecho a voto en la Junta
General de la empresa. La Junta General es la reunión que tienen todos
los accionistas ordinariamente, una vez al año, y extraordinariamente en
determinadas circunstancias, para tomar decisiones principales relativas a
la empresa, y entre ellas aprobar los ejercicios concluidos,
nombramientos, etc. Todos los accionistas tienen derecho a voto, con una
restricción: sólo pueden votar directamente aquéllos que reúnan el
número mínimo de acciones que se determine; aquellos accionistas que
posean un número inferior de acciones pueden unirse para cubrir dicho
mínimo y votar conjuntamente.
Analizados los derechos que conlleva ser accionista de una empresa se puede
deducir cuales son las intenciones que llevan a un inversor a comprar acciones, que
pueden ser dos:

17
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
- Obtener rentabilidad de la inversión
- Obtener control en una compañía
La rentabilidad de una inversión en acciones se obtiene a través del cobro de
dividendos, o a través de la generación de una plusvalía cuando se vende la acción a
un precio superior al que se compró.
Un inversor particular invertirá en acciones con la intención de obtener una
rentabilidad a su inversión, dado que invertir en acciones para obtener el control de
una compañía es el tipo de decisión estratégica que interesa a un inversor
institucional con unos recursos de capital considerables.
Inversión en acciones a corto plazo
El modelo de inversión que se plantea en este proyecto es la inversión en
acciones a corto plazo, pues es el escenario que se considera más susceptible de ser
modelado matemáticamente.
Un modelo matemático de predicción requiere de un escenario en el cual la
predicción a realizar dependa de una serie de variables cuantificables. Se parte del
supuesto de que las variaciones de una acción en el corto plazo están fuertemente
afectadas por la información histórica que se tiene de ésta. Esta información histórica
se puede resumir en el valor de los diferentes indicadores bursátiles que afectan a las
decisiones que toman los intervinientes en el mercado.
Se pretende modelar un escenario en el que se presupone que estos indicadores
bursátiles son los que determinan las decisiones de los interventores en el mercado, y
por tanto son indirectamente los causantes de la variación del precio de una acción.
No se puede decir lo mismo de las variaciones del valor de una acción a medio y
a largo plazo, ya que éstas dependen de aspectos más subjetivos (decisiones
estratégicas de empresas, nivel adquisitivo de las personas, rumores, etc.) que son
difíciles de modelar matemáticamente. Por esta razón el sistema parte de que el
mejor escenario de predicción de valores bursátiles es el corto plazo.

18
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
La principal ventaja que tiene invertir en bolsa en corto plazo es que se cuenta
con la posibilidad de aprovechar la elevada volatilidad del mercado (volatilidad que
se pretende predecir). Como desventaja, este tipo de inversión acarrea unos costes de
transacción (pago de comisiones a intermediarios) muy elevados debido al gran
número de operaciones que se realizan. Además la inversión en bolsa en corto plazo
requiere un seguimiento continuo del mercado (ver [RODR04]).
Cuando se ejecutan órdenes (tanto de compra como de venta) hay que pagar una
comisión al intermediario (broker) que las efectúa.
1.3 Predicción de series financieras
El valor de una acción a lo largo del tiempo es una serie temporal. Por tanto, la
predicción de valores futuros de las acciones consiste en la predicción de series
temporales. Una serie temporal es una secuencia cronológica de observaciones de
una variable.
El tiempo se suele observar en pasos de tiempo discretos, luego el valor de una
variable de una serie temporal será una variable discreta. Cuando se estudia la
variación de una serie temporal se trata de identificar patrones históricos que puedan
ser útiles en la predicción. Para tratar de identificar estos patrones se parte de que una
serie temporal está compuesta por:
- Tendencias: una tendencia se da cuando los valores de una serie
temporal crecen o disminuyen durante largos periodos de tiempo.
- Ciclos: un ciclo se refiere a movimientos hacia arriba o hacia abajo
alrededor del nivel de tendencia.
- Estacionalidades: patrones que se repiten cada determinado tiempo.
- Aleatoriedades: son movimientos irregulares en una serie de tiempo que
no siguen un patrón regular, ni reconocible.
Antes de nombrar los distintos modelos que existen para la predicción de series
temporales, es necesario identificar las propiedades que tiene una serie temporal que

19
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
represente el valor de una acción a lo largo del tiempo. Este tipo de series son
conocidas como series financieras.
Series financieras
Las principales características de las series financieras son (ver [CLEM03]):
- Son procesos prácticamente aleatorios.
- Cambian sus propiedades estadísticas a lo largo del tiempo.
- Son series con elevado nivel de ruido, ya que existe una gran cantidad de
aleatoriedad en las variaciones día a día.
- La aparición de técnicas de predicción pasa a ser parte del proceso a
predecir, puesto que influirá en la toma de decisiones de los inversores.
La predicción de valores futuros de series financieras es un problema difícil,
dado que debería tener en cuenta todos los parámetros que determinan las
expectativas de los intervinientes en el mercado, y estos parámetros suelen ser de
carácter psicológico e imposibles de cuantificar.
Lo que sí es cierto es que muchas de las expectativas que genera el valor de una
acción se deben a la información histórica que se conoce de ella. Todos los decisores
disponen de esta información, luego como se comentó en el apartado anterior, se
puede llegar a modelar la predicción de una serie financiera considerando que
depende de esta información histórica disponible.
Modelos de predicción de series financieras
Cuando se trata de modelar series financieras, se plantea modelar un “problema
inverso”, es decir, dada la evolución de un sistema (serie de datos compuesta por la
variación de una acción a lo largo del tiempo) construir un modelo que pueda haberla
originado (modelo generador de datos). Si se determina la función que puede dar
origen a esta evolución, se dispondrá de un posible modelo de predicción. Para
estimar esta función se separan los datos en dos grupos: el primero se utilizará para
llevar a cabo una interpolación o aproximación de la función desconocida (conjunto

20
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
de entrenamiento) y el segundo para evaluar la bondad del ajuste mediante los
errores de predicción (ver [OLME04]).
Los primeros modelos de predicción de series temporales que se desarrollaron
fueron los modelos ARMA (modelos autoregresivos y de medias móviles) y ARIMA
(modelos autoregresivos, integrados de medias móviles). Estos modelos trataban de
modelizar la evolución de una serie temporal empleando funciones lineales cuyos
parámetros dependían de medias móviles y autorregresiones. Estos modelos tienen
una serie de inconvenientes como son su incapacidad de ajustar comportamientos
irreversibles en el tiempo, asimétricos o irregulares. Lo cierto es que no dejan de ser
modelos lineales incapaces de detectar relaciones no lineales (ver [CRUZ04]). (Dado
que el sistema no utiliza estos modelos de predicción, no es objeto de este documento
el realizar un análisis descriptivo de estos).
Debido a los inconvenientes que tenían los modelos lineales de predicción, se
empezaron a desarrollar modelos de predicción no lineales. Los modelos de
predicción no lineales que mejores resultados proporcionan son los que se
desarrollan en el campo de las redes neuronales. Estos modelos tienen la capacidad
de explorar de forma adaptativa una gran cantidad de modelos potenciales.
A partir de aquí se puede decir que actualmente existen dos vías para tratar de
predecir valores futuros de series financieras (ver [OLME04]):
- Vía compresión: tratar de entender el comportamiento de una serie
financiera utilizando la reconstrucción del espacio de estados (modelos
ARMA y ARIMA).
- Vía aprendizaje: desarrollar modelos utilizando un enfoque de redes,
desarrollando un algoritmo que imite el comportamiento de la serie
financiera.
La experiencia de anteriores estudios indica que la utilización de redes
neuronales incrementa la precisión en la predicción de series financieras. Por esto
este proyecto aplica las redes neuronales para realizar las predicciones de las
cotizaciones.

21
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
Es importante señalar que la utilización de redes neuronales tiene un
inconveniente: se pierde la claridad de la que se disponía en los modelos lineales en
cuanto a cuáles son los parámetros que determinan el modelo de predicción, y cómo
cambia éste al variar aquellos.
1.4 Objetivos del proyecto
El objetivo principal de este proyecto es desarrollar un sistema de inversión en
bolsa a corto plazo que trabaje en tiempo real con la Bolsa (realizando operaciones
de compra y venta de acciones) permitiendo obtener beneficios sin correr riesgos
demasiado elevados. Otros objetivos que se derivan de este objetivo principal son:
- Estudio de las redes neuronales artificiales y de su implementación en un
sistema de predicción bursátil.
- Estudio estadístico de la bolsa tratando de identificar las causas de sus
movimientos y tendencias.
- Desarrollo de un sistema de predicción y de toma de decisiones que opere con
la bolsa en tiempo real.
- Obtener un manejo de Matlab y Visual Chart a nivel profesional.
1.5 Metodología y recursos utilizados
Para desarrollar el sistema de inversión en bolsa se van a seguir los siguientes
pasos:
1. Análisis de las entradas al modelo. Decidir cuáles van a ser y cómo se
van a obtener.
2. Programación de una red neuronal que sea capaz de predecir valores
futuros de la bolsa a partir de las entradas del modelo.
3. Incluir la red neuronal en un sistema que trabaje en tiempo real con la
bolsa.

22
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
Para desarrollar este proyecto se han empleado los siguientes recursos:



Matlab. Se programa en Matlab la obtención de
las entradas al modelo, la red neuronal y el sistema de
toma de decisiones.

Visual Chart. Se utiliza Visual Chart para la
obtención de datos históricos y de datos en tiempo
real. También se utilizará este programa para ejecutar
las órdenes de compra y venta de acciones.


23
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
2. Análisis de las
entradas al modelo:

2.1 Introducción
2.2 Obtención de datos históricos
2.3 Lista de entradas al modelo
2.4 Indicadores bursátiles
2.5 Coeficiente de variación de un indicador respecto al precio de una
jjjjjjacción
2.6 Rutina de creación de entradas

24
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
2.1 Introducción
En esta sección se van a analizar las entradas al modelo, es decir, las entradas
que va a utilizar la red neuronal para realizar predicciones.

Ilustración 1: Estructura básica del modelo
Las entradas que en este capítulo se exponen representan la información histórica
que todo inversor dispone a la hora de tomar una decisión. El valor futuro de una
acción depende de las decisiones de los inversores y estas están condicionadas en
cierto modo por la información histórica de la que se dispone.
Se van a realizar predicciones cada 5 minutos, luego cada 5 minutos se deberán
de calcular nuevas entradas al modelo.
Las empresas que se van a analizar en este proyecto son 20 empresas del IBEX-
35 de las que se dispone de información bursátil intradiaria a través de la plataforma
Visual Chart. Se ajustará una red neuronal para predecir los valores de las acciones
de cada una de estas empresas. Por lo tanto, el sistema tendrá un total de 20 redes
neuronales independientes para predecir las 20 empresas.
Entradas a el
modelo de
predicción
Red
Neuronal
Predicción

25
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo

Ilustración 2: 20 redes neuronales
A continuación se muestra la lista de las 20 empresas analizadas.
Nemónico Empresa Índice
'ACS.I' ACS 1
'ACX.I' Acerinox 2
'ANA.I' Acciona 3
'BBVA.I' BBVA 4
'BKT.I' Bankinter 5
'ELE.I' Endesa 6
'FCC.I' FCC 7
'FER.I' Ferrovial 8
'GAM.I' Gamesa 9
'GAS.I' Gas natural 10
'IBE.I' Iberdrola 11
'IBLA.I' Iberia 12
'IDR.I' Indra 13
'ITX.I' Inditex 14
'POP.I' Popular 15
'REE.I' Red eléctrica 16
Entradas empresa
1
Entradas empresa
2
Entradas empresa
20
Red
neuronal
empresa 1
Red
neuronal
empresa 2
Red
neuronal
empresa 20
….. …… …..
Predicción
empresa 1
Predicción
empresa 2
Predicción
empresa 20

26
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
'REP.I' Repsol 17
'SAN.I' Santander 18
'TEF.I' Telefónica 19
'UNF.I' Unión Fenosa 20
Tabla 1: Empresas analizadas
Gráficos bursátiles
La información histórica de la bolsa se suele representar por medio de gráficos
bursátiles. En este capítulo se van a analizar diferentes gráficos, por lo que conviene
realizar una introducción teórica de las características de éstos. Un gráfico bursátil
representa el valor de una acción a lo largo del tiempo. El intervalo de tiempo
utilizado para realizar el gráfico depende de la compresión de los datos: intradiaria,
diaria, semanal, cuatrimestral o anual. Los datos necesarios para este proyecto son de
compresión intradiaria. Unos datos con compresión intradiaria se caracterizan por
estar divididos en periodos de 5 minutos.
Existen muchos tipos de gráficos bursátiles, en esta introducción se van explicar
los tres más comunes: lineal, barras y candelabro.
Gráfico lineal
Muchos inversores consideran que el valor de cierre es más importante del
periodo. Este gráfico une los puntos de cierre de cada uno de los periodos.

27
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo

Gráfico 1: Gráfico lineal de Endesa 14/05/08 (Elaboración propia con Visual Chart)
Gráfico de barras
Es el gráfico bursátil más popular y será el que más se va a utilizar en este
documento. Representa el valor de apertura, de cierre, máximo y mínimo de la
acción en cada periodo. El máximo y el mínimo están representados en el punto
superior e inferior de la barra respectivamente. El valor de apertura es representado
mediante una línea horizontal a la izquierda de la barra, y el valor de cierre es
representado mediante otra línea horizontal a la derecha de la barra.
El siguiente gráfico muestra los datos del gráfico anterior mediante un gráfico de
barras.

28
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo

Gráfico 2: Gráfico barras de Endesa 14/05/08 (Elaboración propia con Visual Chart)
Gráfico candelabro
Este gráfico representa cada periodo mediante una caja con dos líneas verticales
de la siguiente manera:

Ilustración 3: Gráfico candelabro
Las cajas negras implican que el valor de cierre es inferior al de apertura. La
ventaja de este tipo de gráfico está en que se identifica rápidamente los periodos en
los que la acción ha bajado y en los que la acción ha subido.
El siguiente gráfico muestra los datos del gráfico anterior mediante un gráfico de
tipo candelabro.

Open (apertura)
Low(mínimo)
Close (cierre)
High (máximo)

29
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo

Gráfico 3: Gráfico candelabro de Endesa 14/05/08 (Elaboración propia con Visual Chart)
2.2 Obtención de datos históricos
Todas las entradas se obtienen a partir de datos históricos. Estos datos históricos
se obtienen del programa Visual Chart y posteriormente se tratan para que sean
homogéneos. Los “datos homogéneos” son aquellos en los que en cada periodo se
tiene información sobre las 20 empresas.
La obtención de las entradas se programa en Matlab. La estructura de los datos
necesaria para obtener las entradas consiste en una variable .mat de Matlab del tipo
structure. Esta variable consiste en una matriz en la que cada celda contiene los datos
históricos de una empresa. Será una matriz fila de 20 columnas.
Los datos históricos de cada empresa se organizan en forma de matriz de 7
columnas y n filas. Las siete columnas serán: fecha, hora, open high, low, close; y las
filas representarán los distintos periodos.

30
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo

Ilustración 4: Estructura de los datos históricos necesarios
Open valor de la acción al comienzo del periodo
High valor máximo que toma la acción en el periodo
Low valor mínimo que toma la acción en el periodo
Close valor de la acción al finalizar el periodo
Volume nº de títulos negociados en el periodo

El valor de una acción es una variable discreta que ha de estudiarse en intervalos
concretos de tiempo (por esto el valor de apertura de un periodo no tiene porque
coincidir con el valor de cierre del periodo anterior).
Los datos intradiarios que proporciona Visual Chart están compuestos por
periodos de cinco minutos, empezando el día a las 9:05 y terminando a las 17:30.
Cada día está compuesto por 102 periodos.
Cuando se necesiten datos para crear las entradas necesarias para la red neuronal,
se tendrá que descargar un conjunto de datos históricos lo suficientemente alto
(20.000 periodos por ejemplo). Visual Chart trabaja con gráficos y estos se pueden
exportar en formato de texto. Es necesario tratar estos datos para que sean
homogéneos.
<TICKER>,<PER>,<DTYYYYMMDD>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL>,<OPENINT>
ALT.MC,I,20060711,171500,36.55,36.58,36.54,36.55,18473,0
ALT.MC,I,20060711,172000,36.55,36.64,36.55,36.64,33055,0
Fecha Hora Open High Low Close Volume
ammdd hhmm ##.## ##.## ##.## ##.## ##.##
… … … … … … …
ammdd hhmm ##.## ##.## ##.## ##.## ##.##
Empresa1 (ACS) … Empresai … Empresa 24 (Unión Fenosa)

31
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
ALT.MC,I,20060711,172500,36.64,36.64,36.56,36.60,31446,0
ALT.MC,I,20060711,173000,36.55,36.62,36.50,36.57,369817,0
ALT.MC,I,20060712,090500,36.51,36.64,36.51,36.64,10645,0
ALT.MC,I,20060712,091000,36.58,36.58,36.45,36.47,8109,0
ALT.MC,I,20060712,092500,36.46,36.46,36.46,36.46,150,0
ALT.MC,I,20060712,093000,36.48,36.48,36.48,36.48,1769,0
ALT.MC,I,20060712,093500,36.55,36.58,36.49,36.49,10131,0
ALT.MC,I,20060712,094000,36.49,36.59,36.47,36.47,5954,0
ALT.MC,I,20060712,095000,36.49,36.53,36.49,36.53,1366,0

Para homogeneizar los datos se ha programado en Matlab una función
homogeniza, que rellena los huecos de información suponiendo que en los periodos
en los que no se dispone de información, el valor de la acción no varía y no se
negocia ningún título.
La acción de homogenizar datos puede entorpecer la predicción si se tiene
demasiados huecos de información. Por este motivo se han escogido 20 empresas
que no suelen presentar demasiados huecos de información.
Para homogenizar los datos es necesario seguir los siguientes pasos:
1. Descargar los gráficos de las 20 empresas de Visual Chart en archivo .txt
2. Ejecutar la función homogeniza en Matlab
Se han descargado datos históricos intradiarios de 24 empresas del IBEX-35
desde el día 1 de Mayo de 2006 hasta el 5 de Junio de 2008. A continuación se
muestran los porcentajes de periodos en los que se dispone de información en los
datos de cada una de las 24 empresas.
¿Dónde está el periodo
de las 9:45?

32
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo

Gráfico 4: Porcentaje de periodos en los que se dispone de información
Este estudio ha servido para seleccionar las 20 empresas que se van a emplear
para realizar predicciones. Se han seleccionado las 20 empresas en las que se dispone
de información en más de un 93% de los periodos (rectángulos azules del gráfico).
Otras empresas como NH, Metrovacesa, Sogecable y Abengoa, no se han
seleccionado al presentar elevados huecos de información (rectángulos rojos).
El disponer de datos históricos completos en base intradiaria es crítico para
realizar un entrenamiento correcto de las redes neuronales, ya que cuando existen
muchos periodos en los que no se dispone de información y se supone que el valor de
la acción no varía, se obtienen series financieras que no representan la verdadera
variación del valor de un acción.
Un procedimiento para rellenar huecos de información consiste en simular
mediante el modelo de predicción los valores que deberían darse. Pero dado que las
empresas estudiadas tienen sólo un 0.5% de huecos de información, se ha decidido
ignorarlos.
Una vez se tienen los datos históricos de todas las empresas homogenizados ya
se pueden obtener las entradas al modelo.
0
10
20
30
40
50
60
70
80
90
100
% de peridos en los que se dispone de información
Nº de periodos estudiados: 54.468

33
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
2.3 Lista de entradas al modelo
En este apartado se presenta la lista de entradas al modelo. El estudio de las
posibles entradas al modelo ha partido del proyecto de fin de carrera: “Aplicación del
perceptrón multicapa a la compra-venta de acciones de bolsa a corto plazo”, de
Tomás Malaver (ver [MALA07]).
Partiendo de las entradas al modelo de Tomás Malaver, se han desarrollado
diferentes estudios empíricos que han concluido con la incorporación de nuevas
entradas y con la eliminación de otras existentes.
Entrada 1 Close (t-1)
Entrada 2 Open (t-1)
Entrada 3 Open (t-2)
Entrada 4 Open (t-3)
Entrada 5 Open (t-5)
Entrada 6 Open (t-7)
Entrada 7 Open (t-9)
Entrada 8 Open (t-11)
Entrada 9 Open (t-13)
Entrada 10 Open (t-15)
Entrada 11 Open (t-17)
Entrada 12 Pendiente de los 4 últimos precios de apertura
Entrada 13 Pendiente de los 2 últimos precios de apertura
Entrada 14 Media exponencial* de los últimos 14 precios de apertura
Entrada 15 Media móvil* de los últimos 26 precios de apertura
Entrada 16 Media móvil* de los últimos 7 precios de apertura
Entrada 17 Media móvil* de los últimos 42 precios de apertura
Entrada 18 Valor del ADX*

34
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
Entrada 19 Coeficiente de variación del ADX respecto al precio de apertura*
Entrada 20 Valor del MACD*
Entrada 21 Valor de SI GNAL*
Entrada 22 Coeficiente de variación del MACD respecto al precio de
apertura*
Entrada 23 Coeficiente de variación del OBV respecto al precio de apertura*
Entrada 24 Valor del RSI *
Entrada 25 Coeficiente de variación del RSI respecto al precio de apertura*
Entrada 26 Valor del CCI *
Entrada 27 Coeficiente de variación del CCI respecto al precio de apertura*
Entrada 28 Valor de la curva K del Estocástico*
Entrada 29 Diferencia entre las dos curvas del Estocástico (K-D)*
Entrada 30 Coeficiente de variación de la curva K del Estocástico respecto al
precio de apertura*
Tabla 2: Lista de entradas al modelo *Ver apartados: I ndicadores Bursátiles y Estudio de las variaciones de
los indicadores respecto al precio
2.4 Indicadores bursátiles
En este apartado se van a analizar los indicadores bursátiles que se han incluido
como entradas al modelo. Se han consultado diferentes fuentes de información
referentes a indicadores bursátiles (ver [EVEL06] y (ver [MALA07]), pero la fuente
más completa y de la que se ha obtenido toda la información para la elaboración de
este apartado, ha sido la que se encuentra en la página web www.stockcharts.com.
ADX (movimiento direccional)
Introducción
El ADX (Average Directional), es un indicador que se utiliza para conocer si un
valor está en tendencia o no y determinar la fortaleza de la misma. El ADX oscila
entre valores comprendidos entre 0% y 100%, y cuanto más elevado sea su valor más
fuerte será la tendencia que representa. Valores del ADX por encima de 60 son
extraños, y normalmente se considera que un ADX mayor que 40 ya está

35
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
representando una fuerte tendencia. Por otro lado valores inferiores al 20
representarán tendencias muy débiles.
El valor del ADX va a representar la fortaleza de la tendencia. Para saber si esta
es bajista o alcista se tiene que observar el valor de +DI y –DI que son dos
parámetros que se utilizan en el cálculo del ADX.
Cálculo
El ADX se sirve de los siguientes parámetros para determinar la fortaleza de la
tendencia:
- DM (Directional movement, movimiento direccional)
- TR (True range, amplitud verdadera)
- DI (Directional Indicator, indicador direccional)
El DM es la diferencia entre el máximo (o mínimo) de un periodo y el máximo
(o mínimo) del periodo anterior. Si el máximo del periodo es mayor que el máximo
del periodo anterior, se tendrá un DM positivo (+DM); si el mínimo del periodo es
menor que el mínimo del periodo anterior se tendrá un DM negativo (-DM). Si el
precio de un periodo cae dentro del periodo anterior entonces no se tiene DM; y si el
precio del periodo se mueve en un rango superior o inferior al mismo se considerará
el máximo de +DM y –DM.

36
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo

Ilustración 5: Cálculo del Directional Movement
+ = − −1
− = −1 −
→ + = − = 0
El TR de un periodo se define como el máximo valor de los siguientes:
- Diferencia entre el máximo y el mínimo de un periodo.
- Diferencia entre el máximo del periodo y el valor de cierre del periodo
anterior.
- Diferencia entre el valor de cierre del periodo anterior y el mínimo del
periodo.


37
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo

1
= −

2
= − −1 = (
1
,
2
,
3
)

3
= −1 −
El DI se representará como por +DI si el valor se mueve al alza y por –DI si el
valor se mueve a la baja (que se comprueba observando el signo del DM):
TR
DM
DI
+
= +

TR
DM
DI
÷
= ÷

J. Welles Wilder, inventor del ADX, recomienda trabajar con los 14 últimos
periodos para poder obtener un resultado suficientemente representativo.
De este modo se calcula el +DM(14) como la suma de los +DM de los 14
últimos periodos, y –DM(14) como la suma de los –DM de los catorce últimos
periodos. Análogamente, se tendrá TR(14) como la suma de los rangos verdaderos de
los catorce últimos periodos. +DI(14) y –DI(14) se calcularan entonces como:
) 14 (
) 14 (
) 14 (
TR
DM
DI
+
= +

) 14 (
) 14 (
) 14 (
TR
DM
DI
÷
= ÷

Con +DI(14) y con –DI(14) ya se podrá obtener el indicador ADX(14) como:
)) 14 ( ( )) 14 ( (
)) 14 ( ( )) 14 ( (
) 14 (
DI DI
DI DI
ADX
÷ + +
÷ ÷ +
=

El numerador de esta ecuación representa la fuerza de la tendencia, ya que es la
diferencia entre las dos tendencias (alza y baja), y el denominador normaliza por el
número de periodos que se está trabajando.

38
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
Razonamiento económico

Gráfico 5: Ejemplo1 ADX (Fuente: www.stockcharts.com)
La siguiente figura muestra dos gráficas: la superior indica el valor de la acción
de Intel a lo largo del tiempo, y la inferior que muestra los valores que van tomando
el ADX (negro), el +DI (verde) y el –DI (rojo). Se observan dos periodos en los que
el ADX supera 40 luego identificamos dos fuertes tendencias.
A continuación se va a explicar cómo esta información se puede traducir en
órdenes de compra y venta.

39
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo

Gráfico 6: Ejemplo2 ADX (Fuente: FxStreet)
La gráfica de la parte inferior de esta figura, muestra los valores que van
tomando +DI, -DI y ADX, a lo largo de los periodos estudiados. Para explicar las
órdenes de compra-venta se va a estudiar las 4 zonas marcadas en la gráfica.
- Zonas 1 y 3 órdenes de venta. -DI corta a +DI con un ADX superior al
25%, luego se puede deducir que va a empezar una tendencia bajista (más
fortalecida en 3 que en 1). La acción correcta sería la de vender valores ya
que estos parece que van a bajar.
- Zona 2 órdenes de compra. +DI corta a –DI y empieza a aumentar la
diferencia entre las dos curvas, esto unido a que la curva del ADX empieza a
aumentar, hace que se pueda deducir que se está ante una tendencia alcista
que se va fortaleciendo. La acción correcta sería la de comprar acciones.
- Zona 4  ADX>40. Cuando el ADX se mantiene un cierto tiempo por
encima del 40 nos da una señal de posible agotamiento del movimiento
direccional, ya que los mercados no son tan tendenciales durante mucho
tiempo.

40
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
Programación
El valor que toma el ADX va a depender de la longitud de los periodos con los
que se está trabajando. Dependiendo del tipo de decisiones que se quieran tomar se
escogerá un periodo u otro:
- Toma de decisiones a largo plazo  periodos de 1 mes
- Toma de decisiones a medio plazo  periodos de 1 semana ó 1 día
- Toma de decisiones a corto plazo  periodos de 5 minutos
Como se están realizando predicciones a corto plazo, se tomarán periodos de 5
minutos, por este motivo el ADX podrá variar mucho en un día ya que este
contempla 103 periodos de 5 minutos.
Se ha programado en Matlab una función ADX de la forma:

Ilustración 6: Función ADX
La ilustración 6 representa el esquema de entradas y salidas de la función ADX.
Los ítems verde y rojo representan respectivamente las entradas y las salidas de la
función; el ítem central contiene el nombre de la función. También se representa el
formato y la dimensión de las entradas y salidas.
•M_datos(datos históricos)
ADX
M_Adx
Fecha Hora Open High Low Close Volume
##### #### ##.## ##.## ##.## ##.## ####
… … … … … … …
##### #### ##.## ##.## ##.## ##.## ####
fecha hora +DI(14) -DI(14) ADX
##### #### #### #### ####
… …
##### #### #### #### ####
n-14 periodos
Periodo 1
Periodo n
Periodo 15
Periodo n

41
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
Este tipo de esquema se va a utilizar a lo largo de todo el documento cada vez
que se describa el esquema de entradas y salidas de una función.
Como se deduce del cálculo para determinar el ADX de un periodo, es necesario
tener un mínimo de 14 periodos anteriores. Por esto la matriz de salida de la función
ADX no da resultados para los primeros 14 periodos de la matriz de datos que se
utiliza como entrada a la función.
Ejemplo
En este ejemplo vamos a representar las cotizaciones de Acerinox (índice de
empresa 2) a lo largo de los días 14 y 15 de Enero contrastándolas con los valores
que ha ido tomando el indicador ADX.

Gráfico 7: Ejemplo3 ADX en Acerinox (Elaboración propia con Visual Chart)
En este ejemplo se observa que el estudio del ADX hubiese servido para la
predicción de la bajada brusca que ocurre entre las horas 14:00 y 15:10 del 15 de

42
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
Febrero. A las 14:00 del 15 de Febrero, el ADX empieza a tomar valores por encima
de 40 y la cotización está bajando. Como el ADX esté por encima de 40, estará
indicando una fuerte tendencia bajista. Esta tendencia de bajista la predecimos
mientras el ADX es mayor que 40. Se observa como a las 15:10 el ADX deja de ser
superior a 40 luego ya no se está en una tendencia fortalecida y no podemos predecir
si la acción va a seguir bajando.
Nótese que el ADX no ha identificado la tendencia bajista que se da al principio
del día 14 de Febrero. Esto se debe a que en muchas ocasiones los datos anteriores
que se utilizan en el cálculo del ADX son muy volátiles y hacen que no se distingan
algunas tendencias.
MACD (convergencia-divergencia del promedio móvil)
Introducción
El MACD (Moving Average Convergence/Divergence) es un indicador que trata
de identificar la tendencia en una cotización. Este indicador fue desarrollado por
Gerald Appel. Este indicador se vale de medias móviles para identificar la tendencia.
El MACD se representa gráficamente mediante dos curvas: rápida y lenta.
Cálculo
Su expresión estándar consiste en que la curva rápida (llamada MACD y
representada como una línea continua) venga dada por la expresión:
) 12 .( . ) 26 .( . Exp Med Exp Med MACD ÷ =

Y la curva lenta (llamada Signal y representada por una línea discontinua) venga
dada por la expresión:
)) 9 ( .( . MACD Exp Med Signal =

Donde:
Med.Exp.  Media exponencial
Se utiliza la media exponencial, porque da más importancia a los últimos
valores. La expresión de la media exponencial es:

43
Juan Hornedo López-Ibor: Sistema de Inversión en Bolsa a Corto Plazo
( )
) ( . ) , 0 .( .
_ _
_ 1
_
) , 1 .( .
1
2
) , 1 .( . ) ( ) , .( .
N Simple Med N Exp Med
periodos de número N
anterior periodo t
actual periodo t
N t Exp Med
N
N t Exp Med t precio N t Exp Med
=
÷
÷ ÷
÷
÷ +
|
.
|

\
|
+
· ÷ ÷ =

Ejemplo: Med.Exp.(4)

Ilustración 7: Ejemplo del cálculo de la Media Exponencial
Razonamiento económico
Cuando se estudia el MACD se representan dos curvas: SIGNAL(curva más
lenta) y MACD (curva más rápida). Una vez representadas las dos curvas, la
información que se puede obtener de ellas es:
- Línea rápida (MACD)  Se mueve por encima y por debajo de 0.
Cuando supera al cero significa que comienza una temporada alcista, y
cuando empieza a moverse debajo de 0, significa que comienza una
temporada bajista.
- Cruces de la línea rápida (MACD) con la línea lenta (SIGNAL) 
Cuando la curva rápida supera a la línea lenta se interpreta como una
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 44

señal de compra (empieza temporada alcista), y cuando la lenta supera a
la rápida se interpreta como una señal de venta (empieza temporada
bajista). Cuanto más cerca del cero se produzcan estos cruces, más fiable
será la información que proporcionan. Pues si se cortan cerca de cero
significa que se parte de un periodo estable (poca diferencia entre la
curva rápida y lenta), y si por el contrario se cortan en un punto con
diferencia significativa entre las dos curvas podría tratarse de subidas y
bajadas muy puntuales en un periodo revuelto.


Gráfico 8: Ejemplo1 MACD (Elaboración propia con Visual Chart)
En esta figura se muestran las órdenes de compra y venta que se generan
aplicando los criterios del indicador MACD explicado anteriormente.
Programación
Se han programado una función MACD a la cual se le da una serie de
cotizaciones y devuelve el valor del MACD y de la SIGNAL.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 45


Ilustración 8: Función MACD
Como se deduce del cálculo, para determinar el MACD y la SIGNAL de un
periodo es necesario tener un mínimo de 33 periodos anteriores. Por esto la matriz de
salida de la función MACD no incluye los primeros 33 periodos de la matriz datos
históricos.
Ejemplo
En este ejemplo se van a representar los valores de la cotización de ACS (índice
de empresa 1) y del MACD durante los días 14 y 15 de Abril del 2008. Se observan
las señales de compra y venta que se generan cuando se cruzan las dos curvas del
MACD.
•M_datos(datos históricos)
MACD
M_Macd
n-33 periodos
Periodo 1
Periodo n
Periodo 34
Periodo n
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 46


Gráfico 9: Ejemplo2 MACD en ACS (Elaboración propia con Visual Chart)
Si efectuaran las señales, se tendría acciones en los rectángulos verdes y no se
tendrían en los rectángulos rojos. De este modo se conseguiría generar plusvalías
aprovechando las subidas a corto plazo de la bolsa.
OBV (Balance de volúmenes)
Introducción
El indicador OBV (On Balance Volume, Balance de Volúmenes) se utiliza para
determinar el flujo del volumen negociado (Volume) de una acción. El concepto que
hay detrás de este indicador es que el volumen negociado precede al precio, luego si
se estudia los movimientos del volumen negociado se podrá predecir variaciones de
tendencia en el precio.
Este indicador fue introducido por Joe Granville en 1963.
Cálculo
C
V
C
C
V
C
V
V
C
No tengo acciones
Tengo acciones
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 47

OBV se calcula añadiendo el volumen de un periodo al volumen acumulado total
cuando la acción cierra a un precio mayor al último cierre, y restando el volumen del
periodo al volumen acumulado cuando la acción cierra a un precio menor que el
último cierre.
Si close (t) > close (t-1) ) ( ) 1 ( ) ( t Volumen t OBV t OBV + ÷ =
Si close (t) < close (t-1) ) ( ) 1 ( ) ( t Volumen t OBV t OBV ÷ ÷ =
Si close (t) = close (t-1) ) 1 ( ) ( ÷ = t OBV t OBV
Inicialización: ) 0 ( ) 0 ( Volumen OBV =
Razonamiento económico
El OBV va a ser un indicador cuyo valor irá variando a lo largo del tiempo,
dependiendo de si el precio de la acción va aumentando y del volumen de cada
periodo.
Se deduce que cuando el volumen cae o sube dramáticamente sin que en el
precio de la acción se produzcan cambios importantes, el precio de la acción está
propenso a descender o subir. Si el volumen de una acción está aumentando significa
que muchos inversores se están interesando en comprar la acción y que llegará un
punto en el cual el precio empiece a aumentar como consecuencia de un aumento de
la demanda. Por el contrario si el volumen empieza a descender (los inversores no se
están interesando por el valor) el precio de la acción tenderá a caer (poca demanda,
luego el precio disminuirá).
Para trabajar con este indicador se elaboran dos gráficos, uno con la variación de
la cotización de una acción y otro con la variación del valor del OBV a lo largo de
tiempo. Cabe notar que para obtener información del OBV hay que fijarse en la
tendencia del valor de OBV (el valor numérico en concreto que tenga en un instante
determinado no aporta información) pues lo que interesa es ver los incrementos y
decrementos en el volumen.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 48


Gráfico 10: Ejemplo1 OBV (Fuente TradeStation)
En este gráfico se muestra la variación del índice Dow Jones desde Diciembre
del 2000 hasta Octubre de 2001 con su respectivo OBV. Se observa cómo se pueden
predecir ciertas tendencias en el precio a partir de la información de la curva del
OBV (pues las mismas tendencias que se dan en el OBV se dan el precio un poco
más tarde). En este ejemplo se observa cómo el OBV detecta el fin de la tendencia
alcista antes de que esta suceda.
Las órdenes de compra y de venta que se pueden generar con el OBV son las
siguientes:
- Orden de compra  El precio de una acción permanece constante a la vez
que empieza a aumentar el OBV. Esto indica que la gente está comprando
esta acción y que su valor subirá.
- Orden de venta  El precio de una acción está aumentando y el OBV está
disminuyendo. Esto indica que la acción a estar sobrevalorada, pues tiene un
precio que no se corresponde con su demanda y que tenderá a bajar su valor.


Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 49

Programación
Se ha programado una función en OBV en Matlab que obtiene el OBV a partir
de las cotizaciones de un valor en cada instante.

Ilustración 9: Función OBV
Esta función calcula el valor puntual del OBV en cada periodo. Como se
comentó anteriormente, lo que aporta información es la tendencia del OBV no el
valor puntual; pero para calcular la tendencia es necesario los valores puntuales. A
partir de estos valores se realizará una estimación de la tendencia (ver apartado 2.5,
página 60).
Ejemplo
En este ejemplo se va a representar las cotizaciones y los valores del OBV de
Acerinox durante los días 4, 7 y 8 de Abril del 2008.
•M_datos(datos históricos)
OBV
M_Obv
Fecha Hora Open High Low Close Volume
##### #### ##.## ##.## ##.## ##.## ####
… … … … … … …
##### #### ##.## ##.## ##.## ##.## ####
fecha hora OBV
##### #### ####
… …
##### #### ####
n
Periodo 1
Periodo n
Periodo 1
Periodo n
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 50


Gráfico 11: Ejemplo2 OBV (Elaboración propia con Visual Chart)
En este el gráfico se detectan dos órdenes de compra en dos puntos. En estos
puntos el OBV tiene una tendencia positiva y la acción en ese punto lleva 2 o más
periodos permaneciendo constante.
De haberse efectuado cualquiera de las dos órdenes de compra se hubiese
generado una plusvalía, pues en los dos casos la acción incrementa su valor
inmediatamente después.
RSI (índice relativo de fuerza)
Introducción
El RSI (Relative Strengh Indicator) fue desarrollado por J. Welles Wilder en
1978. El RSI compara la magnitud de las recientes ganancias de una cotización con
la magnitud de sus recientes pérdidas. Esta información la expresa mediante un
porcentaje. Wilder recomienda trabajar con los 14 últimos periodos.
Para determinar la ganancia o pérdida de una cotización en un periodo
determinado, sólo se precisa del valor de cierre del periodo actual y del valor de
cierre del periodo anterior. La magnitud de las recientes pérdidas/ganancias se
compra
compra
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 51

determina a partir de los valores de las pérdidas y ganancias de los últimos 14
periodos.
Cálculo
Para calcular el RSI hay que realizar las siguientes operaciones:
= − −1 ≥ −1
= 0 < −1
= −1 − < −1
= 0 ≥ −1
=
∙ 13 +
14

14 =
()
14
=1
14

=
∙ 13 +
14

14 =
()
14
=1
14

=

= 100 −
100
1 +


Como se deduce de las ecuaciones, es necesario disponer de al menos 14
periodos anteriores para poder iniciar el cálculo del RSI. Nótese también que las
pérdidas, cuando existen, se contabilizan con un valor positivo.
El RSI depende de todos los valores anteriores, por lo que cuántos más datos se
dispongan, más preciso será el cálculo del RSI. Se puede considerar que con 100
datos históricos ya se obtienen valores del RSI con suficiente precisión.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 52

En las formulas de AverageGain y AverageLoss, el dato del último periodo se
suma a la media anterior para que tenga un mayor peso respecto a los anteriores a él.
Es el mismo concepto de las medias exponenciales que se estudiaron en el indicador
MACD. Este tipo de ponderaciones son muy frecuentes cuando estudiamos series
financieras ya que el espacio temporal es una variable que tiene que influir de algún
modo en el cálculo de los promedios, por el hecho de que el valor anterior de una
cotización siempre aporta más información para la predicción de un valor posterior
que un valor que se da en un número de periodos anteriores.
Razonamiento económico
El RSI se suele representar comparándolo con una línea horizontal de valor 50%.
Valores de RSI por encima del 50% significan que últimamente ha habido más
ganancias que pérdidas y valores por debajo de 50% significan que ha habido más
pérdidas que ganancias. Podemos considerar que valores del RSI mayores del 70%
están significando que estamos en un periodo alcista, y valores por debajo del 30%
están significando que estamos en un periodo bajista. Valores entre el 30% y el 70%
significan que no hay ninguna tendencia fortalecida.
También es importante estudiar la divergencia del RSI ya que nos va a dar
información acerca de lo que va a ocurrir en el futuro. Por ejemplo, si se está en un
periodo alcista (RSI>70%), y se tiene una tendencia positiva se podrá decir que la
acción está en tendencia de aumentar su valor. Si por el contrario se está en un
período alcista pero la divergencia es negativa se dirá que la acción puede empezar a
disminuir su valor.
Una forma de caracterizar los distintos valores que toma el RSI, es nombrar a los
valores RSI mayores que el 70% como sobrecomprados (overbought), y valores del
RSI inferiores al 30% como sobrevendidos (oversold).
- Valor sobrecomprado  hay más inversores que quieren comprar que
inversores que quieren vender, luego el precio tenderá a aumentar su
valor
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 53

- Valor sobrevendido  hay más inversores que quieren vender que
inversores que quieren comprar, luego el precio tenderá a reducir su
valor.

Gráfico 12: Ejemplo1 RSI (Fuente StockCharts)
En el ejemplo de la figura se observa como en la segunda quincena de diciembre
la acción empieza a estar sobrecomprada y su valor empieza a aumentar, luego
cuando la tendencia del RSI se vuelve negativa empieza a bajar. También se observa
que a mediados de mayo se está en un periodo alcista pero con tendencia del RSI
negativa, luego se podría haber anticipado la caída del periodo siguiente a la línea
roja.
Programación
Se ha programado una función RSI en Matlab que calcula el RSI utilizando las
fórmulas matemáticas descritas anteriormente. Esta función recibe datos históricos y
devuelve los valores del RSI en cada periodo.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 54


Ilustración 10: Función RSI
Es importante resaltar que para tener datos fiables del RSI es necesario disponer
de un conjunto de datos históricos suficientes (50 periodos anteriores suelen ser
suficientes).
Ejemplo

Gráfico 13: Ejemplo2 RSI (Elaboración propia con Visual Chart)
En este ejemplo (ACS) se puede observar como con la ayuda del RSI podemos
tomar decisiones acertadas.
•M_datos(datos históricos)
RSI
M_Rsi
Fecha Hora Open High Low Close Volume
##### #### ##.## ##.## ##.## ##.## ####
… … … … … … …
##### #### ##.## ##.## ##.## ##.## ####
fecha Hora AvgGain AvgLoss RSI
##### #### #### #### ####
… … … … …
##### #### #### #### ####
n-14 periodos
Periodo 1
Periodo n
Periodo 15
Periodo n
A
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 55

En el periodo A se podría comprar acciones de la empresa porque se está en un
período alcista con tendencia positiva. Se observa como dos periodos después la
acción sube y se hubiese ganado una plusvalía considerable.
CCI (Índice de commodities)
Introducción
El CCI (Commodity Chanel Index) es un indicador desarrollado por Donald
Lambert que trata de identificar los ciclos de las commodities. Entiendo commodity
como cualquier acción o bono, en este caso.
Este indicador supone que el valor de una acción es de algún modo cíclico, y que
por tanto los máximos y mínimos llegan en intervalos periódicos. Lambert
recomienda usar un tercio de un ciclo completo (de mínimo a mínimo o de máximo a
máximo) como longitud de los intervalos con los que se va a trabajar (nótese que la
determinación de la longitud del ciclo es subjetiva e independiente al cálculo del
CCI). Si tenemos que un ciclo completo se da en 60 días (se da un máximo o un
mínimo cada 60 días), entonces los intervalos de trabajo serán de 20 días.
Cálculo
Para el cálculo del CCI hay que realizar las siguientes operaciones:
≈ → º

=
+ +
3

→ → →
=

º
=1
º


ó í =

º
=
º

Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 56


=

0.15 ∙

Como se observa en las ecuaciones, el CCI no es más que realizar una
normalización del TP de un periodo t, con la media y la desviación típica de los TP
de los periodos anteriores (típicamente 20 periodos anteriores). Con la salvedad de
que multiplicamos el denominador por una constante de 0.15, esta constante se
utiliza para que el 70%-80% de los valores del CCI caigan en un rango comprendido
entre el -100 y el 100, y tener así una referencia fácil de comparación. El porcentaje
de valores del CCI que caigan entre el -100 y el +100 dependerá del número de
periodos utilizados.
En el cálculo del CCI que se ha realizado en este modelo se ha supuesto una
longitud periodo de 20 periodos de 5 minutos, es decir de 1h y 40 minutos. Puede
parecer una longitud muy pequeña, pero como se están realizando predicciones
extremadamente cortoplacistas, se requiere de variaciones representativas de los
indicadores a nivel intradiario para poder disponer de entradas lo suficientemente
distintas en cada periodo.
Razonamiento económico
La constante de valor 0,15 antes comentada hacía que el 70/80% de los valores
cayeran entre -100 y +100, y que el 30/20% caerá fuera de este rango. Cuando el CCI
es mayor que 100 significará que el TP (True Price) del periodo es
considerablemente superior a los anteriores TP, y que se está ante el comienzo de una
tendencia alcista. Por el contrario si el TP es menor que -100 significará que el TP
del período es considerablemente menor que los anteriores TP y que se está ante el
comienzo de una temporada bajista.
Luego las órdenes de compra y venta de este indicador serán:
- Si CCI>100  comprar acciones
- Si CCI<-100  vender acciones
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 57

Al igual que muchos otros indicadores bursátiles, es interesante estudiar la
variación del CCI con respecto al precio. Esta variación puede confirmar o debilitar
la información que se obtiene a partir de este indicador. Si por ejemplo se está en un
periodo con un CCI de 105 y con una tendencia positiva del CCI, entonces se dirá
que se está ante una tendencia alcista que tiende a fortalecerse. Si por el contrario la
tendencia es negativa se dirá que se está ante una tendencia alcista que se está
debilitando.
Programación
Se ha programado una función CCI en Matlab que calcula el valor del CCI a
partir de un conjunto de datos históricos. Esta función precisa de 19 periodos
anteriores para calcular el CCI en un periodo concreto.

Ilustración 11: Función CCI
Ejemplo
Este ejemplo corresponde al estudio del CCI en el valor de la acción de de ACS
entre las fechas indicadas en el gráfico.
•M_datos(datos históricos)
CCI
M_cci
Fecha Hora Open High Low Close Volume
##### #### ##.## ##.## ##.## ##.## ####
… … … … … … …
##### #### ##.## ##.## ##.## ##.## ####
fecha hora CCI
##### #### ####
… …
##### #### ####
n-19 periodos
Periodo 1
Periodo n
Periodo 20
Periodo n
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 58


Gráfico 14: Ejemplo CCI (Elaboración propia con Visual Chart)
En este ejemplo se recalca un periodo (12:20) en el cual se tomaría una decisión
de compra basándose en el valor del CCI. En este periodo se tiene un CCI superior al
100 y con tendencia positiva, luego se comprarían acciones. Se observa como la
compra de acciones a las 12:20 generaría una importante plusvalía al subir la acción
bastante a las 12:30.
Estocástico
Introducción
Este indicador fue desarrollado por George C. Lane en el año 1948. El
estocástico (stochastic) es un indicador que muestra la localización del actual cierre
con respecto al máximo/mínimo alcanzado en una serie de periodos anteriores.
Niveles de cierre que están cerca del máximo indican acumulación (presión de
compradores) y los niveles de cierre que están próximos al mínimo indican
distribución (presión de vendedores).
Cálculo
% = 100 ∙
−1 −í

á

−í

12:20
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 59

→ º 14
% = %, 3
%K  línea rápida del estocástico
%D  línea lenta del estocástico
Razonamiento económico
El estocástico utiliza fundamentalmente los valores que toma %K para la
obtención de información.
Lecturas por encima del 80% son consideradas puntos en los que la acción está
sobrevendida (overbought) y lecturas por debajo del 20% son consideradas puntos en
los que la acción está sobrecomprada (oversold). Sin embargo Lane creía que una
medida por encima del 80% no significaba necesariamente que fuese a comenzar un
periodo bajista y que una medida por debajo del 20% no significaba necesariamente
el comienzo de un periodo alcista. Para obtener una señal más fiable es necesario
observar también la pendiente de las curvas. Una vez el indicador llega a niveles de
sobrecompra es bueno esperar a tener una pendiente negativa para establecer cuando
comienza el periodo bajista, y viceversa.
Los valores de D% (curva lenta del estocástico) se utilizan para generar órdenes
de compra de venta. Cuando la línea %K cruza por debajo de la línea %D se genera
una orden de venta y cuando la línea %K cruza por encima se genera una orden de
compra.
Programación
Se ha programado una función ESTOCASTICO en Matlab que obtiene los
valores de %K y %D en cada periodo a partir de un conjunto de datos históricos.
Para los valores de %K y %D de un periodo se necesita datos de 15 periodos
anteriores.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 60


Ilustración 12: Función ESTOCASTICO
Ejemplo

Gráfico 15: Ejemplo Estocástico en Unión Fenosa (Elaboración propia con Visual Chart)
En este ejemplo se representa mediante flechas las órdenes de compra y venta
que se deducen de la información obtenida del estudio del estocástico. Se observa
como las dos últimas órdenes de compra y venta que se generan son falsas ya que la
acción se mantiene constante. Por el contrario se observa cómo sí se generan las
•M_datos(datos históricos)
ESTOCASTICO
M_cci
Fecha Hora Open High Low Close Volume
##### #### ##.## ##.## ##.## ##.## ####
… … … … … … …
##### #### ##.## ##.## ##.## ##.## ####
fecha hora %K %D
##### #### ##.## ##.##
… … … …
##### #### ##.## ##.##
n-15 periodos
Periodo 1
Periodo n
Periodo 16
Periodo n
Ordenes de
compra
Ordenes de
venta
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 61

órdenes de compra anteriores a los dos picos que se producen en el valor de la
acción.
2.5 Coeficiente de variación de un indicador
respecto al precio de una acción
Como se comentó en el apartado anterior, mucha de la información que se
obtiene de los indicadores se puede obtener del estudio de la variación de éste con
respecto al precio de la acción. Esta relación se mide mediante el empleo de un
coeficiente (este coeficiente recibe el nombre de divergence en inglés).
El coeficiente de variación de un indicador (cualquiera de los explicados
anteriormente) respecto al precio de una acción, relaciona la dirección de cambio
(pendiente) del precio con la dirección de cambio de un indicador. Se pueden obtener
coeficientes positivos o negativos; un coeficiente positivo se da cuando el indicador
crece cuando el precio está bajando y un coeficiente negativo se da cuando el
indicador decrece mientras el precio crece.
Para el cálculo de este coeficiente se ha programado en Matlab una función
divergence que tiene como entradas el valor de un indicador en los últimos n
periodos y el valor del precio (open) en los n últimos periodos.

Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 62


Ilustración 13: Función divergence
Esta función calcula la pendiente media de los últimos n periodos, tanto de los
precios como del indicador. Después resta la pendiente media de los precios a la
pendiente media del indicador.
Para calcular la pendiente media, esta función realiza un ajuste lineal de la
columna de valores (ya sea de precios o de valores del indicador) por una recta, y
luego calcula su pendiente.
Para realizar este ajuste se llama a la función fit de Matlab de la siguiente forma:
[statistics,model] = Fit(X,Y,'poly1')

Donde X es (tanto en los precios como en el valor de los indicadores) una matriz
columna del tipo:
=
5
10
. .
∙ 5

La matriz Y dependerá si se está calculando la pendiente de los precios o de los
valores del indicador. Si se va a comparar el crecimiento y decrecimiento del precio
y del valor de un indicador, es necesario que sean de alguna manera comparables.
•n (número de periodos)
•Precios (precios de apertura)
•Indicador (valores del
indicador)
divergence
col_divergence
#
Fecha Hora Open
##### #### ##.##
… … …
##### #### ##.##
Fecha Hora Indicador
##### #### ##.####
… … …
##### #### ##.####
fecha hora divergence
##### #### ##.####
… … …
##### #### ##.####
n periodos
n periodos
n periodos
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 63

Para ello se divide cada uno de los elementos de la matriz entre la media de todos los
elementos de la matriz. De modo que la matriz Y será:

=
())

=1

(1)
(2)
. .
()

_ =
())

=1

(1)
(2)
. .
()

De la función fit interesa sólo el valor de la pendiente, que corresponde a la
salida statistics.p1.
A continuación se muestra un ejemplo del cálculo del coeficiente de variación
del OBV respecto a la cotización de BBVA. Se va a suponer que se realiza el cálculo
a partir de la información de los últimos 4 periodos. Los datos de entrada son los
siguientes:
FECHA HORA OBV OPEN
30227 905 744773 7.53
30227 910 554138 7.5
30227 915 421608 7.51
30227 920 562941 7.49

Pendiente Divergence
Precios -0.00029304
0.02 Indicador -0.0238


Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 64

2.6 Rutina de creación de entradas
El sistema deberá de calcular las entradas a la red neuronal en dos situaciones:
- Cuando se quiera entrenar la red neuronal
- Cuando se quiera realizar una predicción
Cuando se quiera entrenar la red neuronal se necesitará disponer de las entradas
y las salidas (valor que de apertura de una acción en periodo) de un conjunto amplio
de periodos anteriores. Para obtener esta información se ha programado una función
crea_entradas en Matlab, que a partir de datos históricos de una empresa, crea la
matriz de entradas con sus correspondientes salidas. Estas entradas y salidas son las
que se utilizan para crear (entrenar) la red neuronal.
El esquema de entradas y salidas de esta función es el siguiente:

Ilustración 14: Función Crea_Entradas
Los primeros 100 periodos se utilizan para obtener la información histórica de
partida para calcular las entradas, por lo que no se dispone de salidas para estos
periodos.
•M_datos(datos históricos) Crea_entradas
•Matriz_de_entradas
•Targets
Fecha Hora Open High Low Close Volume
##### #### ##.## ##.## ##.## ##.## ####
… … … … … … …
##### #### ##.## ##.## ##.## ##.## ####
fecha hora Open
##### #### ##.##
… … …
##### #### ##.##
n-100 periodos
Periodo 1
Periodo n
Periodo 101
Periodo n
fecha hora Entrada 1 … Entrada 30
##### #### ##.## … ##.##
… … … … …
##### #### ##.## … ##.##
Periodo 101
Periodo n
n-100 periodos
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 65

La otra situación en la que el sistema necesita calcular entradas es para realizar
una predicción cuando se dispone ya de una red neuronal entrenada. En este caso se
calcularán las entradas en un periodo determinado, para esto es necesario disponer de
al menos 100 periodos anteriores. El cálculo de las entradas para un periodo en
concreto se realiza a través de la función calcula_entradas programada en Matlab.
Esta función calcula las entradas a la red neuronal de una empresa a partir de datos
históricos de 100 periodos anteriores.

Ilustración 15. Función calcula_entradas
Para calcular las entradas de un periodo determinado, es necesario tener disponer
de los datos de 100 periodos anteriores. Esto hace que cada vez que se disponga de
un dato nuevo, se almacene para poder calcular futuras entradas.



•M_datos(datos históricos) calcula_entradas
•entradas
Fecha Hora Open High Low Close Volume
##### #### ##.## ##.## ##.## ##.## ####
… … … … … … …
##### #### ##.## ##.## ##.## ##.## ####
Periodo 1
Periodo 101
fecha hora Entrada 1 … Entrada 30
##### #### ##.## … ##.##
Periodo 101
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 66

3. Redes neuronales



3.1 Introducción
3.2 Perceptrón multicapa
3.3 Entrenamiento de la red neuronal
3.4 Modelado de la red neuronal
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 67

3.1 Introducción
El modelo matemático que utiliza el sistema de inversión para predecir valores
futuros es una red neuronal artificial (RNA). En este capítulo se van a exponer los
conceptos fundamentales de las redes neuronales y se va a describir la red neuronal
que va a utilizar el sistema.
Definición
Una red neuronal artificial (RNA) es un modelo matemático que, inspirado en el
funcionamiento del sistema nervioso biológico, procesa información (ver
[GARC02]). Las redes neuronales artificiales tienen un conjunto de propiedades
específicas, como son la habilidad de adaptarse (aprender), generalizar y organizar la
información.
Los primeros intentos por imitar el funcionamiento del cerebro se realizaron en
el año 1943 por los científicos Walter Pitts, Beltran Russell y Warren McCulloch. La
primera red neuronal artificial fue desarrollada en 1951 Marvin Minsky, estudiante
de la universidad de Harvard.
Un sistema nervioso biológico, como el cerebro, está compuesto por un elevado
número de elementos (neuronas) interconectados entre sí que trabajan conjuntamente
para solucionar un problema. El aprendizaje de los sistemas nerviosos biológicos
implica ajustes en las conexiones entre las neuronas. Las RNA tratan de imitan esta
estructura que tienen los sistemas nerviosos biológicos para tomar decisiones y para
aprender.
Un sistema de RNA está compuesto por una estructura con dos elementos
básicos:
- Neurona: es el elemento básico de procesamiento de la información de la
RNA. Las redes neuronales están compuestas por neuronas interconectadas
entre sí.
- Dendritas: representan las uniones entre neuronas, y tienen asociado un valor
o peso que suele indicar la importancia de la unión.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 68

Se les da esta denominación para subrayar la similitud con los sistemas nerviosos
biológicos.
Conceptos básicos
Una red neuronal artificial está compuesta por un conjunto de neuronas
interconectadas entre sí que trabajan conjuntamente para solucionar un determinado
problema.
El elemento básico de una red neuronal es la neurona. Una neurona no es más
que una función de transferencia que a partir de un número de entradas calcula una
única salida. Estas entradas están ponderadas de manera que cada una de ellas lleva
asociada un peso (constante por la que se multiplica su valor) que representa la
importancia que tiene la entrada en la salida de la neurona. Los parámetros
necesarios para definir el funcionamiento de una neurona son:
- Número de entradas  N
- Pesos de las entradas  W1, W2, … WN
- Función de transferencia  F(H)
=
Y  salida de la red neuronal
= ∙
=
=1

Xj  valor de la entrada j
Wj  peso de la entrada j
En la imagen se muestra la similitud con una neurona biológica.
Los pesos de las entradas son los que el algoritmo de aprendizaje ajustará para
que la red neuronal proporcione las salidas adecuadas.

F
F
Y
Y
Ilustración 16: Neurona
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 69

Existen diferentes tipos de funciones de transferencia que aplicables a una
neurona. Se resumen en la siguiente tabla (ver [DEMU06]):

Tabla 3: Funciones de transferencia para redes neuronales
Nótese que las funciones de transferencia tienen salidas comprendidas en el
intervalo [0,1] o en el intervalo [-1,1]. Este se debe a que las neuronas deben de
trabajar con datos comprendidos en un intervalo determinado, dado que todas las
entradas a una red neuronal deben de estar normalizadas respecto a una determinada
Función Fórmula Representación
Escalón

= 1 ≥ 0
= 0 < 0


Función lineal a tramos
= 1 > 0
= ∈ −1,1
= −1 < 1

Función sigmoidea
=
1
1 +




Función tangente
sigmoidea
=
1
1 +
−2∙
−1


Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 70

distribución. Lo corriente es normalizar todas las entradas a la red neuronal respecto
a una distribución de media 0 y desviación típica1. La necesidad de realizar esta
normalización es lógica pues todas las entradas deben de partir con la misma
importancia y serán los pesos de las neuronas los que establezcan dicha importancia.
Explicada la estructura de una neurona se puede explicar la estructura de una red
neuronal.
La estructura típica de una red neuronal es la del perceptrón multicapa. Está
estructura es la estructura más simple que puede tener una red neuronal y es la que se
va a utilizar para describir los conceptos básicos de las redes neuronales. Esta red
neuronal está compuesta por un conjunto de neuronas organizadas en capas. Cada
capa tendrá un número determinado de neuronas y todas las neuronas de una capa
tendrán la misma función de trasferencia.
Las neuronas de una capa se conectan a las de la capa siguiente (las neuronas de
una capa (n-1) envían sus salidas a las neuronas de la capa n que las tomarán como
entradas).
En la siguiente imagen se muestra la estructura de una red neuronal de dos capas,
cuatro entradas y dos salidas:

Ilustración 17: Ejemplo red neuronal

Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 71

Los parámetros de esta red neuronal se representan matemáticamente como
vectores y matrices:
=
1
2
3
4

1ª =
1
11
1
12
1
13
1
14
1
21
1
22
1
23
1
24
1
31
1
32
1
33
1
34

1
2
3

1 2 3 4
2ª =
2
11
2
12
2
13
2
21
2
22
2
23

1
2



1ª =
1
1
1
2
1
3
2ª =
2
1
2
2


Se debe dar valores a los pesos de la red neuronal. Estos valores se obtendrán
del proceso de entrenamiento. Este proceso consiste en proporcionar un conjunto de
muestras a la red neuronal, de tal manera que ésta adapta el valor de los pesos para
minimizar el error en la salida.
Como se explicará, el entrenamiento de una red neuronal no es más que la
resolución de un problema de optimización.
Tipos de redes neuronales
Existen diferentes tipos de redes neuronales según la estructura en la que están
organizadas las neuronas. A continuación se describen los principales tipos de redes
neuronales que se pueden encontrar (ver [KRÖS96]).
Redes de propagación hacia delante (feedforward)
Fueron las primeras redes en ser diseñadas. La información se mueve hacia
delante, desde los nodos de entrada a los de salida. Es el tipo de red neuronal que se
utiliza para la predicción de series temporales.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 72

Las redes neuronales de este tipo tienen la ventaja de que son las más rápidas en
ejecutarse. Por otro lado tienen el inconveniente de que su entrenamiento es lento sea
cual sea el tipo de entrenamiento que realicemos.
Existen muchas estructuras de redes neuronales de propagación hacia delante,
pero la que más utilidad tiene y más se ha desarrollado es el perceptrón multicapa.
El perceptrón multicapa es una red neuronal de propagación hacia delante en la que
las neuronas están organizadas en capas.
En la siguiente imagen se muestra la estructura de un perceptrón multicapa con
una sola capa oculta:

Ilustración 18: Red de propagación hacia delante
Redes recurrentes
Estas redes están formadas por muchas neuronas fuertemente interconectadas.
Se utilizan para el desarrollo de memorias asociativas que tratan de simular el
cerebro humano. Se les denomina memorias por el hecho de que la salida de este tipo
de redes depende no sólo de las entradas actuales sino también de las entradas
anteriores y del estado en el que se encuentra la red. La red neuronal más conocida
de este tipo es la red neuronal de Hopfield. Esta red está constituida por un conjunto
de neuronas cada una de las cuales está unida a todas las demás, la conexión es tal
que cada neurona recibe información de todas las demás y emite información a todas
Capa de
entrada
Capa
oculta
Capa de
salida
Entrada 3
Entrada 2
Entrada 1
Entrada 4
Salida
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 73

las demás. En la siguiente figura se muestra un ejemplo de una red neuronal de
Hopfield:

Ilustración 19: Red neuronal recurrente
En estas redes el flujo de información es bidireccional, es decir, va de las
entradas a las salidas y viceversa.
Redes estocásticas
Estas redes neuronales se caracterizan por tener conexiones aleatorias entre las
neuronas. La red más conocida de este tipo es la red neuronal de Boltzmann. En la
siguiente imagen se muestra un ejemplo:

Ilustración 20: Red neuronal estocástica

1
2
3
5
4 6
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 74

Redes modulares
Estas redes están compuestas por distintos conjuntos de redes que cooperan unas
con otras para resolver un mismo problema. Este tipo de red es el que más se
aproxima al sistema neuronal biológico.
Son las redes neuronales de estructura más compleja. A continuación se muestra
un ejemplo:

Ilustración 21: Red neuronal modular

Tipos de entrenamiento
- Entrenamiento supervisado: En este tipo de entrenamiento se le proporciona a
la RNA una serie de ejemplos consistentes en unos patrones de entrenamiento
que consisten en pares de entradas con sus correspondientes salidas (ejemplos
de cómo se quiere que funcione la red neuronal). El proceso de entrenamiento
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 75

consistirá en ajustar los pesos para que la salida de la red sea lo más parecida
posible a la salida deseada (teórica).
- Entrenamiento no supervisado: En este tipo de entrenamiento se presenta a la
red una serie de ejemplos pero no se presenta la respuesta deseada. Lo que
hace la RNA es reconocer regularidades en el conjunto de entradas, es decir,
estimar una función densidad de probabilidad p(x) que describe la
distribución de patrones x en el espacio de entrada R
n
.
- Entrenamiento híbrido: Es una mezcla de los anteriores. Unas capas de la red
tienen un aprendizaje supervisado y otras capas de la red tienen un
aprendizaje de tipo no supervisado.
- Entrenamiento recurrente: Es un entrenamiento en el que no se proporciona
una salida deseada, sólo se indica si la salida es correcta o no, pero no indica
en cuánto se diferencia de la salida buscada.
El caso de este proyecto es un caso de predicción de series temporales. La
predicción de series temporales es un problema de aproximación en el que se va a
utilizar un entrenamiento supervisado, por lo tanto, a la red se le proporcionará una
serie de entradas (valores anteriores, indicadores bursátiles, etc.) con sus
correspondientes salidas (valores que se han dado). Estos vectores de entradas y
salida se obtendrán de datos históricos (ver capítulo 2).
La estructura de los patrones de entrenamiento es:
Periodo entrada (1) entrada (2) … entrada (ne) salida
1
e1,1 e1,2

e1,ne S1
2
e2,1 e2,2

e2,ne S2
I
ei,1 ei,2

ei,ne Si
Np
enp,1 enp,2

enp,ne Snp

Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 76


ei,j
Entrada j del patrón de entrada correspondiente al periodo i
Si
Salida asociada al patrón de entrada correspondiente al periodo i

Para realizar el entrenamiento se proporciona a la red las entradas y las salidas de
un número de periodos anteriores suficientemente alto (np). Estos periodos son
anteriores luego se conocerán sus entradas y sus salidas. En cada uno de estos
periodos la red calculará la predicción a partir de las entradas y se tendrán las
predicciones para cada uno de estos periodos anteriores:

Predicción
P1
P2
Pi
Pnp

Se define el error en un periodo i como:

=

Para calcular los pesos de la red neuronal se resuelve el siguiente problema de
optimización:
ó :

=1

ó:


Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 77

:

=

,

=

3.2 Perceptrón
Para modelar la predicción del sistema de este proyecto se ha programado una
red neuronal del tipo perceptrón multicapa.
Motivos de la elección del perceptrón multicapa
Es el tipo de red neuronal más eficaz y que más se utiliza para la predicción de
series temporales, según muestran los diferentes estudios realizados anteriormente en
este campo (ver [OLME04] y [CRUZ04]).
El perceptrón multicapa tiene la habilidad de desarrollar representaciones
internas y predicciones en un sistema. Estudios anteriores (ver [TAM_92])
observaron que el perceptrón multicapa tiene la habilidad de permitir a la red hacer
generalizaciones razonables. Las neuronas de las capas intermedias (ocultas) son
detectoras de características. Estas propiedades (generalización y detección de
características) del perceptrón multicapa, hacen que sea la el tipo de red neuronal
más apropiado para la predicciones de series financieras (ver [OLME04]).
Recordemos además que el modelo de este sistema realiza predicciones de
valores bursátiles a corto plazo (5 minutos). Esto hace que sea necesario que la red
neuronal se ejecute rápidamente, y el perceptrón multicapa así lo hace. También es
cierto que el perceptrón multicapa tiene un entrenamiento relativamente lento, pero
este hecho no es preocupante ya que la bolsa está abierta de 9 de la mañana a 6 de la
tarde y se tiene tiempo para entrenar mientras la bolsa esté cerrada.
Características del perceptrón multicapa
La red tipo Perceptrón fue inventada por el psicólogo Frank Rosenblatt en el año
1957. El perceptrón se desarrolló imitando el funcionamiento del ojo humano. Este
funcionamiento consiste en unas señales de entrada que son analizadas por una serie
de neuronas de asociación para luego ser enviadas a unas neuronas de respuesta.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 78

El perceptrón multicapa resuelve el problema más simple de las redes
neuronales, que es la síntesis de sistemas que realizan una determinada asociación de
datos entrada/salida. En este problema los pesos de las neuronas se ajustan de tal
manera que ante cada entrada la red responda de una manera preestablecida.
Este problema de asociación se utiliza para resolver dos casos:
- Aproximación de funciones
- Clasificación de datos
Cuando se aproximan funciones mediante el perceptrón multicapa, los datos de
entrada y salida se asimilan con vectores multidimensionales. Se pretende que el
valor real de la salida generada por la red cuando se estimule con un cierto dato de
entrada, se parezca lo más posible al correspondiente dato de salida. La ventaja de
usar el perceptrón multicapa para este tipo de problemas es que la red ofrece una
gran capacidad de generación.
El perceptrón multicapa también se puede utilizar para resolver un problema de
clasificación de datos. En este caso la salida de la red ante cada dato de entrada debe
decidir la clase a la que pertenece ese dato de entrada.
3.3 Entrenamiento de la red neuronal
Introducción
Se tiene que entrenar el perceptrón multicapa con datos históricos para poder
empezar a realizar predicciones. Este entrenamiento será un entrenamiento
supervisado. Por tanto se necesitará un conjunto de datos (histórico) para el
entrenamiento con cada entrada y su salida, expresado de la siguiente forma:

1
,
1
,
2
,
2
, …, {

,

}
Donde

es una entrada a la red neuronal y

es la correspondiente salida
deseada para el patrón (periodo) Q del conjunto de datos para el entrenamiento.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 79

Recuérdese que el entrenamiento de la red consiste en un problema matemático
para determinar el valor de los pesos de las neuronas de cada una de las capas de la
red neuronal que consiguen minimizar el error de las salidas respecto a las salidas
teóricas de los datos de entrenamiento.
El primer paso para resolver este problema de optimización es el de definir la
función error. La función error depende del valor de las salidas de la red (que a su
vez dependen del valor de los pesos y las entradas) y del valor de las salidas teóricas.
Para optimizar los pesos se parte de un par entradas/salida concreto y se trata de
buscar un mínimo de la función error variando el valor de los pesos. Se va
calculando el error de todos los pares entradas/salida y se toma el valor de los pesos
que minimiza la suma total de los errores.
Muchos de los métodos de optimización de este tipo de problemas se basan en la
misma rutina: ir realizando iteraciones hasta alcanzar un mínimo en la función a
minimizar. Existen distintas formas de definir esta función a minimizar (suma de los
errores de todos los patrones de entrenamiento, suma cuadrática de los errores de los
patrones de entrenamiento, etc.) y distintas formas de desplazarse por la superficie de
error.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 80


Ilustración 22: Mínimos locales
En la ilustración 22 se muestra de forma gráfica el problema de optimización del
entrenamiento de una red neuronal. Se representa un plano en el cual el eje x un peso
W1, en el eje y otro peso W2 y en el eje z el valor de la función a minimizar (en este
caso la suma de los errores de todos los periodos). Este caso es un ejemplo sencillo
en el que se está suponiendo una red neuronal en el que sólo se tiene 2 pesos
(correspondería a una red neuronal de una neurona con dos entradas). En la gráfica se
observa como el punto „p‟ es en el que se minimiza la función objetivo, y a este
punto le corresponderán unos W1_p y W2_p que serán las incógnitas del proceso de
entrenamiento.
Muchos métodos de optimización para este tipo de problemas se basan en el
método de Newton. Este método trata de alcanzar el punto „p‟ realizando una serie de
iteraciones. Se empezará con unos valores de W1 y W2 aleatorios y se calculará la
función objetivo con esos valores. Seguidamente se calcula el sentido de la máxima
variación de la función objetivo (gradiente) y se toma el camino opuesto para la
obtención de otro candidato a mínimo. Se van realizando iteraciones hasta lograr un
mínimo. Este mínimo será un mínimo local, es decir, si se tiene una función objetivo
W1
W2
error
p
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 81

que sea un hiperplano con varios mínimos locales, el proceso iterativo dará con uno
de ellos en función del punto de partida, pero este mínimo no tendrá porque ser el
absoluto. Para solucionar este problema se puede entrenar la red un cierto número de
veces partiendo de distintos pesos, para tener un conjunto de mínimos locales y
escoger los pesos que proporcionan el menor mínimo local.
El software de Matlab contiene una toolbox de redes neuronales que será la que
se va a utilizar para el entrenamiento de la red neuronal de modelo de predicción. La
toolbox de redes neuronales de Matlab tiene programadas una serie de funciones de
entrenamiento. Se ha escogido la función trainlm para realizar el entrenamiento de la
red neuronal, ya que es la más rápida en ejecutarse y la que mejores resultados suele
proporcionar.
Algoritmo de Levenberg-Marquardt
La función trainlm entrena la red neuronal mediante un modelo de optimización
Cuasi-Newtoniano concretamente el algoritmo Levenberg-Marquardt. Este algoritmo
es una modificación del método de Newton, que fue diseñado para minimizar
funciones que sean la suma de los cuadrados de otras funciones no lineales; por eso
el algoritmo de Levenberg-Marquardt tiene un excelente desempeño en el
entrenamiento de redes neuronales donde el entrenamiento de la red está determinado
por el error medio cuadrático.
Para explicar el algoritmo de entrenamiento primero se expondrá la notación de
una red neuronal genérica:
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 82


Ilustración 23: Nomenclatura de la red neuronal
En cada periodo se tendrá un vector

de entradas formado por ne (número de
entradas) componentes. Cada neurona tiene una serie de pesos (W‟s) asociados a sus
entradas y una bia (es la primera vez que se habla de bias en este documento). Cada
neurona posee un término bias, que constituye la predisposición de la neurona a
activarse. Puede haber pesos que nunca se actualicen durante el entrenamiento por
empezar muy alejados de su valor óptimo, cuando los pesos no se actualizan
correctamente, pueden existir neuronas que apenas tengan entradas y no cooperen a
la resolución del problema. Para solucionar este problema se utiliza el término bias,
que es un valor que se añade a la suma ponderada de las entradas a una neurona que
trata de solucionar este problema incrementando su valor en neuronas con poca
participación y reduciendo su valor en neuronas con mucha participación, tratando de
igualar la participación de todas las neuronas de una capa.
Los patrones de entrenamiento necesarios serán de la forma:
=

1

2

T=

1

2

Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 83

Cada

será el vector de entradas a la red neuronal en el patrón i-ésimo de
entrenamiento, y

será su correspondiente salida. Cada vector

será de la forma:

= [
,1
,
,2
, …,
,]

Siendo:
i índice de patrón de entrenamiento
R número de entradas a la red neuronal

Se define el término entrada neta en una neurona como el valor de entrada a la
función de transferencia de la neurona, su expresión en la primera capa será:

1
=

1

+

1

=1

1 nº capa
j nº de neurona
i componente del vector de entradas
W Peso
p Entrada
b Bia

Se define el término salida de una neurona como el valor de salida de su función
de transferencia:


=

(

)
j número de neurona
m número de capa

Una vez definido este término se pueden definir las entradas netas de las demás
capas.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 84

=

−1
+

=1

Cada una de las neuronas de la capa de salida (S) tendrá una salida teórica (t
s
)
(salida que tiene que producirse en la neurona para que se obtenga la salida deseada
con el vector de entradas proporcionado). El error de cada neurona (δ) vendrá dado
por la diferencia entre esta salida teórica y la salida que realmente se produce:

= (

)
S capa de salida
s número de neurona de la capa de salida

Se tendrá un

para cada patrón de entrenamiento. La función objetivo con la
que va a trabajar este algoritmo de entrenamiento es la siguiente:
=

=1

=
1
2

2

=1

ns número de salidas
q número total de patrones de entrenamiento

Se trabaja con el error medio cuadrático para no distinguir signo en el error sin
tener utilizar la función absoluto, que puede entorpecer el cálculo computacional.
El objetivo del algoritmo de entrenamiento será:
()
La función F depende de los pesos y de las bias, que son las incógnitas del
problema.
Se representaran de forma matricial como:

= [
1,1
1
, …,
1,
1
, …,
,

…,
,

,
1
1
, . . ,

]
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 85

R nº de entradas
n nº de neuronas
m nº de capa
S capa de salida
W Peso
b Bia

El método de Newton para optimizar la función es:

+1
=


−1

:

≡ ó




2

≡ ∇

(Nótese que esta ecuación representa el movimiento en la dirección contraria a la
de máximo crecimiento que se comentó en el ejemplo gráfico anterior).
Como se ha definido la función objetivo F(X) como la suma de un conjunto de
funciones cuadráticas se tendrá que:
=

2
=

()

=1

El gradiente pude ser escrito en forma matricial:
∇ = 2 ∙


Ajustando el método de Newton, se obtiene el algoritmo de Levenberg-
Marquardt

+1
=

+


−1




es la constante que determina la tendencia del algoritmo. Cuando

se
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 86

incrementa, la siguiente iteración sigue llendo en la dirección de máximo
decrecimiento a un ritmo más fuerte; cuando

se decrementa este algoritmo se
convierte en el método d Gauss-Newton que va reduciendo paulatinamente los saltos
de las iteraciones.
El algoritmo empezará otorgando un valor pequeño para

del orden de 0.01.
Si en este paso no se obtiene el valor deseado de F(X), es decir, la precisión deseada,
entonces el paso es repetido con un

multiplicado por un factor > 0.
Los elementos de la matriz jacobiana necesarios para el algoritmo de Levenberg-
Marquardt son del estilo:

,

j número de neurona
q índice de patrón de entrenamiento
m nº de capa
i índice del vector de entradas

El mayor “consumo” computacional se produce en el cálculo de estos
jacobianos. Para que sea más simple el cálculo de este jacobiano se realiza lo
siguiente:
Se define el término sensibilidad como:

,

=

,

j número de neurona
q índice de patrón de entrenamiento
m nº de capa

Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 87

Se calculan los términos de la matriz jacobiana de la forma:

,

=


,

,


,

=
,

,

,

=
,


,
−1

Y para las bias:

=


,

,

=
,

,

=
,

De esta forma cuando la entrada

ha sido aplicada a la red neuronal y su
correspondiente salida

(m es el número de capa y q es índice del patrón de
entrenamiento) ha sido conmutada, el algoritmo de Levenberg-Marquardt es
inicializado con:

= −

(

)

será una matriz cuyas columnas corresponderán con las correspondientes
salidas de cada patrón de entrenamiento q. Dichas columnas deberán ser propagadas
inversamente a través de la red neuronal para producir una fila de la matriz
jacobiana. Las columnas serán propagadas según la expresión:

=

+1

+1

Las matrices de sensibilidad para cada capa del algoritmo de Levenberg-
Marquardt estarán formadas por la extensión de las matrices computadas para cada
entrada:

=
1

2

… [

]
Cuando un nuevo patrón de entrada es presentado a la red, los vectores
sensibilidad son propagados hacia atrás, esto se debe a que se ha calculado cada error
en forma individual, en lugar de derivar la suma al cuadrado de los errores. Para cada
patrón de entrada aplicado a la red habrá

errores, uno por cada elemento de salida
de la red y por cada error se generará una fila de la matriz Jacobiana.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 88

El algoritmo se resume en el siguiente diagrama de flujo:

Ilustración 24: Algoritmo de Levenberg-Marquardt (Elaboración propia)
Las condiciones de meta serán las que se tendrán que introducir al algoritmo
como parámetros. Estas condiciones pueden ser de diferentes tipos:
- Suma de errores meta
- Número máximo de iteraciones
- …
Este será el algoritmo que se va a ejecutar cuando se utilice la función trainlm
antes comentada.
Se comentó anteriormente el problema de los mínimos locales. Para solucionarlo
se entrena la red un número „n‟ de veces empezando cada vez en un punto de partida
<
Se presentan todos los patrones de entrada a la red y se calculan sus
correspondientes salidas y errores d:
Después se calcula la suma de los errores cuadrados para cada patrón
de entrada:
Se calculan las sensibilidades y la matriz de sensibilidad (S
k
). Con esta se
calcula la matriz Jacobiana (J
k
).
Se calcula
y se obtiene

No
k=k+1
1
2
3
¿Se cumplen
condiciones
de meta?
Sí No
FIN
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 89

distinto. Y se tomará los resultados del entrenamiento de mínimo error para
determinar los pesos y las bias de la red del modelo.
Implementación en Matlab
En este apartado se va a explicar la rutina de Matlab para crear una entrenar una
red neuronal:
1. Datos necesarios para crear una red neuronal
Los datos necesarios para el entrenamiento son las entradas de periodos
anteriores con sus correspondientes salidas. Estos datos se dividen en tres conjuntos:
- Entrenamiento. Conjunto general de pares entradas/salida.
- Validación. Conjunto de pares entradas/salida pertenecientes a periodos
distribuidos a lo largo de todo el histórico, de menor dimensión que el
conjunto de entrenamiento.
- Test. Conjunto de pares entradas/salida correspondiente a los últimos
periodos del histórico.
Se divide los datos necesarios en distintos conjuntos para tratar que la red
minimice el error en cada uno de ellos, y no se conforme con minimizar un error
medio global.
Tras realizarse numerosas pruebas empíricas se han escogido los siguientes
tamaños de entrenamiento:
Conjunto nº de periodos
Entrenamiento 16000
Validación 4000
Test 100
total de periodos necesarios 20100
Tabla 4: Tamaño de los vectores de entrenamiento
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 90

Se tiene por tanto un conjunto de datos compuesto por 20100 periodos. Los datos
pertenecientes a entrenamiento, validación y test están organizados de la siguiente
manera:

Ilustración 25: Datos para el entrenamiento
El hecho de utilizar 20100 datos anteriores para entrenar la red neuronal, supone
entrenar la red neuronal con datos históricos de los últimos dos meses. Esto supone
aceptar el hecho de que la cotización de un periodo determinado depende de las
cotizaciones de los últimos dos meses, lo que parece razonable.
Es importante recordar que la red neuronal trabaja con datos normalizados luego
es necesario normalizar el conjunto de datos antes de realizar un entrenamiento. Esto
se hace a través de la función mapstd de Matlab. A esta función se le pasa una matriz
de entradas y normalizará cada una de las entradas para transformarla en una
distribución con media 0 y desviación típica 1. También se le pasa el vector de
salidas para que también éste sea normalizado.
La matriz de entradas se denotará por „P‟, y será la matriz de entradas obtenida
de la función crea entradas (ver capítulo 2) eliminado la fecha y la hora. El vector de
salidas por su parte, se denotará por „T‟ y corresponderá a la matriz de salidas
eliminando también la fecha y la hora.
A continuación se muestra el código a realizar una vez se dispone de las matrices
de entrada y targets.
%trasposición de matrices
Matriz_de_entradas=Matriz_de_entradas';
targets=targets';

%obtención de P y T
P=Matriz_de_entradas(3:end,:);
T=targets(3,:);
per. 1 per. 2 per. 3 per. 4 per. 5 per. 6 per. 7 per. 8 per. 9 per.10 per.11 … per.14 per.15 … per.19999 per. 20000 per. 20001 per. 21000
e e e e v e e e e v e … e v … e v
e
v
t
t
entrenamiento
validación
test
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 91


%normalización
[p,PE] = mapstd(P);
[t,PS] = mapstd(T);


Las variables PE y PS contienen los parámetros de la normalización y deberán
ser almacenadas ya que se utilizarán siempre que se utilice la red neuronal.
Una vez obtenidos los vectores „p‟ y „t‟; se procede a separar el conjunto de
datos en: entrenamiento, validación y test. Para ello se ha programado una función
separa_entrenamiento que realiza esta separación:

[pent,tent,pent,tent,ptest,ttest]=separador_entrenamiento
(p,t);

Una vez se tienen los conjuntos de datos definidos se tiene toda la información
necesaria para poder crear la red neuronal.
2. Declarar la red neuronal: se utiliza la función newff.
newff: (PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)
- PR: Rx2 Matriz de valores máximos y mínimos de cada uno de las R
neuronas de la capa de entrada.
- Si: Número de neuronas para cada una de las capas.
- TFi: Función de transferencia a utilizar en cada una de las capas, por defecto
utiliza tansig
- BTF: Algoritmo de entrenamiento a utilizar, por defecto utiliza trainlm
(Levenberg-Marquardt)
- BLF: Función de actualización de los pesos, por defecto utiliza learngdm.
- PF: Función para evaluar el desempeño de la red, por defecto utiliza mse.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 92

Ejemplo:
net=newff(minmax(pn),[30 3 1]
,{'tansig','tansig','purelin'});

Esta rutina crea una perceptrón multicapa de 3 capas con 30 neuronas en la
primera capa, 3 en la segunda y 1 en la capa de salida. Las dos primeras capas
utilizan funciones tangentes sigmoideas; y la capa de salida una función lineal.
3. Establecer los parámetros de entrenamiento
El siguiente código muestra la introducción de los parámetros necesarios para el
entrenamiento:
net.trainParam.show=50; %Nº de epoch entre displays
net.trainParam.goal=10e-8; %Error mínimo
net.trainParam.epochs=100; %nºiter. máx. para el ent.
val.P=pval; %entradas de la validación
val.T=tval; %salidas de la validación
test.P=ptest; %entradas del test
test.T=ttest; %salidas del test

4. Entrenar la red neuronal
Una vez definida la red, los parámetros del entretenimiento y los datos
necesarios para entrenarla, se puede realizar el entrenamiento de la red. El código es
el siguiente:
[net,tr] = train(net,pent,tent,[],[],val,test);

- net: variable tipo structure que contiene la estructura de la red y el valor de
todos los pesos y las vías.
- tr: variable que indica el resultado del entrenamiento.
Esta función muestra la ilustración 26 al ejecutarse:
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 93


Ilustración 26: Entrenamiento en Matlab
Se observa como la gráfica representa los errores que se obtienen en cada uno de
los conjuntos de datos en cada iteración del algoritmo de entrenamiento.
Cada vez que se entrene una red neuronal se obtendrán unos pesos y bias que
proporcionan un mínimo local, pero no global en la función error. Por esto cada vez
que se entrena una red, el sistema realizara 10 entrenamientos y seleccionara el que
proporcione un menor error en la predicción con el conjunto de test, entrenamiento y
validación.

3.4 Modelado de la red neuronal
Como se comentó anteriormente, el sistema necesita trabajar con 20 redes
neuronales para predecir los valores de las acciones de las 20 empresas que se están
considerando. Estas 20 redes neuronales tendrán la misma estructura ya que están
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 94

resolviendo el mismo tipo de problema, y no hay ninguna razón para suponer que
puedan tener distintas estructuras.
Escogido el tipo de red neuronal (perceptrón multicapa) es necesario establecer
los siguientes parámetros de la red neuronal:
- Algoritmo de entrenamiento
- Funciones de transferencia
- Número de capas
- Número de neuronas en cada capa
Algoritmo de entrenamiento
Se ha escogido el algoritmo de Levenberg-Marquardt integrado en la función
trainlim de Matlab, por las razones comentadas en el apartado anterior.
Funciones de transferencia
Los mercados financieros son no lineales y tienen memoria, por esto las
funciones de transferencia más apropiadas son las funciones sigmoideas, ya que son
no lineales y continuamente diferenciables (ver [MA__92]).
El uso de funciones de transferencia no lineales no implica la suposición de
independencia lineal de los patrones de entrada.
Por otra parte la última capa (cuya salida será un valor único correspondiente a la
predicción) será una función lineal, para que realice una salida ponderada a partir de
las salidas que han proporcionado todas las neuronas de las capas anteriores.
Tras haberse realizado diferentes análisis empíricos, se han escogido las
siguientes funciones de transferencia:
- Función tangente sigmoidea: para todas las capas anteriores a la capa de
salida
- Función lineal a tramos: para la última capa.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 95

Número de capas
Antes de analizar la decisión del número de capas, se va a explicar la notación
relacionada con las capas de un perceptrón multicapa.

Ilustración 27: Nomenclatura del las capas de una red neuronal
La capa de entrada corresponde a las entradas a la red neuronal, en este caso 30.
Estudios anteriores han mostrado que con dos capas ocultas se puede aproximar
funciones con una precisión arbitrariamente buena (ver [CYBE89]). Hasta ahora no
se han publicado estudios de perceptores multicapa con más de dos capas ocultas. Se
parte por tanto de una red neuronal con dos capas ocultas.
Número de neuronas en cada capa
El número de neuronas de la capa de entrada viene fijado por el número de
entradas que se ha escogido (30 en este caso). Por otro lado la capa de salida tendrá
una única neurona, ya que sólo se tiene una salida (Correspondiente al valor que está
siendo predicho).
Existen criterios heurísticos para determinar el número de neuronas de las capas
ocultas a partir del número de entradas a la red neuronal, nunca superando el doble
de estas. Algunos estudios (ver [LACH95]) indican que el número de neuronas de
una segunda capa oculta tiene un menor efecto sobre la predicción que el número de
neuronas de la primera capa oculta. Para escoger el número de neuronas de las
distintas capas no hay otra manera que recurrir a pruebas experimentales.
Entrada 1
Entrada 2
Entrada n
….
1
2
n1

1
2
n2

1
2
nX

1

Capa de entrada 1ª capa oculta 2ª capa oculta N capa oculta
Capa de salida

Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 96

Para tomar esta decisión, se ha supuesto que la segunda capa oculta tiene 3
neuronas y se ha ido variando el número de neuronas de la primera capa oculta
buscando cuál es la red neuronal que mejor predice.
Se han estudiado cinco posibilidades (10 neuronas en la primera capa oculta, 20,
30, 40 y 50) calculando en cada una el error medio que tienen las predicciones en los
siguientes periodos:
- Periodos del conjunto de validación
- Periodos del conjunto test
- Periodos del conjunto entrenamiento
- Periodo correspondiente al día posterior a la creación de la red neuronal
Los resultados se resumen en el siguiente gráfico:


Gráfico 16: Prueba para determinar el nº de neuronas de la primera capa oculta
Red neuronal con 3 neuronas en la 2ª capa oculta
Nº de neuronas de la 1ª capa oculta
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 97

El resultado de este estudio indica que la mejor estructura es la red neuronal con
30 neuronas en la primera capa oculta.
Ya se ha decidido que la primera capa oculta tendrá 30 neuronas, ahora faltará
determinar cuántas neuronas debe tener la segunda. Para tomar esta decisión se
presupone que la primera capa oculta va tener 30 neuronas y se va variando el
número de neuronas de la segunda capa oculta para tratar de mejorar la predicción.
Se van a estudiar las posibilidades de tener 3, 7, 10, 12 y 15 neuronas en la segunda
capa oculta.
El estudio se realiza de manera análoga al anterior, estudiando los errores medios
por periodos de simulación en los mismos conjuntos de datos anteriores.
Los resultados de este nuevo estudio se muestran en el siguiente gráfico:


Gráfico 17: Prueba para determinar el nº de neuronas de la segunda capa oculta
El resultado de este estudio indica que la mejor estructura es la red neuronal con
7 neuronas en la segunda capa oculta.
Red neuronal con 30 neuronas en la 1ª capa
oculta
Nº de neuronas de la 2ª capa oculta
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 98

Red neuronal escogida
Terminado el estudio de los parámetros de la red neuronal, se ha escogido una
red neuronal con las siguientes características:
TIPO DE RED: Perceptrón Multicapa
nº de entradas 30
nº de salidas 1
nº de capas 4
nº de neuronas en la capa de entrada 30
nº de neuronas en la primera capa oculta 30
nº de neuronas en la segunda capa oculta 7
nº de neuronas la capa de salida 1
función de transferencia de la primera capa
oculta
tangente sigmoidea
función de transferencia de la segunda capa
oculta
tangente sigmoidea
función de transferencia de la capa de salida Lineal
algoritmo de entrenamiento Levenberg-Marquardt
(trainlm)
Tabla 5: Parámetros de la red neuronal escogida
Este modelo de red será el aplicado a la red neuronal de cada una de las 20
empresas.
A continuación se muestra una imagen de la estructura de la red neuronal, en la
que se observa su complejidad y el gran número de conexiones existentes.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 99


Ilustración 28: Estructura de la Red Neuronal escogida (Elaboración propia)


1 2 3 4 5 6 7 8 9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
1 2 3 4 5 6 7
1
E
n
t
r
a
d
a

1
E
n
t
r
a
d
a

2
E
n
t
r
a
d
a

4
E
n
t
r
a
d
a

8
E
n
t
r
a
d
a

1
3
E
n
t
r
a
d
a

1
9
E
n
t
r
a
d
a

3
E
n
t
r
a
d
a

7
E
n
t
r
a
d
a

6
E
n
t
r
a
d
a

1
2
E
n
t
r
a
d
a

1
8
E
n
t
r
a
d
a

5
E
n
t
r
a
d
a

1
1
E
n
t
r
a
d
a

1
0
E
n
t
r
a
d
a

1
7
E
n
t
r
a
d
a

9
E
n
t
r
a
d
a

1
6
E
n
t
r
a
d
a

1
5
E
n
t
r
a
d
a

1
4
E
n
t
r
a
d
a

2
0
E
n
t
r
a
d
a

2
3
E
n
t
r
a
d
a

2
9
E
n
t
r
a
d
a

2
2
E
n
t
r
a
d
a

2
8
E
n
t
r
a
d
a

2
1
E
n
t
r
a
d
a

2
7
E
n
t
r
a
d
a

2
6
E
n
t
r
a
d
a

2
5
E
n
t
r
a
d
a

2
4
E
n
t
r
a
d
a

3
0
C
a
p
a

d
e

e
n
t
r
a
d
a
1
ª

c
a
p
a

o
c
u
l
t
a
2
ª

c
a
p
a

o
c
u
l
t
a
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 100

4. Funcionamiento del
sistema en tiempo real






4.1 Principio de funcionamiento
4.2 Modo de prueba
4.3 Funcionamiento en tiempo real con Visual Chart
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 101

4.1 Principio de funcionamiento
En este capítulo se va a explicar cómo va a funcionar el sistema de inversión en
tiempo real. Se supone que el programa empieza a ejecutarse por la mañana antes de
que abra la Bolsa. La rutina es la siguiente:
1. Recepción de las cotizaciones de las 20 empresas
2. Cálculo de las entradas a la red neuronal
3. Normalización de las salidas
4. Simulación de la red neuronal  obtención de las salidas normalizadas
(predicciones del valor de apertura de las acciones de las 20 empresas
para el siguiente periodo)
5. Toma de decisiones de inversión
6. Ejecución de órdenes de inversión
El sistema va realizando está rutina sucesivamente y cada vez que recibe nuevas
cotizaciones analiza el beneficio que se ha obtenido con la operación anterior.

Ilustración 29: Rutina de funcionamiento en tiempo real
Recepción de
nuevas
cotizaciones
Análisis de l
beneficio
Cálculo de las
entradas a la
red neuronal
Simulación de
la red
neuronal
Toma de
decisiones
Ejecución de
órdenes de
compra venta
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 102

Como se verá en el tercer apartado de este capítulo, la obtención de entradas y la
ejecución de órdenes, se realizará a través de la plataforma Visual Chart.
La ilustración 30 muestra la arquitectura del sistema de inversión en tiempo real,
indicando cuáles son los principales pasos y qué programa los ejecuta (Visual Chart
o Matlab).
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 103


Ilustración 30: arquitectura del programa

V
I
S
U
A
L

C
H
A
R
T
1
-
c
o
t
i
z
a
c
i
o
n
e
s
.
t
x
t
2
-
c
o
t
i
z
a
c
i
o
n
e
s
.
o
k
1
1
-
d
e
t
e
c
c
i
ó
n

d
e

a
c
c
i
o
n
e
s
.
o
k
1
2
-
b
o
r
r
a

a
c
c
i
o
n
e
s
.
o
k
1
3
-
l
e
e

a
c
c
i
o
n
e
s
.
t
x
t
1
4
-
e
j
e
c
u
t
a

a
c
c
i
o
n
e
s
1
5
-
i
n
v
e
r
s
i
o
n
_
r
e
a
l
i
z
a
d
a
.
o
k
1
6
-
i
n
v
e
r
s
i
o
n
_
r
e
a
l
i
z
a
d
a
.
t
x
t
l
e
c
t
u
r
a
_
c
o
t
i
z
a
c
i
o
n
e
s
n
u
e
v
a
s
_
c
o
t
i
z
a
c
i
o
n
e
s
.
e
v
a
l
u
a
c
i
o
n
_
y
_
d
e
c
i
s
i
o
n
e
s
c
o
t
i
z
a
c
i
o
n
e
s
.
t
x
t
c
o
t
i
z
a
c
i
o
n
e
s
.
o
k
a
c
c
i
o
n
e
s
.
t
x
t
a
c
c
i
o
n
e
s
.
o
k
i
n
v
e
r
s
i
o
n
_
r
e
a
l
i
z
a
d
a
.
t
x
t
I
n
v
e
r
s
i
o
n
_
r
e
a
l
i
z
a
d
a
.
o
k
e
v
a
c
l
u
a
_
b
e
n
e
f
i
c
i
o
a
c
t
u
a
l
i
z
a
_
i
n
v
e
r
s
i
o
n
e
s
g
u
a
r
d
a
_
h
i
s
t
o
r
i
a
l
b
e
n
e
f
i
c
i
o
a
c
c
i
o
n
e
s
_
a
c
t
u
a
l
i
z
a
d
a
s
M
A
T
L
A
B
3
-
d
e
t
e
c
c
i
ó
n

d
e

c
o
t
i
z
a
c
i
o
n
e
s
.
o
k
4
-
l
e
c
t
u
r
a

d
e

c
o
t
i
z
a
c
i
o
n
e
s
.
t
x
t
5
-
b
o
r
r
a

c
o
t
i
z
a
c
i
o
n
e
s
.
o
k

y

c
o
t
i
z
a
c
i
o
n
e
s
.
t
x
t
6
-
c
r
e
a

e
n
t
r
a
d
a
s


a

l
a

r
e
d

n
e
u
r
o
n
a
l
7
-
s
i
m
u
l
a

l
a

r
e
d

n
e
u
r
o
n
a
l
8
-
a
b
r
e

e
l

f
i
c
h
e
r
o

a
c
c
i
o
n
e
s
.
t
x
t

(
a
n
t
.
)
9
-
b
o
r
r
a

a
c
c
i
o
n
e
s
.
t
x
t
9
-
t
o
m
a

d
e
c
i
s
i
ó
n

ó
p
t
i
m
a
1
0
-
e
s
c
r
i
b
e

a
c
c
i
o
n
e
s
.
t
x
t
1
7
-
e
v
a
l
u
a

e
l

b
e
n
e
f
i
c
i
o
1
8
-
a
c
t
u
a
l
i
z
a

d
a
t
o
s

d
e

i
n
v
e
r
s
i
o
n
e
s
1
9
-
b
o
r
r
a

i
n
v
e
r
s
i
o
n
_
r
e
a
l
i
z
a
d
a
.
o
k

i
n
v
e
r
s
i
o
n
_
r
e
a
l
i
z
a
d
a
.
t
x
t
2
0
-
g
u
a
r
d
a

h
i
s
t
o
r
i
a
l
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 104

Decisiones de inversión
En cada periodo se tendrá una posición, que será una variable que represente
dónde está invertido el dinero. Sólo se consideran dos posibilidades:
- No tener dinero invertido en ninguna (situación 1)
- Tener dinero invertido en dos empresas (situación 2)
Se han optado por estas dos posibilidades con el ánimo de tener una postura más
o menos conservadora.
El dinero que no se tiene invertido en ninguna empresa se le da el nombre de
dinero líquido. Para representar la posición que se tiene en un periodo determinado
se utiliza una matriz 25x1:

Para tomar una decisión en un periodo determinado, es necesario conocer la
posición del periodo actual (situación actual), el valor de las acciones de las 24
empresas en el periodo y la predicción que se ha obtenido de la red neuronal.
Al realizar una operación de compra o de venta de acciones, es necesario pagar
una serie de comisiones e impuestos. Las comisiones se pagan al intermediario
financiero que se utiliza para operar en la Bolsa, este intermediario será un broker
online (compañía que ofrece servicios de intermediación financiera a través de su
página web). El sistema debe de operar forzosamente a través de un broker online, ya
que ésta es la única manera de realizar operaciones de compra venta a través del
ordenador.
Se va a operar a través del broker online EstuBroker, ya que es el broker más
económico y compatible con Visual Chart para el tipo de operaciones que se van a
###
###
….
###
###
Dinero invertido en empresa 1
Dinero invertido en empresa 2
Dinero invertido en empresa 20
Dinero líquido
…..
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 105

efectuar (ver Anexo capítulo 2). Este broker online cobra una comisión por operación
de compra o de venta del 0,05% del importe de la operación (con un mínimo de
1,5€).
Por otro lado si se venden acciones que se han comprado a un precio menor (se
ha generado una plusvalía), hay que pagar un impuesto correspondiente al 18% de la
plusvalía necesaria (ver Anexo capítulo 1).
Para realizar la toma de decisiones se ha programado en Matlab el siguiente
árbol de decisión:
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 106


Ilustración 31: Árbol de decisión
P
o
s
i
c
i
ó
n

a
n
t
e
r
i
o
r
V
a
l
o
r
e
s

a
c
t
u
a
l
e
s
V
a
l
o
r
e
s

s
i
m
u
l
a
d
o
s
C
o
m
p
r
a
r

2
c
Q
u
e
d
a
r
m
e

=
N
o
S
Í
P
a
g
a
r


2

c
o
m
i
s
i
o
n
e
s
Q
u
e
d
a
r
m
e

=
C
o
m
p
r
a
r

2

V
e
n
d
e
r

2
C
o
m
p
r
a
r

1
V
e
n
d
e
r

1
P
a
g
a
r


4

c
o
m
i
s
i
o
n
e
s
2

P
l
u
s
v
a
l
í
a
s
P
a
g
a
r


2

c
o
m
i
s
i
o
n
e
s
1

P
l
u
s
v
a
í
a
S
Í
N
o
V
e
n
d
e
r

2
P
a
g
a
r


2

c
o
m
i
s
i
o
n
e
s
2

P
u
l
s
v
a
l
í
a
s
2

q
u
e

s
e

t
i
e
n
e
n
1

q
u
e

s
e

t
i
e
n
e
d
i
s
t
i
n
t
a
s
2 1 2 1 2 2
E
m
p
r
e
s
a
s

s
e
l
e
c
c
i
o
n
a
d
a
s
P
r
e
c
i
o
s

d
e

C
o
m
p
r
a
P
o
s
i
c
i
ó
n

s
i
g
u
i
e
n
t
e
¿
S
e

t
i
e
n
e

d
i
n
e
r
o

e
n

2

e
m
p
r
e
s
a
s
?
S
Í
N
o
¿
S
u
b
e
n

2

e
m
p
.
?
¿
S
u
b
e
n

2

e
m
p
.
?
N
i
n
g
u
n
a

i
n
v
e
r
s
i
ó
n
I
n
v
e
r
s
i
ó
n

e
n

2

e
m
p
r
e
s
a
s
1 2
¿
C
u
á
l
e
s
?
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 107

Primero se analiza cuál es la situación en la que se está (se tiene el dinero en dos
empresas o no se tiene en ninguna). Y según sea está situación se tomará una
decisión dependiendo de los valores que se hayan simulado.
Puede ser que en un periodo determinado se esté en la situación de que suban dos
empresas, pero que ejecutar las órdenes implique incurrir en unos gastos (comisiones
e impuestos) superiores al beneficio predicho. En esta situación se opta por ejecutar
las órdenes, dado que si dos empresas aumentan su valor es muy probable que lo
hagan en el periodo siguiente y las comisiones tendrán que pagarse de todas formas.
Además el cargo de las comisiones e impuestos viene a representar normalmente un
0,075% de la cantidad invertida, y las predicciones que se realizan tienen una
precisión media del 0,15% (ver apartado de modo de prueba) luego no se tiene la
suficiente precisión para tomar este tipo de decisiones.
Datos de partida
Para que el sistema de inversión empiece a trabajar en tiempo real, es necesario
que disponga de una serie de datos de partida. Estos datos de partida necesarios son:
- Red neuronal: variable tipo structure con las 20 redes neuronales de las 20
empresas, entrenadas con datos históricos hasta el día anterior.
- Datos de normalización: variable tipo structure con la información referente
a la normalización de las entradas y salidas de las 20 empresas.
- Información histórica de los últimos 100 periodos: variable tipo structure
con los valores de open, high, low, close y volume de los 100 últimos
periodos de cada una de las 20 empresas. (Recuérdese que para obtener las
entradas de un periodo determinado era necesario disponer de la información
de los 100 periodos actuales).
- Empresas seleccionadas: matriz 3x2 en la que la primera fila muestra las
empresas en las se tiene invertido el dinero, la segunda fila representa el
dinero que se tiene en cada una, y la tercera representa el precio al que se
compraron estas acciones. Si no se tienen acciones de ninguna empresa, la
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 108

matriz estará compuesta por ceros menos el elemento (2,2), que contendrá el
dinero líquido que se dispone para empezar a invertir.
- Comisiones: matriz 1x2 en la que el primer elemento representa la comisión
que cobra el broker online, y el segundo la tasa de impuestos. Si se escoge el
broker online EsTuBroker, esta matriz será: comisiones= [0.0005 0.18].
Programación
Se han programado dos rutinas relacionadas con la ejecución del sistema en
tiempo real: modo de prueba y modo Visual Chart. El modo prueba consiste en la
simulación del programa en tiempo real de un día anterior, para comprobar cómo se
hubiese comportado el sistema. El modo Visual Chart es el que se utilizará para
ejecutar el programa en tiempo real.
4.2 Modo de prueba
Este modo sirve para comprobar cuántos beneficios se hubiesen obtenido si se
hubiese ejecutado el sistema en un día determinado, sin la necesidad de utilizar
Visual Chart.
Para programar este modo de prueba se ha creado una función modoprueba en
Matlab:

Ilustración 32: Función modoprueba
La matriz valores muestra la diferencia existente entre los valores simulados y
los valores reales, sirviendo para ver la precisión de las predicciones.
•num_dias
•comisiones
•empresas_seleccionadas
•red_neuronal
•hora
•datos_de_normalizacion
•n_periodos (número de periodos)
•Históricos (de las 24 empresas)
modoprueba
•posicionesydinero
•valores
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 109

La matriz posicionesydinero representa en cada periodo cuánto dinero se tiene
invertido en cada una de las empresas, y cuánto se tiene en forma líquida. También
calcula el beneficio acumulado en cada periodo según la inversión realizada.
El modo de prueba permite simular varios días reentrenando la red neuronal en
cada uno.
4.3 Funcionamiento con Visual Chart
En este apartado se presenta un programa que opera con la bolsa en tiempo real
ejecutando órdenes de compra-venta. En el programa consiste en una función de
Matlab que interactúa con Visual Chart en tiempo real.
Visual Chart es una plataforma que aporta información de la bolsa en tiempo real
y permite ejecutar órdenes de compra y venta de títulos. Tiene la ventaja de que
permite incorporar rutinas de Visual Basic para personalizar el tipo de uso que el
usuario requiera.
Visual Chart representa los datos bursátiles por medio de gráficos bursátiles que
se pueden exportar como archivos gráficos o como archivos de texto.
Se han programado una serie de sistemas en Visual Chart. Estos sistemas
consisten en programas de Visual Basic que permiten realizar automáticamente una
serie de acciones en Visual Chart.
Se han programado dos sistemas en visual chart:
- Sistema de escritura de cotizaciones
- Sistema de ejecución de órdenes
Sistema de escritura de cotizaciones (Escritura.vba)
Este sistema se encarga de recibir la información bursátil, en un periodo
concreto, de un conjunto de empresas y escribirla en un archivo de texto. Es decir,
este sistema va a proporcionar ficheros de texto con los valores de Open, High, Low,
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 110

Close y Volume de las 20 empresas al módulo de decisión implementado en Matlab.
(Escribirá 20 ficheros)
Para ejecutar este sistema es necesario abrir un gráfico que contenga la
información de las 20 empresas:

Ilustración 33: Gráfico de Visual Chart con las 20 empresas
Una vez abierto este gráfico se pasa a insertar el sistema escritura.vba. Al
insertar el sistema, se requiere indicar el nombre que desee dar a los archivos de
texto. (Es importante que estos nombres coincidan con los de Matlab.)
Sistema de ejecución de órdenes (ejecucion.vba)
Este sistema recibe información acerca de las órdenes de compra y venta, las
ejecuta en tiempo real y escribe un fichero con la confirmación de estas. El principal
problema que tiene este sistema es que sólo puede operar con una empresa. Esto se
debe a que Visual Chart todavía no permite programar sistemas que puedan realizar
órdenes de compra y venta de acciones de distintas empresas simultáneamente.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 111

Para ejecutar este sistema es necesario abrir un gráfico con datos de una sola
empresa. Los parámetros de este sistema son: nombre del fichero de confirmación,
nombre del fichero con las acciones a realizar.
El sistema funciona de la siguiente manera:
1. Recibe un fichero con las acciones a realizar (comprar, vender o no hacer
nada). Este fichero debe de indicar el número de títulos que se desean
comprar o vender.
2. Ejecuta las órdenes pertinentes
3. Escribe un fichero con la confirmación
Función funcionamiento_tiempo_real
Se ha programado una función funcionamiento_tiempo_real en Matlab, que
ejecuta el sistema de inversión en tiempo real interactuando con Visual Chart.
Antes de ejecutar la función funcionamiento_tiempo_real, es necesario insertar
los dos sistemas programados en Visual Chart. Primero es necesario abrir un gráfico
con las cotizaciones de las 20 empresas e insertar en él el sistema escritura.vba. Por
otro lado, es necesario abrir 20 gráficos independientes con la cotización de cada una
de las 20 empresas e insertar en cada uno de ellos el sistema ejecucion.vba.
Una vez se tienen los sistemas de Visual Chart en ejecución, se puede ejecutar la
función funcionamiento_tiempo_real en Matlab (con los datos de partida
comentados en el apartado 4.1 de este capítulo). Esta función irá ejecutando las
órdenes de compra y venta de acciones e irá calculando el beneficio que se va
acumulando.
El funcionamiento en tiempo real presenta problemas cuando en un periodo no
se dispone de información de alguna de las empresas, ya que no se tendrían los datos
homogéneos necesarios para calcular las entradas a la red neuronal.
Otro problema es el tiempo de ejecución de las órdenes de inversión. En muchas
ocasiones estas órdenes no se ejecutan en el instante requerido. Esto probablemente
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 112

sucede porque la negociación con el Broker Online no es automática. Cuando esto
sucede se produce una acumulación de órdenes que desbarata la ejecución del
sistema en tiempo real.
En definitiva, en este proyecto se ha elaborado un programa básico que funciona
en tiempo real con Visual Chart, se deja para futuros estudios el realizar un programa
más completo que solucione los problemas existentes con Visual Chart.




Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 113

5. Resultados y
conclusiones




5.1 Precisión de las predicciones realizadas
5.2 Evaluación de las decisiones de inversión tomadas
5.3 Evaluación del beneficio obtenido
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 114

En este capítulo se van a presentar los resultados obtenidos en una simulación
realizada entre los días 30 de Mayo y 5 de Junio. (Estos resultados se obtienen a con
los datos de valores y posicionesydinero, ver apartado 4.2 página 108). Esta
simulación comprende el estudio de las predicciones y sus consecuentes decisiones
de inversión en un total de 510 periodos (1 semana).
Para la obtención de los resultados se han simulado 5 días, reentrenando la red
neuronal al final de cada uno.
5.1 Precisión de las predicciones realizadas
Para estudiar la precisión de las predicciones realizadas se va a estudiar la
diferencia entre los valores predichos y los valores que realmente ha tomado la
acción.
En la siguiente gráfica se muestra el error medio de las predicciones realizadas
en cada una de las 20 empresas. Definiéndose el error medio como:

=
ó −

Gráfico 18: Errores medios por periodo
0,00%
0,20%
0,40%
0,60%
0,80%
1,00%
1,20%
1,40%
1,60%
1,80%
errores medios por periodo %
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 115

Se tiene un error medio global del 0,42% lo cual indica que se están realizando
predicciones con una precisión considerablemente buena. Un error del 0,42% supone
que si una acción en un periodo vale 10, la red neuronal predijo que valdría 10,04 o
9,96, por ejemplo. Pero realmente las predicciones han tenido una precisión mayor,
pues las empresas Iberia, Indra y Ferrovial han presentado un error bastante más
elevado que el resto de las empresas, y han hecho aumentar el error medio global.
Iberia ha presentado un error más alto que el resto de las empresas porque la red
neuronal identificó una tendencia alcista en el lunes 2 de junio, y la acción de Iberia
se mantuvo constante e incluso disminuyó su valor. Este tipo de situaciones pueden
darse ya que el valor de una acción se puede ver afectado por múltiplos factores que
no se han tenido en cuenta en el modelado. En este caso se podría haber producido
un comportamiento “inusual” de la acción de Iberia porque el día dos de Junio de
2008 se publicó en Reuters una noticia que indicaba que Iberia había visto un ligero
descenso en su coeficiente de ocupación (ver [REUT08]), y esta noticia podría haber
provocado que algunos inversores vendieran sus acciones.
Es interesante comparar la predicción del sistema con la predicción ingenua. Esta
última consiste en suponer que la acción no varía su valor:
+1 = ()

Gráfico 19: Comparación del error obtenido con el error de la predicción ingenua
0,00%
0,20%
0,40%
0,60%
0,80%
1,00%
1,20%
1,40%
1,60%
1,80%
errores del
sistema de
predicción
errores de la
predicción
ingenua
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 116

En el gráfico 19 se muestra la comparación entre el error obtenido con la
predicción del sistema y el obtenido con la predicción ingenua. Se observa que el
error obtenido con la predicción ingenua es menor que el obtenido con la predicción
del sistema (salvo en Endesa, Gamesa, Iberdrola e Inditex).
Esto no significa que la predicción realizada por el sistema no sea válida y que
sea mejor aceptar la predicción ingenua. Ya que la predicción ingenua supone que la
acción permanece constante y con esta suposición no se podría tomar ninguna
decisión de compra atendiendo a los criterios de decisión que se han planteado (ver
ilustración 30).
Un indicador más útil para medir la precisión de las predicciones, es el indicador
de subidas/bajadas acertadas. Una subida/bajada acertada se produce cuando se
predice que la acción va subir/bajar y la acción efectivamente sube/baja. A
continuación se muestra un gráfico con el porcentaje de subidas/bajadas acertadas así
como el porcentaje de periodos en los que se ha acertado (la subida o la bajada) para
cada una de las 20 empresas.
+ 1 > →
+ 1 ≤ →
Se considera bajada a la no variación del valor de una acción
(valor(t+1)=valor(t)). Esta consideración se debe a que una inversión en una acción
que no varía su valor, es una inversión que no lleva asociada pérdidas (ni beneficios),
pero que sí lleva asociada un coste de oportunidad, al haberse perdido la oportunidad
de invertir el dinero en otra empresa que sí hubiese incrementado su valor.

Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 117


Gráfico 20: Porcentajes de acierto en las empresas estudiadas
0
%
1
0
%
2
0
%
3
0
%
4
0
%
5
0
%
6
0
%
7
0
%
8
0
%
9
0
%
1
0
0
%
%

a
c
i
e
r
t
o
s
%

t
o
t
a
l

d
e

a
c
i
e
r
t
o
s
%

s
u
b
i
d
a
s

a
c
e
r
t
a
d
a
s
%

b
a
j
a
d
a
s

a
c
e
r
t
a
d
a
s
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 118

En el gráfico 20 esta se aprecia de forma gráfica la precisión de las predicciones
realizadas. En la mayoría de las empresas estudiadas se tiene un porcentaje de
aciertos superior al 70% lo que indica que el modelo está realizando predicciones
considerablemente correctas. Otras empresas como Ferrovial, Iberia o Inditex,
presentan un porcentaje de aciertos más bajo, esto se debe a factores del mercado que
la red neuronal no ha detectado.
Esta gráfica es la que mejor muestra la utilidad del sistema de inversión, ya que
muestra que se tiene una tasa de aciertos globales de aproximadamente 70%. Esta
tasa de aciertos supone disponer de una gran ventaja en la participación del mercado
bursátil, y presenta un escenario con infinidad de oportunidades de realizar
inversiones rentables. Esta tasa de aciertos refleja con fidelidad la precisión del
modelo ya que contempla las predicciones de una semana completa compuesta por
un total de 510 periodos de cinco minutos.
A continuación se va a comparar la precisión de las predicciones realizadas por
el sistema con la precisión de la predicción ingenua, atendiendo al indicador de
subidas y bajadas. Es importante notar que la predicción ingenua siempre establece
que la acción no varía su valor, lo cual supone considerar que siempre se predice que
la acción baja (según el criterio expuesto en la página 114).

Gráfico 21: % de aciertos de la predicción del sistema en comparación con la predicción ingenua
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
% aciertos
predicción
ingenua
% aciertos
predicción
del sistema
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 119

En el gráfico 21 se observa cómo se obtienen más aciertos con la predicción del
sistema que con la predicción ingenua. En el conjunto de todas las empresas, se tiene
una tasa global de aciertos del 70% con la predicción del sistema, y una tasa del 60%
con la predicción ingenua. Estos resultados son los que muestran que la predicción
del sistema aporta una información más útil y más exacta (respecto del indicador de
subidas/bajadas) que la ingenua.
5.2 Evaluación de las decisiones de
inversión realizadas
En este apartado se van presentar las decisiones de inversión que se han tomado
en la simulación realizada.

Gráfico 22: nº de posiciones tomadas en cada una de las empresas
En el gráfico 22 se representa el número de periodos (número de posiciones) en
los que se han tenido acciones de cada una de las 20 empresas. También muestra el
número de periodos en los que se ha decidido no invertir (rectángulo rojo).
Los criterios de inversión utilizados son los que se exponen en el apartado 4.2 de
este documento (ver página 97). Se ha decidido no invertir fuera del horario de
0
50
100
150
200
250
A
c
s
A
c
e
r
i
n
o
x
A
c
c
i
o
n
a
B
B
V
A
B
a
n
k
i
n
t
e
r
E
n
d
e
s
a
F
C
C
F
e
r
r
o
v
i
a
l
G
a
m
e
s
a
G
a
s
n
a
t
u
r
a
l
I
b
e
r
d
r
o
l
a
I
b
e
r
i
a
I
n
d
r
a
I
n
d
i
t
e
x
P
o
p
u
l
a
r
R
e
d

E
l
é
c
t
r
i
c
a
R
e
p
s
o
l
S
a
n
t
a
n
d
e
r
T
e
l
e
f
ó
n
i
c
a
U
n
i
ó
n

F
e
n
o
s
a
N
o

i
n
v
e
r
t
i
r
nº de posiciones
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 120

apertura de la bolsa (inversiones que se realizan fuera del horario se ejecutan al
precio de apertura, a las 9:05), pues se prefiere que la red neuronal realice la primera
predicción cuando le ha llegado el primer dato de un día. Se ha tomado esta decisión
para incurrir en un menor riesgo ya que en muchas ocasiones se producen
variaciones bruscas entre el precio de cierre de un día y el valor de apertura del
periodo posterior.
Llama la atención el elevado número de periodos en los que se ha tenido dinero
invertido en Iberia. Esto es debido a las predicciones realizadas en el lunes 2 de
junio, en el que se predecía que la acción de Iberia iba a incrementar su valor.
Se observa también la cantidad de operaciones de compra y venta que se han
realizado en una sola semana. Esto es lógico pues se están realizando predicciones y
tomando nuevas decisiones cada 5 minutos. Este gran número de operaciones
implicarán el pago de muchas comisiones de intermediación y de muchos impuestos
por plusvalías. A continuación se muestra el dinero pagado en comisiones y en
impuestos por plusvalía en la semana simulada:
Dinero gastado en comisiones 1.327,65 €
Impuestos pagados 946,78 €

Ambas cifras son muy elevadas. Hay que tener en cuenta que cada vez que se
realiza una operación de compra o de venta es necesario pagar el 0,05% del importe
de la operación al broker online (ver apartado 6.2). Por otra parte cuando se venden
acciones de una empresa obteniéndose una plusvalía, hay pagar un impuesto
correspondiente al 18% de la plusvalía.
Debido al elevado número de operaciones intradiarias que se realizan se podría
conseguir un descuento de usuario frecuente con el broker online. La mayoría de los
brokers online ofrecen esta posibilidad, y se podrían reducir de forma considerable el
importe de las comisiones y generar un mayor beneficio.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 121

5.3 Evaluación del beneficio obtenido
Para evaluar el beneficio obtenido en la simulación, se ha obtenido en cada
periodo el dinero que se tiene invertido (teniendo en cuenta el pago de comisiones y
de impuestos).
La siguiente gráfica muestra la evolución del dinero invertido:

Gráfico 23: Evolución del dinero invertido
Se observa cómo en todos los días se produce un incremento del dinero
invertido.
Se ha partido de una inversión de 10.000€ el viernes 30 de Mayo y se tienen
11.889€ al finalizar la jornada bursátil del jueves 5 de Junio.
Si se hubiese utilizado la predicción ingenua no se hubiese obtenido beneficio
alguno, ya que no se hubiese predicho ninguna subida y el sistema no hubiese
invertido en ninguna empresa.
A continuación se muestra una gráfica con la evolución del beneficio acumulado
en cada uno de los periodos:
9.000 €
9.500 €
10.000 €
10.500 €
11.000 €
11.500 €
12.000 €
12.500 €
dinero invertido
30/05/08 02/06/08 03/06/08 04/06/08 05/06/08
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 122


Gráfico 24: Evolución del beneficio acumulado
En el beneficio final obtenido en la inversión ha sido de 1.889 € (habiéndose
tenido en cuenta el pago de comisiones y de impuestos). Esto supone una
rentabilidad del 18,89%, rentabilidad significativamente superior a la rentabilidad de
otro tipo de inversiones (como referencia recordar que la inversión en Letras del
Tesoro tiene una rentabilidad del 4,2%). Además el periodo de retorno de esta
inversión es de tan sólo una semana, mientras que en los Letras del Tesoro es de 3 a
6 meses.
Un buen indicador para valorar el riesgo de esta de inversión es estudiar cómo ha
variado el índice IBEX-35 en el periodo estudiado. Para ello se ha representado la
variación del IBEX-35 entre las fechas simulados contrastándose con la evolución
del dinero que se tiene invertido.
9.000 €
9.500 €
10.000 €
10.500 €
11.000 €
11.500 €
12.000 €
12.500 €
dinero invertido
0 €
500 €
1.000 €
1.500 €
2.000 €
2.500 €
beneficio acumulado
30/05/08 02/06/08 03/06/08 04/06/08 05/06/08
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 123


Gráfico 25: Comparación de la variación del índice IBEX-35 con el dinero invertido
En el gráfico 25 se observa cómo la inversión es rentable a pesar de que el índice
IBEX-35 decrece en el periodo simulado. Por este motivo se puede considerar que la
inversión no tiene un riesgo excesivo dado que se obtiene una rentabilidad elevada a
pesar de que la Bolsa está en una temporada bajista.

12.900
13.000
13.100
13.200
13.300
13.400
13.500
13.600
13.700
9.000 €
9.500 €
10.000 €
10.500 €
11.000 €
11.500 €
12.000 €
12.500 €
v
a
l
o
r

d
e
l

I
B
E
X
-
3
5
d
i
n
e
r
o

i
n
v
e
r
t
i
d
o


dinero invertido
IBEX-35
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 124

6 Líneas de continuación






6.1 Incorporación de nuevas entradas
6.2 Red neuronal
6.3 Toma de decisiones
6.4 Funcionamiento en tiempo real con Visual Chart
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 125

6.1 Incorporación de nuevas entradas
Las entradas a la red neuronal que se han utilizado en este proyecto son datos
históricos e indicadores históricos. Lo cierto es que estas variables no son las únicas
que determinan las expectativas del mercado.
Se plantea la posibilidad de tratar de incluir algunas variables psicológicas,
cuantificadas de alguna manera. Por ejemplo se podría incluir una entrada que
representase el día de la semana que es (1 lunes, 2 martes, …, 5 viernes), ya que
recientes estudios estadísticos sobre las cotizaciones de las empresas del IBEX-35
muestran como el viernes suele ser un día alcista debido al optimismo de los
inversores, al contrario que el lunes (ver [ROSI07]).
También se podría pensar en incluir una entrada que representase el tiempo
meteorológico ya que éste también puede afectar al pesimismo o al optimismo de los
inversores en un momento determinado.
Otras entradas que se pueden incluir son las relacionadas con el valor de
empresas de un mismo sector. Por ejemplo, una entrada para Endesa podría ser el
estado de la tendencia de las demás compañías eléctricas europeas.
Por último se propone tratar de buscar una posibles entradas a la red neuronal
que estén relacionada con los resultados publicados por las compañías (hace cuánto
que se publicaron, expectativas, resultados parciales, etc.). Este tipo de variables
pueden ser útiles ya que son las que definen muchas posturas de los inversores (sobre
todo de los inversores a largo plazo).

6.2 Red neuronal
La red neuronal escogida en este proyecto se basa en las conclusiones realizadas
a partir de un análisis meramente empírico. Se propone la posibilidad de incorporar
una red neuronal que varíe su estructura según los datos históricos que se utilicen
para el entrenamiento.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 126

La rutina sería la siguiente:
1. Obtención de datos históricos
2. Creación de distintas redes neuronales con distintas estructuras (distinto
número de neuronas, distinto número de capas ocultas).
3. Elección de la red neuronal que presente un mejor ajuste de los datos
históricos.
El principal inconveniente que se tendría al incorporar este sistema sería que
aumentarían los tiempos de ejecución considerablemente, y estos son críticos para
operar con la Bolsa en tiempo real.

6.3 Toma de decisiones
En este proyecto se han establecido unos criterios de inversión en los que sólo se
plantea la opción de invertir en 2 empresas o de no invertir en ninguna. Dado que los
resultados muestran una tasa de aciertos considerable, se deduce que se podría
obtener un mayor aprovechamiento de las predicciones si se sofisticasen los criterios
de decisión.
Se propone plantear un sistema de inversión que pueda tomar una mayor
variedad de decisiones de inversión. Se podrían realizar valoraciones del riesgo que
implican las diferentes operaciones para tratar de incluirlas en el proceso de toma de
decisiones.
Por ejemplo, si se predice que una empresa va a ser la que más va aumentar su
valor, pero se tiene el dinero invertido en otra que también va a subir, se debería
valorar si merece la pena cambiar de posición (arriesgarse) o por el contrario seguir
con la empresa que se tiene (posición más segura).
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 127

6.4 Funcionamiento en tiempo real con
Visual Chart
En primer lugar se propone la creación de una plataforma que permita la
interacción del usuario con el sistema de forma cómoda (se podría programar esta
plataforma en Visual Basic) y gráfica, ocultando la ejecución del programa de
Matlab interactuando con Visual Chart.
También se propone la mejora de los sistemas de Visual Chart para que se
eliminen las dificultades comentadas en el apartado 4.3.
Parece ser que Visual Chart va a implementar próximamente la posibilidad de
ejecutar órdenes de compra y venta de distintas empresas simultáneamente. Cuando
esto suceda se podrá simplificar bastante el programa y desaparecerán muchas de las
dificultades existentes.
Por último, se propone la posibilidad de eliminar del sistema de inversión las
empresas que empiecen a producir predicciones confusas. Esto puede ser interesante
ya que puede haber momentos en los que un rumor sobre cambios en una empresa
(OPAS, ampliaciones de capital, etc.) pueda derivar en variaciones en el valor de una
acción que no se puedan predecir mediante la red neuronal, ya que esta no incluye
entre sus entradas este tipo de factores que afectan a la Bolsa.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 128

7. Anexos




7.1 Fiscalidad de la inversión en Bolsa
7.2 Brokers online
7.3 Guía del usuario del sistema de inversión
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 129

7.1 Fiscalidad de la inversión en Bolsa
Plusvalías y minusvalías
Plusvalías. La plusvalía es el resultado positivo o beneficio que se obtiene tras la
venta de las acciones. Se tributa dependiendo del tiempo que se hayan tenido las
acciones en la cartera:
- Duración de las acciones en cartera más de un año La plusvalía se
computa íntegramente en la base imponible del I.R.P.F. del accionista
(tipo marginal del inversor). Este tipo depende del total de su base
imponible por todos sus conceptos de renta. Por lo tanto cuanto mayor
plusvalía, en principio, mayor será la base imponible y mayor será el tipo
al que se tribute, ya que los tipos están definidos en una escala que
depende del valor de la base imponible.
- Duración de las acciones en cartera menos de un año La plusvalía
tributa al tipo fijo del 18%, independientemente de la cuantía de la
plusvalía. Con ello el legislador quiere primar la inversión a largo plazo
(siempre que el tipo marginal del inversor sea menor que el 18%), la
posesión de las acciones de una empresa como inversión, y no como
especulación. Se tiende a que este tipo vaya disminuyendo.
Minusvalías. La minusvalía es el resultado negativo o pérdida que se obtiene tras la
enajenación de las acciones. Las minusvalías se restan de la base imponible.
Dividendos
Los dividendos tienen una retención del 15%. El inversor sólo cobra neto el
85%, el 15% restante se lo retienen cuando le van a pagar los dividendos. Estos se
imputan íntegramente en el cálculo de la base imponible, el 100%, pero se puede
deducir el importe retenido, el 15%.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 130

7.2 Brokers online
¿Qué es un broker online?
Un broker (corredor de bolsa) es una persona o una sociedad que se dedica a
operar en el mercado financiero realizando operaciones para sus clientes.
Para operar en el mercado financiero es necesario ser miembro de éste; en
España los miembros autorizados para operar en la Bolsa son las agencias de valores
y las sociedades de valores. Las segundas son las “dueñas” de la Bolsa como
institución, y pueden operar por cuenta ajena o por cuenta propia; mientras que las
primeras sólo pueden operar por cuenta ajena. Los brokers suelen estar integrados en
una sociedad de valores o en una agencia de valores.
El broker es el intermediario entre la bolsa y el inversor, este último paga unas
comisiones por los servicios de intermediación, que corresponden al pago del know-
how del broker y de su licencia para operar en el mercado. Un broker online es un
broker que contacta con el inversor a través de una página web.
Los brokers online suelen operan tanto en la Bolsa española como en el MEFF
(Mercado Oficial de Futuros y Opciones Financieros en España) como
intermediarios en la venta de los productos financieros que se ofrecen en estos dos
mercados. También pueden operar en bolsas de otros países/ciudades mediante la
afiliación con entidades autorizadas para operar en éstas, o siendo miembro de éstas.
Tradicionalmente, el principal canal de contacto de los brokers con el cliente ha
sido el teléfono, a través de él, los inversores daban sus órdenes de compra-venta de
acciones o bonos. Con la llegada de Internet aparecieron los brokers online. Estos
contactan con el inversor vía online, el cliente manda sus órdenes a través de internet
y posteriormente recibe una confirmación de estas. Los brokers online, al igual que
los brokers tradicionales, ofrecen más servicios a parte de la ejecución de órdenes de
compra y venta; también ofrecen asesoría e información bursátil a través de su
página web.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 131

En definitiva un broker online es una sociedad que presta servicios de compra-
venta de valores y ofrece asesoría bursátil a través de una página web.
Elección del broker online
Para escoger un broker online se deben de tener en cuenta las siguientes
características de este:
- Servicios financieros que ofrece
- Precio de las comisiones que cobra
- Seguridad de su sistema
Visual Chart permite operar a través de 6 brokers online que se pueden
considerar seguros.
Los brokers online que operan con Visual Chart se muestran en la siguiente
tabla:




Tabla 6: Brokers online que operan con Visual Chart
El servicio financiero que necesita el sistema de este proyecto, es el servicio de
ejecución de órdenes de compra-venta de acciones de empresas del IBEX-35 en
tiempo real. Este servicio lo ofrecen Gaesco, Renta 4, Estubroker e Inversis (Interdin
ofrece servicios de compra venta de futuros e Interactive Brokers ofrece servicios de
operación en bolsas extranjeras).
La mayoría de brokers online cobran unas comisiones compuestas por una parte
fija y por una parte variable, y estas comisiones dependen del importe de la
operación que se realice.
Se va a realizar un estudio de las comisiones que cobra Renta 4, Estubroker,
Gaesco e Inversis; para escoger el broker más barato de los tres.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 132


Gráfico 26: Comisiones de los Brokers Online
En el gráfico superior se representa la comisión por operación en función del
importe de esta de cada uno de los brokers. Estas comisiones son las que
corresponden a un inversor en Bolsa que opere intradiariamente.
Se observa como EstuBroker es el broker online más barato para cualquier
importe de la operación; y por lo tanto será el que se contratará en el sistema de
inversión de este proyecto.
7.3 Guía del usuario del sistema de inversión
Creación de una red neuronal
1. Obtención de datos históricos
1.1. Abrir Visual Chart
1.2. Abrir un gráfico en ventana nueva
- Empresa: ACS
- Fecha Final: el día anterior al que se pretenda simular la red neuronal
- Fecha Inicial: un periodo que haga que el gráfico tenga más de 20200
periodos (por ejemplo, la misma fecha que la final un año más tarde)
0,00 €
5,00 €
10,00 €
15,00 €
20,00 €
25,00 €
30,00 €
35,00 €
0
2
.
0
0
0
4
.
0
0
0
6
.
0
0
0
8
.
0
0
0
1
0
.
0
0
0
1
2
.
0
0
0
1
4
.
0
0
0
1
6
.
0
0
0
1
8
.
0
0
0
2
0
.
0
0
0
2
2
.
0
0
0
2
4
.
0
0
0
2
6
.
0
0
0
2
8
.
0
0
0
3
0
.
0
0
0
3
2
.
0
0
0
3
4
.
0
0
0
3
6
.
0
0
0

/
o
p
e
r
a
c
i
ó
n
importe de la operación
Estubroker
Renta 4
Gaesco
Inversis
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 133


Ilustración 34: Obtención de datos en Visual Chart
1.3. Exportar datos: Archivo/Exportar/Gráfico a texto. Es importante guardarlo
en la carpeta que se asigna a la función homogeniza de Matlab, con el
nombre acs_historico.





Al final se tendrán 20 ficheros de texto con los siguientes nombres
Realizar los pasos 1.2 y 1.3 para las demás de empresas
(Acerinox, Acciona, BBVA, Bankinter, Endesa, FCC, Ferrovial,
Gamesa, Gas Natural, Iberdrola, Iberia, Indra, Inditex, Popular,
Red Eléctrica, Repsol, Santander, Telefónica y Unión Fenosa)
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 134


Ilustración 35: Nombres de los ficheros
1.4. Declarar la variable carpeta. Esta variable representa la dirección donde se
han guardado los ficheros con los datos descargados de Visual Chart.
carpeta='C:\Users\Juan\Documents\Proyecto\historicos'
1.5. Llamar a la función homogeniza en Matlab. Esta función va a devolver una
variable HISTORICOS con los datos históricos de las 20 empresas.
HISTORICOS=homogeniza(carpeta)
2. Entrenamiento de la red neuronal
2.1. Llamar a la función entrenared:
[redneuronal,normaliza]=entrenared(HISTORICOS,fecha,hora)
Las variables fecha y hora sirven para indicar cuál es el último periodo de los
datos HISTORICOS del conjunto que se utilizará para entrenar la red neuronal.
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 135

Lo lógico es que sea el último periodo que se dispone. Si se han descargado los
datos según el ejemplo del apartado 1.2, fecha=20080606 (viernes 6 de junio de
2008) y hora=173000. De esta manera se obtendrá la red neuronal para realizar
predicciones del día siguiente (lunes de 16 de junio de 2008).
La variable redneuronal contiene las 20 redes neuronales entrenadas para
realizar las predicciones, y la variable normaliza contiene la información
referente a la normalización de las entradas y salidas de la red neuronal.
Simulación de varios días
1. Obtención de datos históricos
Hacerlo del mismo modo que para crear la red neuronal (obtener la
variable HISTORICOS). Es importante que los datos históricos contengan los
días que se desean simular y que se tengan datos suficientes para entrenar la red
neuronal.
Por ejemplo si se quiere simular la semana del 19 al 23 de mayo de 2008, se
descargarían los datos históricos desde Visual Chart (ver ilustración 33) con
fecha inicial 02/11/2006 y fecha final 23/05/2008.
2. Llamar a la función modoprueba
[VALORES,POSICIONES]=modoprueba(fecha_inicial,fecha_final
,HISTORICOS,empresas_seleccionadas,comisiones)
A esta función habrá que proporcionarle los siguientes inputs:
- fecha_inicial: la fecha del primer día que se quiere simular, en el ejemplo
anterior sería 20080519 (lunes 19 de mayo de 2008).
- fecha_final: la fecha del último día que se quiere simular, en el ejemplo
anterior sería 20080523 (viernes 19 de mayo de 2008
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 136

- HISTORICOS: Variable de salida de la función homogeniza(carpeta),
teniéndose en la carpeta los históricos correspondientes antes
comentados.
- empresas_seleccionadas: esta variable es una matriz sirve para indicar la
situación de partida. Existen dos posibilidades:
o Tener dinero en dos empresas: la matriz tendrá la información
referente a las dos empresas (i y j) en las que se tiene el dinero
invertido. En este caso la matriz de empresas_seleccionadas será:
_ =




o No tener dinero invertido: la matriz tendrá la información
referente al dinero que se dispone para realizar inversiones. En
este caso la matriz de empresas_seleccionadas será:
_ =
0 0
0
0 0

- comisiones: esta variable es una matriz que sirve para incluir las
comisiones y los impuestos. (Actualmente si se utiliza el broker online
EstuBroker la matriz comisiones sería: [0.0005 0.18]).
= % %
Y proporcionará los siguientes outputs:
- VALORES: esta variable es una variable tipo structure (dimensión 1x
número de días simulados) en la que cada elemento contiene una matriz
que contendrá los valores reales y los valores simulados de cada uno de
los periodos de un día de la simulación. La estructura de esta matriz se
muestra en la siguiente imagen:
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 137


Ilustración 36: Formato de la variable VALORES
- POSICIONES: esta variable es una matriz que contiene el dinero
invertido que se tiene en cada una de las empresas y en cada uno de los
periodos de la simulación. Para calcular esta variable, la función
modoprueba simula las decisiones que se habrían ido tomando a partir de
las simulaciones de cada periodo. La estructura de esta matriz es:
Valores reales
Valores simulados
Fecha
Hora
Empresa
1 (ACS)

Empresa
20
(Unión
Fenosa)
Índice de
empresa
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 138


Ilustración 37: Formato de la variable POSICIONES
3. Obtención de resultados
Para la obtención de resultados se llama a la función resultados:
[VALORES,POSICIONES]=(fecha_inicial,fecha_final,HISTORICO
S)
Esta función tendrá como inputs las salidas de la función modoprueba, y como
outputs:
- dineroybeneficio: esta variable contiene el dinero invertido y el beneficio
acumulado en cada uno de los periodos de la simulación.

1 … í
… 1730




Fila con
el dinero
líquido
Dinero total que se
tiene invertido
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 139

- subidasacertadas: esta variable contiene el número total de periodos en
los que la acción ha subido, y el número de periodos en los que las
subidas han sido predichas por el sistema de inversión (para cada una de
las 20 empresas).

í . (1) º º
… … …
í . (20) º º

- bajadasacertadas: esta variable contiene el número total de periodos en
los que la acción ha bajado, y el número de periodos en los que las
bajadas han sido predichas por el sistema de inversión (para cada una de
las 20 empresas).

í . (1) º º
… … …
í . (20) º º

- aciertos: esta variable contiene el número total de periodos en los que el
sistema ha acertado con su predicción (para cada una de las 20 empresas).

í . (1) º º
… … …
í . (20) º º


- erroresmedios: esta variable contiene los errores medios unitarios de las
predicciones realizadas en cada una de las 20 empresas.

í . (1) (1)
… …
í (20) (20)

- numerodeposiciones: esta variable contiene el número de periodos en los
que se ha tenido dinero invertido en cada una de las 20 empresas.

í . (1) º (1)
… …
í (20) º (20)

Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 140

Simulación en tiempo real con Visual Basic
1. Abrir un gráfico que contenga las 20 empresas a estudiar
Con Fecha inicial correspondiente al día que se quiere simular. (Es necesario
abrir este gráfico antes de que abra la bolsa).
2. Insertar en este gráfico el sistema ESCRITURA.vba
Si es la primera vez que se utiliza el sistema de inversión en Visual Chart, es
necesario incluir el sistema en la plataforma. Para ello es necesario ir a
Sistemas/Crear sistema con plataforma Visual (ETIQUETA= ESC,
NOMBRE=ESCRITUTA) y abrir el sistema ESCRITURA.vba del CD compilarlo y
publicarlo.
Una vez se tiene el sistema en la lista de sistemas, se irá a Sistemas/Insertar
Sistema y se escogerá el sistema ESCRITURA.vba. Los parámetros a introducir en
este sistema son el nombre de los ficheros que se van a asignar a los datos de cada
una de las empresas. Es necesario que estos parámetros sean los nombres de las
empresas:
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 141


Ilustración 38: Insertar ESCRITURA.VBA
Este sistema va a ir escribiendo ficheros con la información bursátil de las 20
empresas cada periodo.
3. Insertar sistemas de ejecución de acciones
El sistema de ejecución de órdenes (EJECUCION.vba) ha de ser insertado en un
gráfico con una sola empresa (problema comentado en el apartado 4.3). Por esto es
necesario abrir 20 gráficos independientes (20 empresas) e insertar en cada uno de
ellos el sistema EJECUCION.vba
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 142


Ilustración 39: Parámetros del sistema EJECUCION.vba
En la casilla correspondiente a indiceempresa es necesario escribir el índice de la
empresa en cuestión (por ejemplo ACS=1).
3. Ejecutar la función funcionamiento_tiempo_real
Esta función devolverá una matriz posicionesydinero que tiene el mismo formato
que la variable POSICIONES de la función modoprueba (ver ilustración 36). Y una
variable valores con el formato que se muestra en la ilustración 35.



Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 143

8. Bibliografía
[CAVA06] Cava, J.L., "El arte de especular. Las técnicas que mejor funcionan".
2006.
[CLEM03] Clemens, M.P., Fransen, P.H, Swanson, "Forecasting economic and
financial time-series with non-linear models". 2003.
[CRUZ04] Cruz Torres, I., "Pronósticos en el mercado de derivados utilizando
redes neuronales y modelos ARIMA: una aplicación al Cete de 91 días
en el MexDer". 2004.
[CYBE89] Cybenko, G., "Approximation by superposition of a sigmoidal
function". 1989.
[DEMU06] Demuth, H., Beale, M. y Hagan, M., "Neural Networks Toolbox".
2006.
[EMER06] EMERGIA, "Estudio comparativo brokers online". 2006.
[EVEL06] Evelina, M., "Using economic indicators to improve investment
analysis". 2006.
[GARC02] García Estévez, P., "Aplicaciones de las redes neuronales en las
finanzas". 2002.
[GARC05] García de Jalón, y Rodríguez, J.I, "Aprenda Matlab como si estuviese
en primero". 2005.
[GARC99] García de Jalón, J., Brazález, A. y Rodríguez, J.I, "Aprenda Visual
Basic 6.0 como si estuviera en primero". 1999.
[KRÖS96] Kröse, J.A y Van der Smagt, P., "An introduction to neural networks".
1996.
[LACH95] Lachtermacher, G. y Fuller, G.D., "Backprogramation in time-series
forecasting. Journal of Forecasting, 14: 381-393". 1995.
[MA__92] Ma, G.W y Kao, C.K, "Memories, heteroscedasty and prices limit in
currency future markets". 1992.
[MALA07] Malaver Baselga, Tomás, "Proyecto de fin de carrera: Aplicación del
Juan Hornedo López-Ibor: Sistema de Inversión en bolsa a corto plazo 144

perceptrón multicapa a la compra-venta de acciones de bolsa a corto
plazo. ETSI ICAI". 2007.
[OLME04] Olmedo, E., Valderas, J.M, Mateos, R., Gimeno, R., "Utilización de
redes neuronales en la caracterización, modelización y predicción de
series temporales económicas en un entorno complejo". 2004.
[PISS02] Pissarenco, D., "Neural Networks for financial time series prediction.
Overview over recent research". 2002.
[RAYA07] Raya Bayona, L., "Invertir en Bolsa en el "muy corto plazo".
Consumer Eroski. 2007.
[REUT08] REUTERS, "Artículo: Iberia ve un ligero descenso de su coeficiente de
ocupación en 2008, (2 de Junio de 2008)". 2008.
[RODR04] Rodrigo, N., "La bolsa contada con sencillez". 2004.
[ROSI07] Rosique, C. , "El día más rentable de la bolsa. Diario Expansión (20 de
Mayo de 2007)". 2007.
[TAM_92] Tam, K.M, Kinag, M.Y, "Predicting bank failures: a neural network
approach". 1992.
[VELA07] Velasco, D., "Descubra cuáles son los brokers online más baratos,
según su perfil inversor (elEconomista.es, 29 de mayo de 2007)". 2007.
[WOJT02] Wojtek Przytula, K., "Analysis for trained neural networks". 2002.
[ZHAN98] Zhang, G.P. y Hu, M.Y, "Forecasting with artificial neural networks".
1998.