SISTEMA DE AYUDA A LA DECISIÓN DE INVERSIÓN EN BOLSA



Documentos relacionados
Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

MANUAL DE EJECUCION DE LA ESTRATEGIA Ibex35 Evolución por Josep Codina

Análisis Técnico. Inicación en Bolsa

DE VIDA PARA EL DESARROLLO DE SISTEMAS

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

MINERIA DE DATOS Y Descubrimiento del Conocimiento

Mineria de datos y su aplicación en web mining data Redes de computadores I ELO 322

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

1.1. Introducción y conceptos básicos

Parte I: Introducción

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

Unidad 1. Fundamentos en Gestión de Riesgos

CAPITULO 2 - POR QUÉ NECESITAN LAS EMPRESAS UN CUADRO DE MANDO INTEGRAL?

MODELO PARA LA ELABORACIÓN DE PROGRAMACIONES Y UNIDADES DIDÁCTICAS POR COMPETENCIAS. Autor: Daniel Hernández Cárceles

1. INTRODUCCIÓN 1.1 INGENIERÍA

ANEXO 26-A COMITÉ PERMANENTE DE INTERPRETACIÓN SIC N 32 ACTIVOS INTANGIBLES COSTOS DE SITIOS WEB. (Modificada en 2008) (IV Difusión)

Módulo 7: Los activos de Seguridad de la Información


5.4. Manual de usuario

SISTEMAS Y MANUALES DE LA CALIDAD

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Elementos requeridos para crearlos (ejemplo: el compilador)

Aula Banca Privada. La importancia de la diversificación

Gestión y Desarrollo de Requisitos en Proyectos Software

ANALISIS TECNICO I. Análisis Técnico

Aprendizaje Automático y Data Mining. Bloque IV DATA MINING

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Análisis y cuantificación del Riesgo

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

Portafolio de Servicios y Productos

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

Metodología básica de gestión de proyectos. Octubre de 2003

Activos Intangibles Costos de Sitios Web

PROCEDIMIENTO ESPECÍFICO. Código A-VI-02-A-1 Edición 0

Modelos de Ciclo de Vida de Desarrollo de Software en el Contexto de la Industria Colombiana de Software

INTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas

Productos Cotizados de Inversión de BNP Paribas BONUS CAP IBEX-35

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

CMMI (Capability Maturity Model Integrated)

5.- ANÁLISIS DE RIESGO

Técnicas de valor presente para calcular el valor en uso

Criterios de Selección de Inversiones: El Valor Actual Neto y sus derivados *.

La perspectiva humana tiene mucha importancia en la gestión empresarial

LA LOGÍSTICA COMO FUENTE DE VENTAJAS COMPETITIVAS

DISEÑO DE FUNCIONES (TRATAMIENTOS)

Procesos Críticos en el Desarrollo de Software

CAPITULO 6 SISTEMA DE DETECCION DE INTRUSOS

INGENIERÍA DEL SOFTWARE

Control del Stock, aprovisionamiento y distribución a tiendas.

CLASIFICACIÓN NO SUPERVISADA

Creación y administración de grupos de dominio

INFORME EJECUTIVO DE IDC

de la empresa Al finalizar la unidad, el alumno:

LOGISTICA D E COMPRAS

ISO 9001:2000 DOCUMENTO INFORMATIVO DOCUMENTO ELABORADO POR CHRISTIAN NARBARTE PARA EL IVECE

2. MÉTODOS, INSTRUMENTOS Y ESTRATEGIAS

SIC 32 Activos Intangibles Costos de Sitios Web

CONCEPTOS DE LA FUERZA

Capítulo 5: METODOLOGÍA APLICABLE A LAS NORMAS NE AI

SÍNTESIS Y PERSPECTIVAS

Visión global del KDD

TIPO DE CAMBIO, TIPOS DE INTERES Y MOVIMIENTOS DE CAPITAL

Activos Intangibles Costos de Sitios Web

En este ebook te vamos a contar todo lo que necesitas saber para descubrir las claves para detectar si tu empresa necesita innovar y escalar.

INSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática

Proyecto Scratch:

UNIVERSIDAD MINUTO DE DIOS PROGRAMA CONTADURÍA PÚBLICA

Covarianza y coeficiente de correlación

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

forma de entrenar a la nuerona en su aprendizaje.

Gestión de la Configuración

CONCEPTO DEL ÍNDICE ACCIONARIO

PLAN DE CONVERGENCIA PROYECTO Nº 32-A

Por qué fracasan los Proyectos?

UNIVERSIDAD DE SALAMANCA

ANÁLISIS MODAL DE FALLOS EFECTOS (A. M. F. E.)

Capítulo 9. Archivos de sintaxis

Introducción. Definición de los presupuestos

Funcionalidades Software PROYECTOS GotelGest.Net Software para la gestión de Proyectos GotelGest.Net

Calidad Escuela de Ingeniería de Sistemas y Computación Desarrol o de Software II Agosto Diciembre 2007

GESTIÓN DE LA CALIDAD

Práctica del paso de generación de Leads

Base de datos II Facultad de Ingeniería. Escuela de computación.

Capítulo 2. Metodologías de selección de personal

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

GedicoPDA: software de preventa

Gestión de Configuración del Software

Versión final 8 de junio de 2009

3. Métodos para la evaluación de proyectos

2 EL DOCUMENTO DE ESPECIFICACIONES

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Generalidades. DOCUMENTOS DE PATENTES COMO FUENTE DE INFORMACION TECNOLOGICA

Servicio de Marketing

Las diez cosas que usted debe saber sobre las LICENCIAS de los derechos de Propiedad Industrial e Intelectual

Guía paso a paso para la cumplimentación del formulario de candidatura

Transcripción:

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO EN INFORMÁTICA PROYECTO FIN DE CARRERA SISTEMA DE AYUDA A LA DECISIÓN DE INVERSIÓN EN BOLSA AUTOR: JOSE SANJURJO FORTES MADRID, JUNIO 2009

Autorizada la entrega del proyecto del alumno: JOSE SANJURJO FORTES El Co-Director del Proyecto JOSE ÁNGEL OLIVAS VARELA Fdo.:.. Fecha: / / El Co-Director del Proyecto DAVID CONTRERAS BÁRCENA Fdo.:.. Fecha: / / Vº Bº del Coordinador de Proyectos DAVID CONTRERAS BÁRCENA Fdo.:.. Fecha: / /

UNIVERSIDAD PONTIFICIA COMILLAS ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI) INGENIERO EN INFORMÁTICA PROYECTO FIN DE CARRERA SISTEMA DE AYUDA A LA DECISIÓN DE INVERSIÓN EN BOLSA AUTOR: JOSE SANJURJO FORTES CO-DIRECTOR: DAVID CONTRERAS BÁRCENA CO-DIRECTOR: JOSE ÁNGEL OLIVAS VARELA MADRID, JUNIO 2009

A mis padres, por su constante apoyo, que en tantas ocasiones me ha dado fuerza para seguir adelante I

RESUMEN En los mercados financieros, los inversores toman una decisión cuando tienen determinada certeza de la tendencia que va a seguir el mercado según el conocimiento adquirido. Estas decisiones son tomadas siguiendo determinadas teorías o comportamientos pasados satisfactorios, es decir, el inversor entra en el mercado cuando reconoce determinado patrón de comportamiento de la bolsa dado su conocimiento del mercado Es precisamente en este aspecto en el que se centra el proyecto que se presenta: aprender los patrones que se pueden presentar en los mercados financieros e identificarlos para tomar la decisión que corresponda. Para cumplir con estos objetivos, se ha desarrollado un sistema borroso de reconocimiento de patrones capaz de predecir el comportamiento futuro del activo analizado. Como ejemplo, se ha trabajado durante el proyecto con el índice bursátil de referencia en España, el IBEX 35. El sistema desarrollado realizará un importante proceso de aprendizaje de las tendencias alcistas del pasado a partir de datos históricos disponibles. Posteriormente, será capaz de predecir la evolución futura del activo según los criterios aprendidos. El proyecto que se presenta se compone de 2 grandes sistemas: 1. El Sistema de Extracción de Conocimiento Prototípico, que toma sus bases en el KDD (Knowledge Discovery in Databases). 2. El Sistema de Predicción Borroso. El Sistema de Extracción de Conocimiento Prototípico o Sistema KDD, tiene como función obtener patrones de comportamiento a partir de un conjunto de datos históricos, mediante la incorporación de técnicas inteligentes en el aprendizaje. II

El Sistema de Predicción Borroso se encarga de, dada una situación actual con determinadas características, y con los patrones obtenidos por el Sistema de Extracción de Conocimiento Prototípico, establecer el grado de similitud entre los patrones disponibles y la situación actual, y una vez establecido deformar los patrones, adaptándose éstos a la situación real, para así predecir la evolución de la cotización en un futuro próximo en base al patrón borroso obtenido. El sistema desarrollado proporciona una estimación de la evolución futura que presentará el valor considerado (IBEX 35), en base a patrones de comportamiento pasados, así como una medida del riesgo que conllevaría adoptar una posición en el mercado. III

ABSTRACT In financial markets, investors make a decision when they think that the market will follow the trend, according to their knowledge. These decisions are taken according to certain successful theories or past behavior. The investor enters the market when he recognizes certain patterns of stock market behavior with his knowledge of the market. The present project is based on this aspect, broadly speaking, is based on learning the patterns that may arise in financial markets and operate in consequence. The arguments previously exposed, added to the fact that a machine has a power of calculation and analysis of data much larger than the investor, makes very interesting for the investor to create a system based on historical data that recognizes patterns of evolution and estimates what will happen in the near future. In this project is developed a system that recognizes patterns that have been given in the IBEX 35 over a period of time, and once recognized, and after analyzing the current situation, the system predicts the future behavior of the IBEX index based on those patterns. The present project will perform an important learning process of the upward trends of the past with the historical available information, and then it will be able to predict the future evolution of the index according to the learned criteria. The system consists of 2 major subsystems: 1. The Knowledge Extraction System, which takes its basis in the KDD (Knowledge Discovery in Databases). 2. The Fuzzy Prediction System. IV

The Knowledge Extraction System or KDD System is responsible for the recognition of patterns of behavior from a set of historical data, through the incorporation of intelligent learning techniques. Given a situation with certain characteristics and with the patterns obtained by the knowledge extraction system, the Fuzzy Prediction System is responsible for establishing the degree of similarity between the available patterns and the current situation, and then the patterns are deformed adapting them to the actual situation in order to predict the share price in the near future with the fuzzy pattern obtained. The system provides an estimate value to the future evolution of IBEX 35 based on past patterns of behavior and a measure of the risk of the market. V

ÍNDICE 1 INTRODUCCIÓN... 1 1.1 INTRODUCCIÓN... 2 1.2 OBJETIVOS... 9 2 ESTADO DEL ARTE... 11 2.1 SISTEMAS DE TRADING... 12 2.2 KDD... 14 2.2.1 Selección de Datos... 16 2.2.2 Preproceso... 17 2.2.3 Transformación... 19 2.2.4 Data Mining... 20 2.2.5 Interpretación de los Resultados... 24 2.3 PROTOTIPOS DEFORMABLES BORROSOS... 25 2.4 REDES NEURONALES... 28 2.4.1 Redes Neuronales con Aprendizaje supervisado... 29 2.4.1.1 Los Perceptrones Multicapa... 30 2.4.2 Redes Neuronales Auto-organizadas... 32 2.4.2.1 Las Redes autoorganizadas creadas por Kohonen... 33 2.5 MOTOR DE GRÁFICAS JAVA (JFreeChart)... 35 3 INVESTIGACIONES PRELIMINARES... 36 3.1 CASO 1: Ciclos-red PMC... 38 3.1.1 Transformación... 39 3.1.2 Entrenamiento... 41 3.1.3 Predicción... 41 3.1.4 Conclusión... 42 3.2 CASO 2: MM-red PMC... 43 3.2.1 Transformación... 43 3.2.2 Optimización... 45 3.2.3 Predicción... 45 3.2.4 Conclusión... 46 3.3 CASO 2B: MM Stop Loss... 47 VI

3.3.1 Selección de Medias Móviles... 48 3.3.2 Establecimiento del Stop Loss... 49 3.3.3 Cálculo de Ganancias... 49 3.3.4 Conclusiones... 49 4 SISTEMA DE AYUDA A LA DECISIÓN DE INVERSIÓN EN BOLSA... 50 4.1 DATOS HISTÓRICOS... 55 4.2 SISTEMA DE EXTRACCIÓN DE CONOCIMIENTO PROTOTÍPICO... 59 4.2.1 Selección... 61 4.2.2 Transformación... 63 4.2.2.1 Concepto de Ciclo... 65 4.2.2.2 Caracterización del Ciclo... 67 4.2.3 Data Mining... 70 4.2.3.1 Establecimiento del criterio clasificador.... 72 4.2.3.2 Clustering... 74 4.2.3.3 Caracterización de los patrones... 80 4.3 SISTEMA DE PREDICCIÓN BORROSO... 82 4.3.1 Cuantificación del momento... 84 4.3.2 Borrosificación de Patrones... 87 4.3.3 Estimación... 91 4.3.4 Riesgo... 92 4.4 ESTIMACIÓN... 94 5 EVALUACIÓN Y PRUEBAS... 97 5.1 EVALUACIÓN... 98 5.2 ESTIMACIÓN... 100 5.3 PRUEBAS... 103 6 PLANIFICACIÓN... 105 6.1 METODOLOGÍA... 106 6.2 PLANIFICACIÓN... 110 7 ESTIMACIÓN ECONÓMICA... 112 7.1 INTRODUCCIÓN... 113 7.2 COSTES DE DESARROLLO... 114 7.3 PRESUPUESTO... 117 8 CONCLUSIONES... 118 VII

8.1 CONCLUSIONES... 119 8.2 RECOMENDACIONES... 121 8.3 CUMPLIMIENTO DE LOS OBJETIVOS... 122 8.3.1 Sistema de Extracción de Conocimiento Prototípico... 123 8.3.2 Sistema de Predicción Borroso... 125 9 TRABAJOS FUTUROS... 127 BIBLIOGRAFÍA... 129 BIBLIOGRAFÍA... 130 ENLACES DE INTERNET UTILIZADOS... 131 APÉNDICE 1: Glosario de Términos... 132 APÉNDICE 2: Manual de Usuario y Ejemplos... 135 A2.1 MANUAL DE USUARIO... 136 A2.2 EJEMPLOS... 144 A2.3 OBTENCIÓN DE DATOS... 148 VIII

CAPÍTULO 1 Introducción Jose Sanjurjo Fortes Universidad Pontificia Comillas 1

1.1 INTRODUCCIÓN En los mercados financieros, la clave del éxito está en saber predecir el futuro y actuar en consecuencia. Quien consiga hacer esto, ganará mucho dinero. Puesto que los movimientos de la Bolsa son una consecuencia de la psicología de masas, predecir su comportamiento exacto conllevaría conocer la psicología individual de cada inversor, así como el modo en que ha invertido. Dada la imposibilidad para conocer tal información, es imposible predecir con precisión cómo variarán las cotizaciones a lo largo de cada día. Esto, sin embargo, no impide obtener beneficios de los movimientos de la Bolsa. Es conocido, que a lo largo de cada sesión bursátil, se suceden momentos de tendencia alcista o bajista con momentos de ausencia aparente de tendencia. De manera que, si cada vez que surgiese un movimiento tendencial se entrase en el mercado en la dirección de la tendencia y se dejasen correr los beneficios hasta su finalización, sería posible obtener beneficios de dichas posiciones y compensar así las menores pérdidas cosechadas durante los períodos de falta de tendencia. Es precisamente ésta la filosofía del presente proyecto, la cual consiste en que el inversor se suba al carro de los beneficios de la tendencia y acorte rápidamente las pérdidas de las posiciones perdedoras, de tal suerte que el balance entre posiciones ganadoras y perdedoras sea positivo al cabo de un tiempo suficientemente largo. A tal fin, son usados diversos criterios para determinar el surgimiento y finalización de un movimiento tendencial, y por consiguiente, los puntos de compra-venta en el mercado. Jose Sanjurjo Fortes Universidad Pontificia Comillas 2

El objetivo inicial de este proyecto es permitir a los usuarios obtener una estimación de la evolución futura del precio del índice bursátil IBEX 35, a partir de patrones de comportamiento aprendidos del pasado, para así proporcionar un marco de referencia al inversor a la hora de tomar decisiones en el mercado de valores. Para la realización del proyecto, es necesario conjugar técnicas de Inteligencia Artificial con conocimientos sobre el mercado de valores, para extraer, por medio de técnicas inteligentes, conocimiento oculto en los datos. Actualmente la utilización de IA (Inteligencia Artificial) en sistemas financieros es una filosofía de trabajo muy joven y poco evolucionada. Para intentar saber cómo va a estar un valor en el futuro, se distinguen tradicionalmente dos corrientes bien diferenciadas: los que siguen el análisis técnico y los que siguen el análisis fundamental. Los fundamentales se basan en que el valor de una acción es el flujo descontado de los beneficios futuros de la empresa. Así que lo que intentan determinar es cuáles serán esos beneficios futuros, y para ello tratan de conocer las vicisitudes de la empresa: noticias que les afecten, posibles movimientos societarios, estrategias, competidores, nuevos productos Y también la macroeconómica: cómo evoluciona el entorno general de la empresa, el entorno regulatorio, el entorno político En este bando se agrupan los expertos en macroeconomía, en estrategia, en economía de empresa, los financieros Jose Sanjurjo Fortes Universidad Pontificia Comillas 3

Los técnicos se basan, por el contrario, en que el valor de la acción en el futuro tiene una elevada relación con la trayectoria anterior. Aquí, el perfil es mucho más técnico ya que se buscan personas que sean capaces de crear complejos modelos matemáticos: físicos, estadísticos, expertos en econometría Figura 1: Análisis Técnico. Dentro del análisis técnico, debido al incremento de conocimientos informáticos entre los inversores, cada vez son más los que utilizan sistemas, que con unas reglas predefinidas, asesoran al inversor sobre las acciones que debería llevar a cabo sobre el mercado de valores. Jose Sanjurjo Fortes Universidad Pontificia Comillas 4

Estos sistemas, llamados sistemas de trading, se pueden clasificar en 3 grupos: a) Sistemas seguidores de tendencia: Son sistemas que tratan de identificar un movimiento determinado de los precios bajo la hipótesis de que la tendencia va a continuar, para así tomar el inversor una posición en la misma dirección que el mercado. b) Sistemas contra la tendencia: En este caso, se trata de detectar el movimiento actual de los precios, bajo la hipótesis de que el mercado, tras dicho movimiento, va a experimentar un cambio de tendencia, para así tomar el inversor una posición contraria al mismo. c) Sistemas de reconocimiento de patrones: Se trata de reconocer patrones de comportamiento, y en el momento de presentarse invertir en consecuencia. En un sentido estricto, los sistemas de inversión de reconocimiento de patrones incluirían a los dos anteriores, ya que los patrones de precios no son sino señales bien para el cambio de tendencia o bien para el establecimiento de la misma. El sistema de ayuda a la decisión en bolsa a desarrollar, pertenece al tercer tipo, ya que su labor, es aprender determinados patrones de comportamiento, para así, en el momento en el que la situación actual se parezca a alguno de ellos, obtener una predicción de evolución e invertir según lo estimado. Jose Sanjurjo Fortes Universidad Pontificia Comillas 5

Los sistemas de trading, establecen sus reglas de actuación en base al trading puro, el cual se basa en tres principios, que se deben conocer, y son los siguientes: 1. El precio lo descuenta todo. 2. Los precios se mueven en tendencias. 3. La historia se repite. 1. El precio lo descuenta todo. Este principio puede ser considerado la piedra angular del análisis técnico. Supone que todos los elementos que afectan al mercado, ya sean políticos, económicos, sociales, psicológicos, especulativos o de cualquier otra índole (lo que llamaríamos análisis fundamental), están de hecho reflejados en el precio de la acción. Por lo tanto, al analizar el precio de la acción de un mercado específico, se están analizando indirectamente todos los factores relacionados con ese mercado. Aunque de inicio podría parecer una aseveración pretenciosa, lo único que se argumenta realmente es que el precio refleja cambios en el balance entre oferta y demanda. Es conocido que cuando la demanda supera a la oferta, el precio sube, mientras que cuando la oferta supera a la demanda el precio baja. El analista técnico utiliza este conocimiento y lo invierte, llegando a la conclusión de que si el precio aumenta, es porque la demanda supera a la oferta, mientras que si el precio cae, es porque la oferta supera a la demanda. Está claro que las gráficas no se mueven por ellas mismas. Son los factores fundamentales los que causan que el precio suba o baje, a través de los cambios en el balance de oferta y demanda. Al analista técnico no le interesa conocer o analizar los factores fundamentales que causan los cambios, sino que se limita a analizar las consecuencias de los Jose Sanjurjo Fortes Universidad Pontificia Comillas 6

cambios, que son, finalmente, los precios. Por esto se dice que el análisis fundamental es un análisis de causas, mientras que el análisis técnico es un análisis de consecuencias. 2. El precio se mueve en tendencias. El concepto de tendencia es absolutamente esencial para el enfoque técnico. El objetivo principal del análisis técnico es identificar una tendencia en su etapa temprana, para establecer operaciones en la dirección de esa tendencia. Hay un corolario a este principio, que dice que es más probable que una tendencia vigente continúe a que se revierta (Debido a este principio se justifica que la inmensa mayoría de los sistemas de trading desarrollados sean tendenciales). 3. La historia se repite. Gran parte del enfoque técnico está basado en el estudio de la psicología humana, por lo que este principio es equivalente a decir que los seres humanos tendemos a reaccionar de igual manera ante circunstancias que tienden a ser iguales. Las formaciones técnicas que aparecen en las gráficas, por ejemplo, son consecuencia del sentimiento alcista o bajista del mercado, que tiende a comportarse de la misma manera ante circunstancias similares. Se asume que si funcionaron en el pasado, volverán a funcionar en el futuro. Otra forma de expresarlo es que la clave para entender el futuro es el estudio del pasado. En base a estos principios técnicos, se establece el sistema a realizar, que será un sistema de reconocimiento de patrones, que se apoyará en el hecho de que la historia se repite para realizar una predicción tendencial del precio del valor en el futuro próximo. El sistema consta a su vez de 2 grandes subsistemas: Jose Sanjurjo Fortes Universidad Pontificia Comillas 7

1. El Sistema de Extracción de Conocimiento Prototípico,, que toma sus bases en el KDD (Knowledge Discovery in Databases). 2. El Sistema de Predicción Borroso. El Sistema de Extracción de Conocimiento Prototípico o Sistema de KDD, tiene como función la obtención de los patrones a partir del conjunto de datos históricos disponibles, mientras que el Sistema de Predicción Borroso tiene como objetivo llevar a cabo la estimación de la evolución futura del precio del valor, a partir de la situación actual y del conjunto de patrones obtenidos. Figura 2: Diagrama de secuencia del sistema. A partir de los Datos Históricos, el sistema llevará a cabo un aprendizaje de las tendencias alcistas del pasado, para posteriormente predecir, en base a los criterios aprendidos, la evolución futura del índice o acción considerada una vez determinado el momento en que se encuentra. Jose Sanjurjo Fortes Universidad Pontificia Comillas 8

1.2 OBJETIVOS El objetivo principal de este proyecto es mejorar la toma de decisiones sobre el mercado de valores, permitiendo a los usuarios obtener una estimación de la evolución del precio de determinada acción o índice bursátil a partir de datos históricos. Este objetivo principal, se llevará a cabo a través de los siguientes subobjetivos: 1. Desarrollar un Sistema de Extracción de Conocimiento Prototípico, que tome sus bases en el KDD (Knowledge Discovery in Databases), el cual a partir de un conjunto de datos históricos obtenga unos determinados prototipos que definan el comportamiento del precio. Este sistema contendrá los siguientes puntos: I. Realizar la selección de los datos de trabajo, a partir de los cuales se obtendrá el conocimiento. II. Transformar la información inicial en una tarjeta de datos efectiva para realizar el reconocimiento de patrones III. Llevar a cabo el aprendizaje de patrones estableciendo mecanismos y técnicas de Clustering (agrupamiento) y obtención de los mismos. IV. Caracterizar y representar el conocimiento aprendido para transmitírselo al sistema de Predicción. Jose Sanjurjo Fortes Universidad Pontificia Comillas 9

2. Establecer un Sistema de Predicción Borroso, que a partir de los patrones obtenidos tras la consecución del objetivo anterior proporcione una estimación de la evolución del precio. Este sistema, a su vez, contendrá los siguientes puntos: I. Cuantificar el momento en base al cual se realizará la predicción. II. Establecer la similitud del momento con los patrones de comportamiento aprendidos por el Sistema de Extracción de Conocimiento Prototípico. III. Deformar los patrones obtenidos por el Sistema de Extracción de Conocimiento Prototípico, en base a su similitud con el momento de la predicción, para obtener el patrón borroso único. IV. Llevar a cabo la estimación de la evolución del precio del Índice IBEX 35 en base al momento actual y el patrón borroso obtenido. Jose Sanjurjo Fortes Universidad Pontificia Comillas 10

CAPÍTULO 2 Estado del Arte Jose Sanjurjo Fortes Universidad Pontificia Comillas 11

2.1 SISTEMAS DE TRADING Debido al incremento de conocimientos informáticos entre los inversores, cada vez son más los que utilizan sistemas de trading, que con unas reglas predefinidas, asesoran al inversor en las acciones que debería llevar a cabo sobre el mercado de valores. Estos sistemas se pueden clasificar en 3 grupos: a) Sistemas seguidores de tendencia: Son sistemas que tratan de identificar un movimiento determinado de los precios bajo la hipótesis de que la tendencia va a continuar, para así tomar el inversor una posición en la misma dirección que ellos. b) Sistemas contra la tendencia: En este caso, se procura detectar el movimiento actual de los precios, bajo la hipótesis de que el mercado, tras dicho movimiento, va a experimentar un cambio de tendencia, para así tomar el inversor una posición contraria al mismo. c) Sistemas de reconocimiento de patrones: Estos sistemas tratan de reconocer patrones de comportamiento, y en el momento de presentarse invertir en consecuencia. En un sentido estricto, los sistemas de reconocimiento de patrones incluirían a los dos anteriores, ya que los patrones de precios no son sino señales, bien para el cambio de tendencia o bien para el establecimiento de la misma. Los sistemas más utilizados son los seguidores de tendencia, ya que suelen ser los que más beneficios obtienen, aunque en realidad la ganancia del sistema depende únicamente de la habilidad del desarrollador, de su creatividad para crear un buen modelo. Jose Sanjurjo Fortes Universidad Pontificia Comillas 12

Actualmente la utilización de IA (Inteligencia Artificial) en sistemas financieros es una filosofía de trabajo muy joven y poco evolucionada. Jose Sanjurjo Fortes Universidad Pontificia Comillas 13

2.2 KDD (Knowledge Discovery in Databases) La mayor parte de las organizaciones tienen grandes bases de datos que contienen información muy importante para el negocio. Sin embargo, normalmente es muy difícil acceder a dicha información. En este contexto se encuentra el KDD. El KDD (Knowledge Discovery in Databases), es un proceso que, a través del descubrimiento y cuantificación de relaciones en los datos, permite transformar la gran cantidad de datos disponible en conocimiento útil. Dentro de los sistemas de soporte a las decisiones hallamos al KDD como una herramienta poderosa. El KDD es una idea basada en una simple analogía. El crecimiento de los almacenes de datos ha creado montañas de datos, que representan un recurso de gran valor para la organización. No obstante para extraer lo valioso de la montaña se debe excavar en esos datos, o practicar la minería, para llegar al conocimiento. El KDD es una poderosa tecnología con gran potencial para ayudar a las compañías a concentrarse en la información más importante de sus bases de datos. Al Descubrimiento de Conocimiento en Bases de Datos (Knowledge Databases Discovery o KDD) se lo define como al Proceso de extracción de información no trivial a partir de datos, para identificar patrones que sean válidos, novedosos, potencialmente útiles y entendibles. El punto clave en el proceso de KDD es darse cuenta de que hay más información oculta en los datos de lo que es posible distinguirse a primera vista. Jose Sanjurjo Fortes Universidad Pontificia Comillas 14

Las fases del proceso de KDD son las siguientes: 1. Selección de Datos. 2. Preproceso. 3. Transformación. 4. Data Mining. 5. Interpretación de los Resultados. Los datos que conforman la entrada de cada fase son la salida de la fase anterior, como se puede apreciar en la figura: Figura 3: Proceso de KDD. Jose Sanjurjo Fortes Universidad Pontificia Comillas 15

2.2.1 Selección de Datos Una vez que se tiene claro el objetivo a conseguir, y que se han formulado los requerimientos de la información (previo al proceso de KDD), el siguiente paso es recoger y seleccionar los datos que se van a necesitar. Aplicando el conocimiento del dominio y el conocimiento relevante a priori, y teniendo en cuenta los objetivos del proceso global de KDD, se crea una tarjeta de datos que contiene una selección de datos. Es evidente que reunir esta información en una base de datos centralizada no es siempre una tarea fácil, ya que esto implica una conversión de datos de bajo nivel. Por ejemplo: de un fichero plano a tablas relacionales o de sistemas jerárquicos a sistemas relacionales. Jose Sanjurjo Fortes Universidad Pontificia Comillas 16

2.2.2 Preproceso. Eliminación de Ruido Una vez que se han recogido todos los datos, el siguiente paso es limpiarlos. Normalmente no se es consciente de la cantidad de ruido que existe en los datos. Por lo tanto, suele ser necesario examinar los datos con el fin de conseguir depurarlos y dejar exclusivamente aquella información que resulte útil para el objetivo que se pretende conseguir. En la práctica esto sería una tarea difícil con grandes conjuntos de datos. Cuando las bases de datos son muy grandes es siempre aconsejable seleccionar algunos ejemplos al azar y analizarlos para conseguir una idea de los resultados que se pueden esperar. Casi todas las bases de datos contienen elementos que producen ruido en los resultados, y cuando se empiezan a observar los datos desde una perspectiva de KDD, las ideas relativas a la consistencia de los datos cambian. Por ejemplo, en una compañía de Seguros de Vida la fecha de nacimiento de sus clientes será correcta, mientras que en un Banco no es de extrañar que el 10 o 20 % de los campos de la edad estén en blanco o contengan datos incorrectos. Para la Compañía de Seguros de Vida, tener la fecha de nacimiento correcta es de vital importancia mientras que para un banco no es un asunto crítico. La mayoría de las veces, los datos vitales para un proyecto o organización son almacenados correctamente. Hasta ahora las bases de datos contenían grandes cantidades de ruido, y dado que no afectaba a la operativa normal del negocio, no era motivo de preocupación. Sin embargo, cuando se empieza a hablar de KDD, si las fechas de nacimiento no son almacenadas correctamente, es imposible descubrir patrones relacionados con la edad. Jose Sanjurjo Fortes Universidad Pontificia Comillas 17

Por lo tanto, antes de empezar el proceso de Data Mining, se deben limpiar los datos todo lo que sea posible. Esto puede ser hecho automáticamente en muchos casos, utilizando para ello herramientas existentes en el mercado. Jose Sanjurjo Fortes Universidad Pontificia Comillas 18

2.2.3 Transformación En esta etapa del proceso de KDD, se trata de buscar la mejor forma para expresar los datos dependiendo del uso posterior que se les vaya a dar y de los objetivos del sistema. Se usa el conocimiento experto, técnicas de transformación e informes en bases de datos, para transformar el conjunto de datos preprocesado en un nuevo conjunto de datos que nos permita extraer el conocimiento objetivo del sistema de KDD. En esta etapa, también es posible que se quiera enriquecer los datos, es decir, aportar información adicional que hasta el momento no había sido utilizada y que puede ser crítica en la obtención de los mejores resultados. Dicha información puede proceder del propio negocio, o puede ser obtenida de fuentes externas. del sistema. De la habilidad para transformar la información dependerá, en gran medida, el éxito Jose Sanjurjo Fortes Universidad Pontificia Comillas 19

2.2.4 Data Mining El Data Mining (Minería de Datos) lleva a cabo el descubrimiento de patrones en un conjunto de datos previamente preparados. El término Data Mining es a menudo usado como sinónimo de KDD. Sin embargo, Data Mining es sólo la fase de aprendizaje del proceso de KDD. En la fase de Data Mining, se lleva a cabo un procedimiento que ejecuta determinadas tareas y genera un conjunto de patrones. Sin embargo, no todos los patrones son útiles. El objetivo de interpretar y evaluar todos los patrones descubiertos es mantener los patrones que son interesantes y útiles para el usuario y descartar el resto. Los patrones que permanecen representan el Conocimiento Descubierto. En el Data Mining se pueden utilizar multitud de algoritmos, dentro de los cuales destacan los algoritmos inteligentes: i. Programación lógica inductiva ii. iii. iv. Reglas de asociación Árboles de decisión Redes neuronales v. Algoritmos genéticos la figura 4. Estos algoritmos, se clasifican según las tareas en las que se aplican, tal y como indica Jose Sanjurjo Fortes Universidad Pontificia Comillas 20

En la siguiente Figura se puede observar la utilización de los algoritmos inteligentes citados según las tareas en las que principalmente se aplican: Figura 4: Algoritmos Inteligentes según Utilización. Estos subgrupos representan las principales áreas de atención al seleccionar un algoritmo de Data Mining. Para la selección del algoritmo a utilizar, se atiende a tres criterios: a. Calidad de la entrada de datos. b. Calidad de la salida de datos. c. Rendimiento. Jose Sanjurjo Fortes Universidad Pontificia Comillas 21

A. Calidad de la Entrada de Datos. Un aspecto importante de la entrada de datos es el número de registros, ya que algunos algoritmos son mejores que otros al manejar un gran número de registros. Otro aspecto importante es el número de atributos: el rendimiento de redes neuronales y de los algoritmos genéticos se deteriora cuando hay un gran número de atributos en una tabla. Por último, los tipos de atributos en una tabla juegan un papel fundamental. No todos los algoritmos son buenos para manejar atributos numéricos o cadenas de caracteres, así que, esto puede ser un elemento decisivo en la elección del mejor algoritmo. B. Calidad de la Salida de Datos. Otro alcance para la selección de un algoritmo de aprendizaje puede ser un análisis de la calidad de la salida de datos deseada. Un asunto clave aquí es si el algoritmo es capaz de aprender reglas. En determinados casos, puede ser importante para seleccionar un algoritmo de aprendizaje automático que sea capaz de aprender incrementalmente, es decir, que vaya aprendiendo poco a poco. Cuando la nueva información llega a estar disponible, esta clase de algoritmos son capaces de revisar sus teorías. Esto significa que no es necesario empezar el proceso de aprendizaje otra vez, y puede ser de gran relevancia en situaciones donde tenemos grandes conjuntos de datos. Jose Sanjurjo Fortes Universidad Pontificia Comillas 22

C. Rendimiento. Un aspecto final de la evaluación de los algoritmos de aprendizaje automático es su rendimiento general. Normalmente, lo interesante es la eficiencia de los algoritmos en dos situaciones diferentes: i. La etapa de aprendizaje. ii. La etapa de la aplicación del algoritmo. Jose Sanjurjo Fortes Universidad Pontificia Comillas 23

2.2.5 Interpretación de los Resultados La etapa de interpretación de los resultados combina dos funciones diferentes: i. Análisis de los resultados de los algoritmos de reconocimiento de patrones. ii. Aplicación de los resultados de los algoritmos de reconocimiento de patrones a los nuevos datos. Llegada esta fase, es importante no sólo investigar lo que se ha aprendido, sino también aplicar la información de clasificación y segmentación que se ha recogido en las fases anteriores del proceso. Jose Sanjurjo Fortes Universidad Pontificia Comillas 24

2.3 PROTOTIPOS DEFORMABLES BORROSOS Los Prototipos Deformables Borrosos [JAOL02] [JAOL05] proporcionan un mecanismo para superar un problema que frecuentemente se produce en la aplicación de los Sistemas Basados en el Conocimiento: Asimilar el comportamiento de una situación real a un prototipo previamente establecido. Se propone realizar el proceso inverso: Deformar los Prototipos Deformables Borrosas hasta que describan la situación real. Según Zadeh [ZADE82] i. Un objeto puede estar lejos de representar bien a un concepto y sin embargo pertenecer completamente a él. ii. Un prototipo casi nunca es un objeto sencillo. Es más bien un esquema borroso que muestra en qué medida distintos objetos representan a un concepto. iii. Como consecuencia del punto anterior, la prototipicalidad es entonces un problema de grado. Como se ha indicado, para Zadeh es dudoso que el prototipo de un concepto sea un elemento. En [JAOL00] se introduce una nueva definición del concepto de prototipo, las Categorías Prototípicas Borrosas, que heredan de la Psicología las siguientes características: 1. Las categorías están internamente estructuradas mediante grados de representatividad. 2. Los límites de las categorías no son necesariamente nítidos (definidos). 3. Hay una relación muy estrecha entre los clusters de atributos y la estructura y formación de las categorías. Jose Sanjurjo Fortes Universidad Pontificia Comillas 25

La noción de prototipo deformable surge en el ámbito del reconocimiento de patrones. En este contexto, las diferentes tareas del reconocimiento de patrones suelen tener una estructura formal común: Primero hay un universo de objetos posibles U. Este universo se divide en clases de objetos que se agrupan bajo una etiqueta común (considérense, por ejemplo, los caracteres escritos). Para simplificar la tarea se define un cuadrado en el plano llamado retícula, y se asume que los caracteres a identificar aparecen individualmente en este cuadrado. En este caso, U se compone de todas las posibles configuraciones que pueden aparecer en la retícula, y si se incluyen los que no tienen sentido, U quedará constituido por todas las posibles configuraciones de dicha retícula. Lo que suele ocurrir, es que el número de objetos posibles es muy grande. Las posibles configuraciones de la retícula son infinitas, por lo que en la práctica, tanto U como la retícula se discretizan. Figura 5: Retícula discretizada / Retícula. [JAOL00] Jose Sanjurjo Fortes Universidad Pontificia Comillas 26

El proceso de extracción de conocimiento y predicción utilizando Prototipos deformables Borrosos se detalla en la siguiente figura: Figura 6: Proceso global de predicción incluyendo el DCPB. [JAOL00] Partiendo de un conjunto de datos, se obtiene la predicción llevando a cabo una deformación de los prototipos borrosos, en base a un grado de afinidad con el caso real. Jose Sanjurjo Fortes Universidad Pontificia Comillas 27

2.4 REDES NEURONALES Las técnicas más comúnmente usadas en minería de datos son las redes neuronales artificiales, los árboles de decisión, algoritmos genéticos y las reglas de inducción. Como herramientas de la Minería de Datos, las Redes Neuronales Artificiales han ganado una creciente importancia. Una definición sobre estos algoritmos introducida por Simon Haykin: "Una red neuronal es un procesamiento distribuido masivamente paralelo que tiene una tendencia natural para almacenar conocimiento empírico y hacerlo disponible para el uso. Recuerda al cerebro en dos aspectos: i. El conocimiento se adquiere por la red a través de un proceso de aprendizaje. ii. Las conexiones interneurónicas se conocen como pesos sinápticos y se usan para almacenar el conocimiento. Para poder aprender, las redes neuronales se sirven de un algoritmo de aprendizaje. Estos algoritmos están formados por un conjunto de reglas que permiten a la red neuronal aprender (a partir de los datos que se le suministran), mediante la modificación de los pesos sinápticos de las conexiones entre las neuronas (recordar que el umbral de cada neurona se modificará como si fuese un peso sináptico más). Generalmente los datos que se usan para entrenar la red se le suministran de manera aleatoria y secuencial. Jose Sanjurjo Fortes Universidad Pontificia Comillas 28

2.4.1.1 Redes Neuronales con Aprendizaje supervisado En este en modo aprendizaje se muestran los patrones a la red y la salida deseada para esos patrones y se usa una fórmula matemática de minimización del error que ajuste los pesos para dar la salida más cercana posible a la salida deseada. Las redes más significativas que usan este aprendizaje supervisado son el Perceptrón, El Perceptrón Multicapa y la red de Hopfield. Algunas de sus aplicaciones más importantes son: i. Asociadores de patrones: : se asocia dos patrones y permite recuperar la información a pesar de errores en la capa de entrada. ii. Modeladores funcionales: las redes neuronales permiten, gracias a su capacidad de ajustar el error dar los valores más cercanos a una función de la que solo sabemos algunos puntos por los que pasa. Como ejemplo de aprendizaje supervisado podemos observar, el perceptrón, que se representa en la siguiente figura: Figura 7: Funcionamiento de una neurona Perceptrón. Jose Sanjurjo Fortes Universidad Pontificia Comillas 29

2.4.1.1 Los Perceptrones Multicapa. El perceptrón simple tiene una serie de limitaciones muy importantes. La más importante es su incapacidad para clasificar conjuntos que no son linealmente independientes. Esto quedo patente en la obra Perceptrons que en 1969 demostró que un perceptrón es incapaz de aprender una función tan fácil como la XOR. Este modelo es una ampliación del perceptrón a la cual añade una serie de capas que, básicamente, hacen una transformación sobre las variables de entrada, que permiten eludir el problema anterior. Esto acaba con el problema del perceptrón, convirtiendo las funciones linealmente no independientes en linealmente independientes gracias a la transformación de la capa oculta. Además el perceptrón multicapa admite valores reales. Podemos decir que el perceptrón multicapa es un modelador de funciones universal. Arquitectura del Perceptrón Multicapa. El perceptrón multicapa consta de distintas capas, que pueden clasificarse en tres tipos: i. Capa de entrada: Constituida por aquellas neuronas que introducen los patrones de entrada en la red. En estas neuronas no se produce procesamiento. Jose Sanjurjo Fortes Universidad Pontificia Comillas 30

ii. Capas ocultas: Formada por aquellas neuronas cuyas entradas provienen de capas anteriores y las salidas pasan a neuronas de capas posteriores. iii. Capa de salida: Neuronas cuyos valores de salida se corresponden con las salidas de toda la red. Figura 8: Funcionamiento de una red Perceptrón Multicapa (PMC). En la figura anterior, se muestra una Red Perceptrón multicapa con n neuronas de entrada, m ocultas y una de salida El perceptrón multicapa (PMC) se utiliza principalmente para predicción. Jose Sanjurjo Fortes Universidad Pontificia Comillas 31

2.4.2 Redes Neuronales Auto-organizadas Este grupo de redes neuronales se caracteriza porque en su entrenamiento no se presentan las salidas objetivo que se desean asociar a cada patrón de entrada. La red, a partir de un proceso de auto-organización, proporcionará cierto resultado, el cual será reflejo de las relaciones de similitud existentes entre dichos patrones de entrada. La principal aplicación de estos modelos, será la realización de agrupamiento de patrones (Clustering), visualización de datos y representación de densidades de probabilidad. A diferencia de lo que sucede en el aprendizaje supervisado, en el no supervisado (auto-organizado) no existe ningún maestro externo que indique si la red neuronal está operando correcta o incorrectamente, pues no se dispone de ninguna salida objetivo hacia la cual la red neuronal deba tender. Jose Sanjurjo Fortes Universidad Pontificia Comillas 32

2.4.2.1 Las Redes autoorganizadas creadas por Kohonen Teuvo Kohonen presentó en 1982 un modelo de red neuronal con capacidad para formar mapas de manera similar a como ocurre en el cerebro. Esta red neuronal, desarrollada por Teuvo Kohonen, se basa en que nuestro cerebro está dominado por lo que se denomina cortex cerebral que es una estructura muy compleja de billones de neuronas y cientos de billones de sinapsis. El cortex no es ni homogéneo ni uniforme, es una red de neuronas autoorganizadas por tipos según la actividad que gobiernan. Por lo tanto los patrones se organizan por proximidad entre ellos. El objetivo de Kohonen era demostrar que en un estímulo externo (información de entrada) por sí solo, suponiendo una estructura propia y una descripción funcional del comportamiento de la red, era suficiente para forzar la formación de mapas. Las redes presentadas por Kohonen pertenecen a la categoría de las redes competitivas o mapas de autoorganización, es decir, aprendizaje no supervisado. Poseen una arquitectura de dos capas (una de entrada y la segunda de salida), presenta funciones de activación lineales y flujo de información unidireccional. Las unidades de entrada reciben datos, vectores de patrones normalizados, se normalizan así mismo los pesos de las conexiones con la capa de salida. Tras el aprendizaje de la red, cada patrón de entrada activará una única unidad de salida. El objetivo de este tipo de redes es clasificar los patrones de entrada en grupos de características similares, de manera que cada grupo activará siempre la(s) misma(s) salida(s). Cada grupo de entradas queda representado en los pesos de las conexiones de la Jose Sanjurjo Fortes Universidad Pontificia Comillas 33

unidad de salida que activa. La unidad de salida ganadora para cada grupo de entradas no se conoce previamente, es necesario averiguarlo después de entrenar a la red. En la figura siguiente se muestra la activación de un mapa de Kohonen de arquitectura 4x4, con una región de vecindad de valor 1. Figura 9: Mapa de Kohonen (4x4), con una región de vecindad de valor 1. El mapa auto-organizativo ó SOM (Self Organized Map) ha probado ser una herramienta valiosa en Minería de Datos y KDD en aplicaciones de análisis de datos financieros. Se ha aplicado en forma exitosa en problemas de ingeniería tales como reconocimiento de patrones, análisis de imágenes, monitoreo y diagnóstico de fallas. Jose Sanjurjo Fortes Universidad Pontificia Comillas 34

2.5 MOTOR DE GRÁFICAS JAVA (JFreeChart) Debido a la necesidad de Utilizar gráficas para la aplicación, se ha integrado una herramienta de gráficas, con licencia GPL, para poder llevar a cabo la representación de los resultados. Para realizar la representación se ha utilizado la herramienta de Software Libre JFreeChart, debido a que las demás soluciones estudiadas presentaban grandes complicaciones para realizar simples tareas. JFreeChart es una librería de gráficas java gratuita, que permite dibujar gráficas de calidad en aplicaciones. Posee un gran inconveniente que es la falta de documentación, ya que ésta es de pago, lo cual hace la herramienta prácticamente inaccesible al desarrollador, a no ser, claro está, que pague por la documentación. Figura 10: Gráfico de JFreeChart. Jose Sanjurjo Fortes Universidad Pontificia Comillas 35

CAPÍTULO 3 Investigaciones Preliminares Jose Sanjurjo Fortes Universidad Pontificia Comillas 36

Antes de obtener el sistema final, durante el desarrollo del proyecto se han creado otros sistemas, este proyecto ha constituido una evolución desde el primer sistema desarrollado hasta el último, fundamentando las nuevas decisiones de diseño de cada sistema en lo aprendido en el anterior. Jose Sanjurjo Fortes Universidad Pontificia Comillas 37

3.1 CASO 1: Ciclos- red PMC En primer lugar, dadas las técnicas de Inteligencia Artificial aprendidas, se ha tratado de predecir el precio de la cotización de determinado valor (ejemplo: acción Banco Santander), en base a los datos históricos de dicho valor. Para realizar esta predicción se utilizó una red neuronal Perceptrón Multicapa (red PMC), la cual, tras ser entrenada con los datos históricos disponibles, informaría a partir de un nuevo conjunto de datos, del precio que alcanzará en el corto plazo, así como el número de días que tardará en alcanzarlo. La arquitectura del sistema, es la mostrada en la figura siguiente: Figura 11: Arquitectura del Sistema: Ciclos- red PMC.. Jose Sanjurjo Fortes Universidad Pontificia Comillas 38

Para realizar la predicción, se han seguido las siguientes etapas: 3.1.1 Transformación En primer lugar, las clases que se van a predecir son la ganancia obtenida en el corto plazo y el número de días que se tarda en obtener esa ganancia, por lo tanto se diseña un algoritmo que, para cada día del histórico considerado, evalúa la evolución posterior de la cotización, y calcula cuál es la mayor ganancia en un menor período de tiempo, es decir, la mayor ganancia marginal media. La lógica anterior se puede ver gráficamente en la tabla 01, donde la mayor ganancia marginal media es la alcanzada tras 4 días, por lo tanto, para el día que se está tratando (día 0) tendrá una ganancia de 0,35 en un tiempo de 4 días. Ganancia Marginal Ganancia Total Días Ganancia Marginal Media (Ganancia total/días) Día 0 0 0 0 0 Día 1 0,2 0,2 1 0,2 Día 2 0,4 0,6 2 0,3 Día 3-0,1 0,5 3 0,17 Día 4 0,9 1,4 4 0,35 Día 5-0,4 1 5 0,2 Día 6-0,2 0,8 6 0,13 Día 7 0,5 1,3 7 0,18 Tabla 01: Cálculo de Ganancia y Días. Este cálculo se repite iterativamente con todos los días del histórico, para asignarle a cada día la ganancia que producirá, ya que esta ganancia es lo que posteriormente se ha de predecir. Jose Sanjurjo Fortes Universidad Pontificia Comillas 39

Para poder llevar a cabo el entrenamiento de la red PMC, es necesario transformar el conjunto de datos, a otro que guarde relación entre sí. Los datos disponibles tienen los campos mostrados en la siguiente figura, con lo que para poder entrenar una red neuronal, se necesita transformar estos datos en ciclos, que agrupen datos consecutivos en el tiempo como se puede ver en la figura. Figura 12: Datos Disponibles -> Ciclos. No tiene sentido entrenar una red PMC con ejemplos en los que cada uno de ellos contenga la cotización de un día e intentar predecir la ganancia que se obtendrá y el número de días que se tardará en predecir, pero sí si contienen un conjunto de 30 cotizaciones, ya que en este caso, dada una evolución de la cotización del valor se puede tratar de predecir la ganancia que se alcanzará tras determinado número de días, en base a las evoluciones pasadas parecidas a la actual, que es en definitiva el funcionamiento de la red PMC (Figura 13). Jose Sanjurjo Fortes Universidad Pontificia Comillas 40

En la siguiente figura se ilustra el concepto de ciclo, donde se pasa de considerar cotizaciones singulares, a considerar conjuntos de las mismas. Figura 13: Concepto de Ciclo. 3.1.2 Entrenamiento Al realizar esta transformación, los datos ya guardan relación temporal entre ellos, y con ello, se puede entrenar la red neuronal con el conjunto de ciclos disponible. 3.1.3 Predicción Una vez la red está bien entrenada, conociendo la evolución de las últimas cotizaciones del valor, la red obtendrá una predicción del precio alcanzado y el tiempo que tardará en conseguirlo. Jose Sanjurjo Fortes Universidad Pontificia Comillas 41

3.1.4 Conclusión Tras realizar el entrenamiento y la posterior predicción. La red (tras probar con diferentes topografías y configuraciones) produce un error de predicción que no es lo suficientemente bajo para realizar una predicción efectiva de las cotizaciones. Pero de esto se desprende, que conociendo únicamente un pequeño rango de valores, no se puede estimar la evolución del precio del valor, se necesita, al menos, saber qué es lo que ha sucedido con anterioridad, lo cual se resuelve con el diseño del siguiente sistema. Jose Sanjurjo Fortes Universidad Pontificia Comillas 42

3.2 CASO 2: MM-red PMC Conociendo el principal problema del caso anterior, se ha decidido modificar los ciclos, reflejando en estos nuevos ciclos, la solución al problema acontecido anteriormente. Al igual que en el caso anterior, se procederá a entrenar una red neuronal con los ciclos obtenidos tras la transformación de los datos iniciales. 3.2.1 Transformación En este caso, los ciclos se compondrán de las últimas cotizaciones y de la ganancia alcanzada, así como el tiempo que se ha tardado en alcanzar esa ganancia (al igual que en caso anterior), pero además, el ciclo constará también de un conjunto de medias móviles que actuarán a modo de resumen de la situación a medio y largo plazo, como se puede apreciar en la figura 14. Figura 14: Concepto de Ciclo/ MM-Red PMC. Estos resúmenes no son más que medias móviles, siendo la primera de las 10 últimas sesiones, r2 de las 25 sesiones anteriores a ésta y r3 las 50 sesiones anteriores a r2. Con esta arquitectura de Ciclo obtenemos una mayor información de la situación en la que nos encontramos. Jose Sanjurjo Fortes Universidad Pontificia Comillas 43

Con esta nueva visión del ciclo, para finalizar la etapa de transformación, sólo queda aplicar el algoritmo de obtención de ganancias y tiempo en el que se obtienen del apartado anterior, para entrenar la red PMC, ya que este es el objetivo del sistema, predecir la ganancia que se obtendrá y el tiempo que se tardará en alcanzarla. Llegado este punto, nos encontramos en disposición de entrenar la Red PMC como hemos hecho en el caso anterior, siguiendo el esquema mostrado en la figura 15. Figura 15: Arquitectura Caso 2: MM-Red PMC. Una vez se ha entrenado la red PMC con los ciclos obtenidos tras la etapa de transformación, se lleva a cabo la optimización de los resúmenes o medias móviles. Jose Sanjurjo Fortes Universidad Pontificia Comillas 44

3.2.2 Optimización Tras realizar el entrenamiento de la red neuronal PMC, se evalúan su resultados, es decir, la bondad del aprendizaje y su capacidad de predicción frente a un conjunto de validación, tras lo cual, se vuelve a la etapa de transformación para modificar los ciclos, y en particular los resúmenes, modificando el número de medias consideradas y el rango temporal de cada una de ellas, buscando así el conjunto de medias óptimas para una posterior predicción. 3.2.3 Predicción Tras cuantificar el momento en el que nos encontramos, es decir, calcular los resúmenes oportunos y establecer el ciclo, se predice con la red neuronal la ganancia esperada y el número de días que se tardará en obtenerla, es decir, la estimación final. Jose Sanjurjo Fortes Universidad Pontificia Comillas 45

3.2.4 Conclusión Al finalizar el proceso y tras probar con distintas topologías y parámetros de la red PMC se obtiene un mejor ajuste que en el caso anterior, esto es debido a la incorporación de los resúmenes, que dan al ciclo una visión de lo que ha pasado antes, no solo de su situación en el corto plazo como ocurría en el caso 1, sino también de su situación respecto al medio y largo plazo, por medio de una serie de medias móviles. En resumen se ofrece una visión tendencial mucho más amplia, siendo la carga computacional del modelo poco mayor que la anterior. De todos modos, el error de predicción continúa siendo más elevado de lo deseado, esto es debido a que, al fin y al cabo, se está realizando una separación por días, siendo éste un mal separador, ya que el mismo patrón puede presentarse más acelerado o menos. Tras estas conclusiones, se decide realizar un nuevo modelo, con una nueva filosofía que salva todos estos obstáculos, un modelo mucho más estructurado que toma sus bases en [JAOL00] e incorpora una serie de novedosos algoritmos para realizar una predicción efectiva (Capítulo 4). Jose Sanjurjo Fortes Universidad Pontificia Comillas 46

3.3 CASO 2B: MM Stop Loss Antes de realizar el sistema final, desprendido de una curiosidad despertada durante la realización del Caso 2, se decide realizar un estudio de la cantidad de dinero que es posible ganar con un sistema que invierta según la situación del precio de la acción respecto de un conjunto de medias móviles y la optimización del stop Loss. Antes de continuar se aclararán un par de conceptos: i. Una Media Móvil es una media de las últimas n sesiones, que se recalcula a medida que pasa el tiempo. ii. El Stop Loss es el punto de salida del mercado, es decir, si compramos determinada acción porque pensamos que el precio de la misma va a subir, situamos un Stop Loss a un determinado precio por debajo del de compra, para en el caso de que nos equivoquemos y la acción caiga, vender la acción y asumir las perdidas, limitando así la cantidad de capital perdido. Antes de continuar es de vital importancia para la comprensión del estudio el saber de que para el cálculo de las ganancias, el sistema únicamente invierte en el caso de que el precio de la cotización sea mayor que todas las medias consideradas, o lo que es lo mismo, en un lenguaje más financiero, que se encuentra alcista respecto a las tendencias consideradas. de capital. Así mismo para el cálculo de ganancias no se tiene en cuanta ni las comisiones ni límite Jose Sanjurjo Fortes Universidad Pontificia Comillas 47

El estudio consta de las etapas que se pueden observar en la figura 16, que se describen a continuación. Figura 16: Arquitectura Caso 2B: MM - Stop Loss. 3.3.1 Selección de Medias Móviles En primer lugar, el modulo de selección de Medias Móviles, se encarga de establecer para cada día del conjunto de datos históricos un conjunto de medias móviles, y asigna a cada una de ellas un número de sesiones determinadas, del que tendrá que calcular la media, estableciendo así para cada día un conjunto de medias móviles con sus valores. Jose Sanjurjo Fortes Universidad Pontificia Comillas 48

3.3.2 Establecimiento del Stop Loss Este módulo se encarga de establecer, el valor del Stop Loss en porcentaje sobre el precio actual del valor. El objetivo de este módulo es conocer cuál es el valor del Stop Loss óptimo para el conjunto de datos de entrada, es decir, el que repercuta en una mayor ganancia final. 3.3.3 Cálculo de Ganancias En este paso, se calculan las ganancias alcanzadas por el sistema, e iterativamente se vuelve a iniciar todo el proceso para conocer la relación de Medias Móviles y Stop Loss que producen un mayor beneficio. 3.3.4 Conclusiones Tras la realización del estudio se puedo observar que un buen conjunto de medias es el formado por las 3 medias móviles de 20,50 y 200 sesiones, con un stop loss del 97% del precio de la acción. El conjunto de parámetros mencionado produce una ganancia anual del 40% del capital invertido, pero sin tener en cuenta ni comisiones ni capital máximo disponible en cartera, por lo tanto el modelo carece de validez, pero sí nos da una idea de cómo funcionan los sistemas de trading automáticos, que permiten obtener beneficios del mercado de forma desatendida, sin necesidad de dedicarle mucho tiempo, únicamente el necesario para llevar a cabo una supervisión de que el sistema esté funcionando correctamente. Jose Sanjurjo Fortes Universidad Pontificia Comillas 49

CAPÍTULO 4 Sistema de ayuda a la decisión de inversión en bolsa Jose Sanjurjo Fortes Universidad Pontificia Comillas 50

En este capítulo, se documentará el sistema de reconocimiento de patrones desarrollado, objeto del presente proyecto. A partir de los Datos Históricos, el sistema desarrollado llevará un aprendizaje de las tendencias alcistas del pasado, para posteriormente predecir, en base a los criterios aprendidos, la evolución futura del índice o acción considerada, una vez determinado el momento en que se encuentra. El sistema consta a su vez de 2 grandes subsistemas: I. El Sistema de Extracción de Conocimiento Prototípico,, que toma sus bases en el KDD (Knowledge Discovery in Databases). II. El Sistema de Predicción Borroso. El Sistema de Extracción de Conocimiento Prototípico o Sistema KDD, tiene como función la obtención de los patrones a partir del conjunto de datos históricos disponibles, mientras que el segundo tiene como objetivo llevar a cabo la estimación de la evolución futura del precio del valor, a partir de la situación actual y del conjunto de patrones obtenidos como se muestra en la figura siguiente: Figura 17: Diagrama secuencial del Sistema de Ayuda Inteligente a la Decisión. Jose Sanjurjo Fortes Universidad Pontificia Comillas 51

En el presente proyecto, se ha extendido la fase de Interpretación de los Resultados del modelo de KDD debido a la complejidad de la que se dotará, creando un Sistema de Predicción Borroso. Para entender los pasos del modelo de predicción es importante comprender el concepto de ciclo en este proyecto, así como el de patrón: Se considera un ciclo el conjunto de cotizaciones pertenecientes a una tendencia alcista, son aquellos elementos que se encuentran dentro de una subida de los precios, en definitiva un ciclo no es más que un conjunto de precios de intervalos de tiempo consecutivos que se encuentran dentro de una tendencia alcista. bajada. Estos ciclos siempre comienzan tras una bajada de las cotizaciones y finalizan con otra Un patrón es el resumen de las características de un conjunto de ciclos similares. La similitud de los ciclos, es evaluada en el sistema mediante un mapa de Kohonen, para posteriormente obtener los patrones que resumirán dicho conjunto de ciclos. Jose Sanjurjo Fortes Universidad Pontificia Comillas 52

La arquitectura ra del sistema es la mostrada en la figura 18, donde se puede apreciar la división del proyecto en el Sistema de Extracción de Conocimiento Prototípico o Sistema KDD, y el Sistema de Predicción Borroso. Figura 18: Arquitectura Sistema de Ayuda Inteligente e a la Decisión de Inversión. En el Sistema de Extracción de Conocimiento Prototípico (Sistema KDD) es de vital importancia el proceso de transformación, en el cuál, se han desarrollado novedosos algoritmos de selección de ciclo y cuantificación del mismo, así como el proceso de Data Mining, donde se realiza el Clustering de los ciclos considerados por similitud, mediante un mapa de Kohonen desarrollado íntegramente para la realización del agrupamiento de ciclos. Jose Sanjurjo Fortes Universidad Pontificia Comillas 53

Como se puede observar en la figura anterior, para la realización de este proyecto se ha extendido la fase de Interpretación de los Resultados del modelo de KDD debido a su complejidad, creando un sistema de predicción borroso, el Sistema de Predicción Borroso, el cual obtiene como entrada los patrones aprendidos tras el proceso de Extracción de Conocimiento Prototípico, así como un nuevo conjunto de datos a partir de los cuales llevará a cabo la predicción en base a los patrones. Dentro del Sistema de Predicción Borroso cabe destacar la importancia del algoritmo de cuantificación del momento del ciclo en el que nos encontramos, y en especial, el algoritmo de deformación de patrones que toma sus bases en [JAOL00]. Jose Sanjurjo Fortes Universidad Pontificia Comillas 54

4.1 DATOS HISTÓRICOS Para la realización del proyecto es necesario obtener los datos históricos de las cotizaciones del valor sobre el que se trabaja (en este caso el principal índice español, el IBEX 35), donde cuanta mayor información se disponga, mayor será el conjunto de elementos a elegir. Se han utilizado 2 fuentes de datos distintas: i. Datos Históricos obtenidos del programa de trading Visual Chart (Véase punto 3 del Anexo 2). ii. Históricos de los precios a final de día disponibles online en el área de finanzas de Yahoo!. Tanto la etapa de Extracción de Conocimiento Prototípico como la de Predicción Borrosa utilizan como datos históricos los obtenidos del Visual Chart ya que la utilización de los mismos es más fácil para realizar las pruebas, así como no se requiere estar permanentemente conectado a internet, y lo más importante, se pueden obtener los datos en el rango temporal que se desea, ya sea en intervalos de días, de minutos o por ticks. Los datos obtenidos de Yahoo! Finanzas, se emplean en la ventana inicial de la aplicación para mostrar una gráfica contextual donde se puede apreciar la evolución de las cotizaciones en los últimos días, en la cual se puede hacer zoom y observar determinados períodos con mayor precisión. Jose Sanjurjo Fortes Universidad Pontificia Comillas 55

Los datos obtenidos de la plataforma Visual Chart contienen un conjunto de registros ordenados por fecha y hora que contienen los siguientes campos mostrados en la figura 19. i. Fecha: La fecha de inicio del intervalo considerado. ii. iii. iv. Hora: Hora de inicio del intervalo considerado. Precio Apertura: El precio del valor al inicio del intervalo. Precio Máximo: Máximo precio que alcanza el valor en el intervalo. v. Precio Mínimo: Precio mínimo que alcanza el valor en el intervalo. vi. vii. Precio Cierre: Precio del valor al final del intervalo. Volumen Contratación: Número de transacciones de compra-venta llevadas a cabo en el intervalo considerado. Figura 19: Campos de los datos obtenidos de Visual Chart. El principal dato con el que se trabajará en este proyecto es el precio de cierre del valor en cada intervalo de tiempo. Jose Sanjurjo Fortes Universidad Pontificia Comillas 56

Por otro lado, Yahoo! Finanzas ofrece acceso a datos históricos de las cotizaciones en formato de tabla para varios períodos de tiempo, o mostrando únicamente los dividendos: i. Diario ii. iii. iv. Semanal Mensual Dividendos Donde cada fila de datos contiene la información siguiente (Figura 20): v. Fecha: la fecha de inicio del intervalo considerado. vi. vii. viii. ix. Precio Apertura: El precio del valor al inicio del intervalo. Precio Máximo: Máximo precio que alcanza el valor en el intervalo. Precio Mínimo: Precio mínimo que alcanza el valor en el intervalo. Precio Cierre: precio del valor al final del intervalo. x. Volumen Contratación: número de transacciones de compra-venta llevadas a cabo en el intervalo considerado. Figura 20: Campos de los datos obtenidos de Yahoo! Finanzas. Jose Sanjurjo Fortes Universidad Pontificia Comillas 57

El rango temporal de los datos tomados de Yahoo! Finanzas será diario, para mostrar la evolución de la cotización de la forma más precisa posible. Jose Sanjurjo Fortes Universidad Pontificia Comillas 58

4.2 SISTEMA DE EXTRACCIÓN DE CONOCIMIENTO PROTOTÍPICO El Sistema de Extracción de Conocimiento Prototípico o Sistema de KDD, tiene como objetivo obtener los patrones que definen el comportamiento de los ciclos o tendencias alcistas a partir del conjunto de datos históricos disponibles, a través de las distintas etapas del proceso de KDD, que se muestran en la figura 21. Figura 21: Fases del Proceso de KDD. Sin embargo, debido al estado de los datos, que no se encuentran campos en blanco ni hay datos desechables, la etapa de preproceso de datos no es necesaria para el proyecto, con lo cual los datos seleccionados son los que sirven de entrada al proceso de transformación, omitiendo la etapa de preproceso. Jose Sanjurjo Fortes Universidad Pontificia Comillas 59

Las distintas fases del proceso de Extracción de Conocimiento Prototípico se pueden apreciar en la figura 22, donde se aprecia que partiendo del conjunto de datos históricos, se obtienen los patrones siguiendo las fases del modelo de KDD. Figura 22: Arquitectura del Sistema de Extracción de Conocimiento Prototípico. Los patrones aprendidos, son en definitiva resúmenes de los ciclos considerados, que generalizan el comportamiento de las tendencias alcistas de la bolsa, para poder así predecir situaciones futuras en base a las situaciones pasadas similares a la actual, la obtención de estos patrones es un proceso que envuelve las distintas etapas mostradas en la figura 22, que se detallan a continuación. Jose Sanjurjo Fortes Universidad Pontificia Comillas 60

4.2.1 Selección El primer paso para la obtención del conocimiento prototípico, objetivo del Sistema de Extracción de Conocimiento Prototípico o Sistema KDD donde se integra este proceso, es seleccionar de entre el conjunto de datos disponibles, los datos objetivo con los que se va a trabajar (Véase punto 3 del Anexo 2). La fuente de datos utilizada para este módulo, son los datos históricos proporcionados por el programa de trading Visual Chart. Este conjunto de datos presenta los siguientes campos: i. Fecha: Es la fecha de inicio del intervalo considerado. ii. iii. iv. Hora: Es la hora de inicio del intervalo considerado. Precio Apertura: El precio del valor al inicio del intervalo. Precio Máximo: Máximo precio que alcanza el valor en el intervalo. v. Precio Mínimo: Precio mínimo que alcanza el valor en el intervalo. vi. vii. Precio Cierre: Precio del valor al final del intervalo. Volumen Contratación: Número de operaciones de compra-venta llevadas a cabo en el intervalo considerado. La primera decisión a tomar en este punto es el rango temporal que se va a considerar, es decir, la duración de los intervalos con los que se va a trabajar, no es lo mismo trabajar con intervalos de 5 minutos, en cuyo caso la decisión tomada tendrá una aplicación intradiaria, que con intervalos de 1 día en cuyo caso se tratará de una operativa diaria, al corto o medio plazo. Jose Sanjurjo Fortes Universidad Pontificia Comillas 61

Tras comparar las distintas opciones disponibles, nos decantamos por la operativa intradiaria, con intervalos de 15 minutos, debido a la gran cantidad de datos que se dispone con estos intervalos en comparación con intervalos diarios, lo cual redunda en unos patrones mejor definidos y con una mayor capacidad de generalización. Tras esta decisión se han de descargar los datos del programa de trading Visual Chart, estableciendo, como intervalo entre los datos, un tiempo de 15 minutos. Una vez se obtiene el conjunto de datos objeto, sobre el que se va a trabajar, se está preparado para comenzar la etapa de transformación de los datos, donde se obtendrá la tarjeta de datos sobre la que realizar el Data Mining. Jose Sanjurjo Fortes Universidad Pontificia Comillas 62

4.2.2 Transformación El objetivo de esta fase, es transformar los datos disponibles tras la fase de selección, en un conjunto de datos que nos permita realizar un Data Mining efectivo sobre los mismos. Dentro de esta fase, se distinguen 2 apartados: i. Concepto de Ciclo ii. Caracterización del ciclo En la primera fase, se establece el concepto de ciclo, al igual que en las pruebas realizadas con otros sistemas (punto 3) es necesario establecer ciclos para poder realizar el aprendizaje y la posterior predicción, esto es debido, a que hay que transformar los datos singulares, sin relación, en un conjunto de datos relacionados por tiempo para posteriormente homogeneizarlos. Es necesario reflejar esta relación temporal entre los datos, ya que al pretender como objetivo final estimar la evolución de las cotizaciones, debemos reflejar en los datos las evoluciones pasadas, para poder aprender de ellas. Esto se lleva a cabo estableciendo ciclos que los relacionen, que no son más que tendencias alcistas expresadas como un conjunto de cotizaciones, lo cual nos permite conocer cómo son las distintas evoluciones que se presentan en las tendencias alcistas. Éste concepto se puede observar gráficamente en la figura 23. Jose Sanjurjo Fortes Universidad Pontificia Comillas 63

Figura 23: Concepto de Ciclo. Como se puede ver en la figura anterior, se pasa de considerar una única cotización como tipo de dato de entrada a considerar un conjunto de las mismas, que expresan una tendencia alcista. Para ello es necesario establecer qué entendemos por ciclo, y cómo se van a reconocer estos ciclos. En la segunda fase se caracterizará el ciclo obtenido tras la fase anterior. Es necesario convertir los ciclos obtenidos en un conjunto de datos que nos muestre con claridad el concepto que intentamos ntamos retener, el concepto de ciclo, su evolución. Para ello es necesario preguntarse cómo expresar el ciclo, para poder representar la evolución del mismo lo más fielmente posible, extraer de ese conjunto de cotizaciones la información que de verdad importa. A continuación se muestran las decisiones tomadas y los algoritmos desarrollados en las fases que componen la etapa de transformación. Jose Sanjurjo Fortes Universidad Pontificia Comillas 64

4.2.2.1 Concepto de Ciclo Una vez obtenidos los datos a transformar tras el proceso de selección, es necesario convertir esos datos en datos relacionados entre sí que expresen una evolución del precio, es decir, hay que pasar de datos singulares a conjuntos de datos relacionados que expresen tendencias alcistas. Para poder discretizar los ciclos se han de establecer las reglas que debe cumplir cada conjunto secuencial de cotizaciones para poder posteriormente diseñar el algoritmo de reconocimiento de ciclos. Es necesario establecer estas reglas para determinar cuando un ciclo alcista se deja de considerar como tal o cuando un ciclo alcista se debe de considerar como 2 ciclos menores. Por lo tanto, se considera ciclo todo aquel conjunto secuencial de cotizaciones que tiene las siguientes características: i. La subida bruta debe de ser mayor que el doble de la bajada bruta. ii. El número de intervalos de subida, debe de ser mayor que el número de intervalos de bajada aumentado en un 50%. Dentro de estas reglas es necesario añadir que todo ciclo alcista termina en un máximo, ya que por razones obvias si no terminase en el máximo del ciclo, ésta última parte no sería alcista. Dada esta última necesidad, durante el reconocimiento de los ciclos a partir del conjunto de históricos, es necesario guardar información sobre cuál es el máximo precio Jose Sanjurjo Fortes Universidad Pontificia Comillas 65

alcanzado en el presente ciclo, puesto que en caso de que se infrinja alguna de las reglas establecidas, se ha de cortar el ciclo por el máximo que se había guardado. Una vez establecido el concepto de ciclo y determinadas sus reglas de reconocimiento se crea el algoritmo de reconocimiento de ciclos. Dicho algoritmo recorre el conjunto de históricos de cotizaciones, y para cada una de ellas mientras no se incumplan las reglas, avanza sobre las cotizaciones estableciendo el ciclo alcista, y salvando el máximo valor alcanzado, que será el fin del ciclo, una vez se incumpla alguna de las reglas, se finalizará la comprobación de este ciclo y se establecerá, teniendo su inicio en la primera cotización considerada y finalizando en el máximo alcanzado. Se puede observar que dadas estas características todo ciclo alcista, o tendencia alcista, está precedido de una tendencia bajista y finaliza con otra bajista, ya que si fuesen alcistas se habrían incorporado al ciclo. Una vez se han discretizado los ciclos o tendencias alcistas, se guardan como conjuntos de cotizaciones para realizar la siguiente etapa de la fase de transformación, donde se convertirá cada uno de estos ciclos en otro conjunto de datos que expresen de mejor manera la evolución seguida en el ciclo, poniendo en relieve la información importante y sus características para posteriormente aprender los diferentes tipos de evolución que se pueden presentar. Jose Sanjurjo Fortes Universidad Pontificia Comillas 66

4.2.2.2 Caracterización del Ciclo Tras la obtención de los ciclos, o tendencias alcistas reconocidas por el algoritmo anterior, es el momento de representar estos ciclos, que son conjuntos secuenciales de precios pertenecientes a una tendencia alcista, de tal forma que se ponga en relieve la información importante y las características del ciclo, es decir, caracterizar el ciclo en base a lo que queremos predecir, en base a su evolución. Para realizar la caracterización del ciclo, es necesario preguntarse de qué manera se va a plasmar en un conjunto de datos la evolución del ciclo, cómo resumir una determinada tendencia alcista. Los ciclos se podrían caracterizar de muchas maneras: viendo cuál es su subida y el tiempo tardado, cuál es la pendiente media de la subida,.. El dato que nos importa para poder describir la evolución del ciclo es obviamente su precio. Pero hay que preguntarse de qué manera se va a plasmar esa evolución, para lo cual se decide transformar todos esos ciclos a una forma que nos permita conocer la evolución real dentro de las tendencias. Para poder conocer la evolución real dentro del ciclo, se convierte el conjunto de cotizaciones que conforman el ciclo en un conjunto de 3 segmentos como se muestra en la figura 24. De esta forma, se puede apreciar claramente cuáles son los distintos tramos que componen el ciclo, así como las pendientes de cada tramo, el tiempo que tardan y la ganancia obtenida. Jose Sanjurjo Fortes Universidad Pontificia Comillas 67

Figura 24: Caracterización del Ciclo, Transformación en 3 Segmentos. Mediante esta transformación se generaliza el concepto de ciclo y permite homogeneizar el conjunto de datos para poder realizar la posterior extracción de conocimiento. Para llevar a cabo esta conversión se debe seguir un estricto criterio para transformar el ciclo en un conjunto de 3 segmentos,, para lo cual se desarrolla un algoritmo de caracterización, que transforma las cotizaciones de una tendencia alcista a un conjunto de 3 segmentos. El algoritmo se basa en el establecimiento, dentro del ciclo, de 3 intervalos, de tal forma que se establezca una recta entre el primer precio de cada uno de los intervalos hasta el último precio de dicho intervalo, y se calcule el Error Cuadrático Medio (ECM) producido por el ajuste. Este Error Cuadrático Medio (ECM) es la raíz cuadrada, de la media de las diferencias al cuadrado entre el valor de la recta en cada punto y la cotización. Mostrado matemáticamente: ECM= Siendo n, el número de cotizaciones del ciclo. Jose Sanjurjo Fortes Universidad Pontificia Comillas 68

Iterativamente, se prueba con todas las configuraciones posibles de 3 rectas para conocer cuál es la que mejor se adapta al ciclo actual, y ésta configuración es la que se guarda para caracterizar al ciclo, como se ejemplifica en la tabla 02 para un ciclo de 12 intervalos de duración, donde j y k son los puntos que establecen los intervalos, que tomarían todos los valores permitidos dentro del ciclo. J K ECM Caso 1 4 7 30 Caso 2 4 8 42 Caso 3 4 9 23 Caso 4 5 7 68 Caso 5 5 8 46 Tabla 02: Transformación del Ciclo en 3 segmentos según el ECM. Se puede apreciar que en este caso para los resultados mostrados, la configuración ganadora sería la del caso 3, ya que es la que menor Error Cuadrático Medio (ECM) presenta. Por lo tanto el ciclo se caracterizaría gráficamente por 3 rectas, donde la primera recta iría desde la primera cotización hasta la 4ª, la segunda recta desde la 4ª hasta la 9ª y la tercera recta desde la 9ª hasta la última, la número 12. De esta forma el ciclo quedaría caracterizado por esas 3 rectas, dividiendo el ciclo en 3 intervalos diferenciados. Una vez se han caracterizado todos los ciclos obtenidos de los datos históricos, es el momento de llevar a cabo la fase de Data Mining, donde se realizará el agrupamiento o Clustering, según la similitud entre los distintos ciclos, estableciendo así un conjunto de patrones de comportamiento que definen la evolución del precio del valor a tratar en distintos escenarios. Jose Sanjurjo Fortes Universidad Pontificia Comillas 69

4.2.3 Data Mining En esta etapa del proceso de KDD, se va a realizar el agrupamiento de los ciclos por similitud, es decir el Clustering, para poder así obtener los patrones que definen el comportamiento de cada grupo de ciclos similares, objetivo final del sistema de Extracción de Conocimiento Prototípico. En primer lugar, se dispone de los ciclos caracterizados proporcionados por la fase de Transformación, los cuales se definen por un conjunto de 3 segmentos, uno por cada intervalo, que nos indican la evolución tendencial del precio del activo subyacente (el índice considerado). Esta fase, se divide en 3 apartados: i. Establecimiento del criterio clasificador. ii. iii. Clustering. Caracterización de los Patrones. En el primer apartado, se ha de establecer el criterio según el cual se agruparán los ciclos, es decir, se ha de cuantificar el grado de similitud entre dos ciclos en base a algún criterio objetivo. Posteriormente, una vez se ha decidido cuál será el criterio de agrupación, se desarrolla un algoritmo de clustering, que permita agrupar los ciclos por su similitud, en base al criterio definido en el apartado anterior. Para llevar a cabo el agrupamiento de los ciclos, se han barajado distintas alternativas, tales como el uso de fórmulas estadísticas, emparrillados, o técnicas inteligentes. Jose Sanjurjo Fortes Universidad Pontificia Comillas 70

Debido a la importancia del método de clustering para el aprendizaje del sistema, finalmente se han utilizado redes neuronales para realizar el agrupamiento de ciclos, en particular se ha empleado un mapa de Kohonen para agrupar los ciclos por similitud, ya que este tipo de red neuronal es un excelente clasificador. Tras esta decisión se realiza el agrupamiento de ciclos por medio del mapa de Kohonen, obteniendo los patrones que definen el comportamiento de los ciclos alcistas del IBEX 35. Una vez se obtienen los patrones agrupados por similitud es necesario caracterizarlos, debido a que la agrupación se realiza en base a determinado criterio, en este caso la ganancia de cada intervalo, como se verá a continuación, pero para llevar a cabo la estimación, es necesario conocer por ejemplo cuál será la duración de cada intervalo, esta función se desempeña en la fase de Caracterización de Patrones. Jose Sanjurjo Fortes Universidad Pontificia Comillas 71

4.2.3.1 Establecimiento del criterio clasificador. Una vez tenemos el ciclo o tendencia alcista caracterizado por medio de 3 rectas, que definen 3 intervalos, es necesario definir los criterios de similitud entre ciclos, es decir, decidir cuál será el conjunto de atributos según los que se realizará el Clustering, para que en dicha etapa se puedan agrupar los ciclos por similitud y así obtener patrones resumen que definan el comportamiento del grupo de ciclos. Se han barajado distintas opciones, donde en cada una de ellas, el agrupamiento se realizará según 3 valores, que caracterizan los intervalos del ciclo, uno por cada intervalo: i. Representar el ciclo como 3 duraciones (El algoritmo de Clustering agrupará los ciclos según el tiempo que suele durar cada intervalo del ciclo). ii. Como 3 pendientes (En este caso la agrupación se realizará según la pendiente que sigue la recta del precio). iii. Como 3 subidas netas (En este caso la agrupación se realizará según la subida experimentada por el precio desde el inicio de cada intervalo hasta el fin del mismo). Tras estudiar las 3 opciones, debido a las conclusiones obtenidas durante el desarrollo de los sistemas desechados (véase punto 3 de este proyecto) se decide considerar la subida neta como atributo clasificador, ya que de las conclusiones mencionadas se desprende que las unidades temporales son un mal clasificador, esto es debido a que 2 ciclos con el mismo comportamiento a efectos de ganancias, se pueden presentar más acelerados en el tiempo o menos, asimismo, dado que el conocimiento de la evolución del precio, o lo que es lo mismo, de la ganancia, es el objetivo de este proyecto, se considera la ganancia neta como atributo clasificador. Jose Sanjurjo Fortes Universidad Pontificia Comillas 72

Llegados a este punto, disponemos de un conjunto de ciclos definidos por 3 atributos, que nos indican la subida neta de cada período. Jose Sanjurjo Fortes Universidad Pontificia Comillas 73

4.2.3.2 Clustering El objetivo de esta fase del Data Mining es agrupar los ciclos según el criterio de similitud establecido en el apartado anterior para así poder obtener los patrones resumen que definan la evolución de las distintas tendencias alcistas que se pueden encontrar. Una vez se ha establecido el criterio de similitud, las 3 subidas netas producidas en los 3 períodos del ciclo, se desarrolla un algoritmo de Clustering que permita agrupar los distintos ciclos por su parecido. Como algoritmo de Clustering se decide utilizar un mapa de Kohonen, para lo cual se desarrolla un motor de mapas de Kohonen en java que permita realizar el agrupamiento eficientemente. Actualmente existen proyectos de software libre en java con motores de redes neuronales, aunque el más conocido sin duda es el motor de redes neuronales de Matlab. Tras estudiar esta opción se ha concluido que se trata de proyectos demasiado pesados así como de un funcionamiento un tanto tedioso. Ya que se conoce a la perfección el funcionamiento de los mapas a utilizar, cómo se debe estructurar y cómo configurarlo, se ha decido desarrollar un motor de mapas de Kohonen que permite realizar las tareas de Clustering eficientemente, asimismo el tiempo computacional es con diferencia mucho menor que el de las demás alternativas consideradas. Jose Sanjurjo Fortes Universidad Pontificia Comillas 74

Para realizar el agrupamiento de los ciclos por medio del mapa de Kohonen, se establece una topología lineal, ya que se van a utilizar pocas neuronas y se pretende facilitar así la convergencia, en la que cada una de las neuronas utilizadas posee tres entradas, donde cada entrada representa el valor de la ganancia en un intervalo. De esta forma la primera entrada representará la ganancia experimentada por el ciclo en su primer intervalo, la segunda entrada se referirá a la ganancia del 2º intervalo y la 3ª entrada será el valor de la ganancia del tercer intervalo. Para la configuración de la red se establece una región de vecindad inicial igual al número total de neuronas, la cuál irá decrementando hasta una región de vecindad igual a cero a lo largo de las épocas. De la misma manera, la tasa de aprendizaje decrementará desde el 0,7 inicial hasta 0 a lo largo de las épocas. Para un mejor aprendizaje se establece que tanto la tasa de aprendizaje como la región de vecindad, disminuirán más rápido en las primeras épocas y a una menor velocidad durante la segunda mitad de las épocas consideradas. En este caso el número de épocas consideradas para el entrenamiento del mapa de Kohonen es de 300, ya que se observa que tras este umbral el error de entrenamiento del mapa de Kohonen decrece en un valor casi inapreciable o incluso aumenta. Aunque el mapa de Kohonen es una red autoorganizada, se propondrán un conjunto de patrones al sistema, que son los que podemos estimar que son las distintas formas que pueden tomar los ciclos (figura 25), y se definen a continuación. Jose Sanjurjo Fortes Universidad Pontificia Comillas 75

Los patrones propuestos son los siguientes: Figura 25: Patrones Propuestos. Patrón 1. Patrón en el que la ganancia experimentada en cada período disminuye en cada intervalo (Pendientes decrecientes). Patrón 2. Patrón en el que al contrario que el anterior, durante el primer intervalo se experimenta una subida, y la pendiente de la subida va aumentando en cada intervalo, es decir cada vez la ganancia es mayor (Pendientes Crecientes). Patrón 3. Patrón en el cual primero se presencia una etapa alcista, seguido de un intervalo bajista y termina con otro alcista. Patrón 4. Patrón definido por una escasa ganancia en el intervalo inicial, seguido de una mayor ganancia en el segundo intervalo y finalizando con otra subida poco significativa en el tercer intervalo. Patrón 5. Este patrón está definido por una subida escasa en el intervalo inicial seguida de ganancias altas en el segundo y tercer intervalo. Patrón 6. En el último patrón se experimentan dos fuertes subidas en los dos primeros intervalos, seguidos de una subida menor en el intervalo final. Jose Sanjurjo Fortes Universidad Pontificia Comillas 76

Los patrones anteriormente propuestos, dado que los mapas de Kohonen son redes autoorganizadas, se adaptarán según los ciclos similares a ellos, por lo tanto, la forma de los patrones variará, adaptándose por similitud, para describir tras el entrenamiento, la evolución de un conjunto de ciclos similares agrupados. Los patrones propuestos no son más que estimaciones de posibles evoluciones, que nos permitirán comparar esta estimación inicial con los patrones reales obtenidos por parte del mapa de Kohonen. Debido a que se han propuesto 6 patrones, el mapa de Kohonen obtendrá 6 patrones reales. Dados los patrones propuestos, cada una de las neuronas establecerá como valor inicial para sus entradas el valor de su patrón correspondiente, es decir, cada una de las entradas de cada neurona tomará el valor de la ganancia de su respectivo intervalo en el patrón correspondiente, esta correspondencia se puede observar en la figura a continuación. Figura 26: Inicialización de las neuronas con los Patrones Propuestos. Jose Sanjurjo Fortes Universidad Pontificia Comillas 77

Tras esta correspondencia, las 6 neuronas del mapa de Kohonen quedan inicializadas, por otra parte, los parámetros iniciales del mapa son los resumidos en la tabla siguiente. Topología Lineal Número de Neuronas 6 Número de Entradas 3 Número de Épocas 300 Región de vecindad Inicial 5 Tasa de Aprendizaje Inicial 0.7 Tabla 03: Parámetros Iniciales del mapa de Kohonen. Dado que el mapa de Kohonen está inicializado, se puede comenzar con su entrenamiento, donde, tras las 300 épocas, se obtendrán los patrones que definen la evolución de los ciclos que representan. Tras el entrenamiento, el valor de las entradas de cada neurona definirá uno de los patrones aprendidos,, como se ejemplifica en la figura 27. Figura 27: Obtención de los patrones definidos por las entradas de las neuronas. Jose Sanjurjo Fortes Universidad Pontificia Comillas 78

Como se ha mostrado en la figura anterior, se obtiene cada uno de los 6 patrones según la similitud entre los distintos ciclos definidos por el criterio establecido para la clasificación, es decir, la ganancia. Estos 6 patrones, definen la evolución de las tendencias alcistas según la ganancia obtenida en cada uno de los 3 intervalos en los que se han dividido. Jose Sanjurjo Fortes Universidad Pontificia Comillas 79

4.2.3.3 Caracterización de los patrones Llegados a este punto, tras haber realizado el agrupamiento de ciclos obteniendo los patrones correspondientes, se han de caracterizar estos patrones. Una vez realizado el Clustering de los ciclos respecto al criterio de la ganancia obtenemos 6 patrones que describen la ganancia que se obtiene en cada intervalo, pero para poder realizar una buena estimación se le deberá presentar también al usuario, el tiempo que se tarda en alcanzar esa ganancia, es decir, no solo presentarle los niveles de precios que se esperan alcanzar, sino también la estimación del tiempo que se tardará en llegar a dichos niveles. Para estimar esta duración es necesario conocer el conjunto de ciclos que representa cada patrón, por lo que es necesario que durante la última etapa del entrenamiento de la red neuronal, cada neurona guarde los ciclos en los que por similitud, ha sido la neurona ganadora. Una vez el entrenamiento llegue a su fin, y los pesos de las neuronas se conviertan en las ganancias de los patrones, estos patrones deben de conocer cuáles son los ciclos que le pertenecen. Cuando se han establecido los patrones y éstos tienen constancia del conjunto de ciclos que resumen, es el momento de calcular, en base al conjunto de ciclos que le pertenecen, la duración estimada de cada uno de los tres intervalos del patrón, por lo tanto se recorre el conjunto de ciclos pertenecientes a cada patrón y se establece la duración de cada intervalo en base a una fórmula determinada, por ejemplo para cada intervalo, se establece su duración en el patrón en base a la duración media de dicho intervalo en los ciclos que resume. Jose Sanjurjo Fortes Universidad Pontificia Comillas 80

Tras el cálculo de la estimación de duración de cada intervalo, se repite este proceso para conocer otros datos que pueden ser de interés como el valor del volumen de contratación en cada intervalo del patrón, para lo cual se sigue el mismo proceso anterior de cálculo del valor medio aplicado al volumen de contratación. Llegados a este punto se dispone de los patrones caracterizados, objetivo de la fase de Extracción de Conocimiento Prototípico, con lo cual, tras la consecución de este objetivo, se puede iniciar la fase de Predicción Borrosa de la evolución del valor en base a estos patrones y los datos actuales de situación. Jose Sanjurjo Fortes Universidad Pontificia Comillas 81

4.3 SISTEMA DE PREDICCIÓN BORROSO Una vez se ha llevado a cabo la obtención de los patrones por parte del sistema de KDD ya se puede realizar la predicción de la evolución futura del precio del valor. El sistema de predicción se divide en 4 fases: i. Cuantificación del Momento ii. iii. iv. Borrosificación de Patrones Estimación Riesgo Para llevar a cabo esta predicción, en primer lugar hay que conocer los distintos patrones de comportamiento que se pueden presentar en las tendencias alcistas que se van a tratar, y por otra parte, se debe poseer la información necesaria para poder conocer el momento en el que nos encontramos, es decir, si actualmente se está produciendo una tendencia alcista y en ese caso, conocer en qué fase de esa tendencia alcista nos encontramos, de esto se encargará el apartado de Cuantificación del Momento. Es necesario conocer si nos encontramos en un ciclo alcista, ya que éste es el tipo de ciclos en el que se basa el sistema, únicamente se realizará la predicción si actualmente nos encontramos en un ciclo de este tipo. Tras haber determinado la fase en la que estamos, se calcula el grado de adaptabilidad del ciclo actual con los distintos patrones obtenidos por el sistema de KDD, tras lo cual conoceremos el grado de pertenencia de la situación actual a cada uno de los patrones. Jose Sanjurjo Fortes Universidad Pontificia Comillas 82

Ya que cada situación que se presenta es distinta, la evolución del precio del valor no va a seguir únicamente un patrón de evolución, si no que su evolución será fruto de la estimación dada por el patrón más parecido al actual pero influenciado por los patrones que también posean un gran parecido con el ciclo en el que nos encontramos. Por lo tanto, para predecir la evolución de la situación actual, se deformarán los patrones (Véase punto 2.3), según su grado de similitud con la situación actual, hasta crear un único patrón, específico para cada situación, para poder predecir la evolución de la situación actual. El cálculo del grado actual de adaptación a los distintos patrones, y la posterior deformación de los patrones para predecir la evolución se llevan a cabo en el segundo apartado, el denominado Borrosificación de Patrones. Una vez se ha establecido el patrón borroso, por medio de algoritmos de deformación, se estima la evolución del precio de la cotización en base a él. Éste es el objetivo del tercer apartado, denominado Estimación. Finalmente, para que el usuario pueda tener constancia de la bondad de la predicción realizada, en cada punto de la tendencia alcista y en base a la ganancia conseguida, se muestra al usuario la probabilidad de que la predicción tendencial realizada falle y se produzca un cambio de tendencia, es decir, el Riesgo de cambio tendencial. Jose Sanjurjo Fortes Universidad Pontificia Comillas 83

4.3.1 Cuantificación del momento El primer paso para realizar la predicción de la evolución de las cotizaciones de determinado valor es conocer el momento en el que se desea predecir, es decir, conocer si nos encontramos ante un ciclo alcista o no, y en caso de encontrarnos en un ciclo alcista, se debe conocer en qué fase de dicho ciclo nos encontramos. Para ello, es necesario obtener los datos que nos indiquen el momento de la predicción, así como un conjunto de datos históricos anteriores al momento de la predicción para conocer si el sistema de predicción se encuentra ante un ciclo alcista y operar en consecuencia. Para obtener los nuevos datos, se deben descargar los últimos datos históricos del programa de Trading Visual Chart (véase anexo A2.3) con el mismo valor de intervalos seleccionado para realizar el reconocimiento de patrones en el sistema de KDD. Una vez se obtienen estos datos es el momento de conocer si nos encontramos ante un ciclo alcista y en ese caso en que fase de dicho ciclo, para ello se utilizará un algoritmo similar al utilizado para establecer los ciclos en la fase de Transformación del sistema de KDD, en particular el apartado Concepto de Ciclo (4.2.2.1). Para cuantificar la situación actual únicamente nos interesa el último ciclo, pero para ello, se debe separar el conjunto de datos en ciclos, para posteriormente seleccionar el último. En primer lugar se han de discretizar los ciclos contenidos en el conjunto de datos, para lo cual es necesario establecer las reglas que debe cumplir cada conjunto secuencial de cotizaciones para pertenecer a una tendencia alcista, para así poder cuantificar el ciclo final. Jose Sanjurjo Fortes Universidad Pontificia Comillas 84

Es necesario establecer estas reglas para determinar cuando un ciclo alcista se deja de considerar como tal o cuando un ciclo alcista se debe de considerar como 2 ciclos menores. Por lo tanto, se considera ciclo, o tendencia alcista, todo aquel conjunto secuencial de cotizaciones que tiene las siguientes características: i. La subida bruta debe de ser mayor que el doble de la bajada bruta. ii. El número de intervalos de subida, debe de ser mayor que el número de intervalos de bajada aumentado en un 50%. Dentro de estas reglas es necesario añadir que todo ciclo alcista termina en un máximo, ya que por razones obvias si no terminase en el máximo del ciclo, ésta última parte no sería alcista, y el ciclo considerado tendría una menor ganancia. Dada esta última necesidad, durante el reconocimiento de los ciclos a partir del conjunto de históricos, es necesario guardar información sobre cuál es el máximo precio alcanzado en el presente ciclo, puesto que en caso de que se infrinja alguna de las reglas establecidas, se ha de cortar el ciclo por el máximo que se había guardado, exceptuando el último ciclo, que es el que nos interesa, puesto que como no conocemos su evolución futura, no se cortará por el máximo, ya que es posible que el ciclo alcista alcance en el futuro un máximo mayor que el máximo actual. Únicamente se cortará el ciclo en el caso de que incumpla alguna de las dos reglas definidas. En caso de que el último ciclo incumpla las reglas establecidas, se cortará por su máximo, y dado que es el último ciclo, esto nos indicará que actualmente ya no nos encontramos en tendencia alcista, por lo tanto no se podrá realizar la predicción. Jose Sanjurjo Fortes Universidad Pontificia Comillas 85

Las diferencias entre el algoritmo de la fase de transformación y el actual radican en que, en primer lugar, únicamente nos interesa el último ciclo de los datos históricos, por otra parte, éste último ciclo no se establecerá entre el primer precio de la tendencia y el máximo alcanzado, como en el caso del algoritmo del Sistema de Extracción de Conocimiento Prototípico, ya que no conocemos si este ciclo alcanzará un precio mayor que el máximo actual en el futuro, así que únicamente se corta el ciclo en el caso de que se incumpla las reglas establecidas. Tras conocer el ciclo actual en el que nos encontramos y el momento del ciclo en el que nos encontramos, que será el último, ya se puede llevar a cabo la borrosificación de patrones para estimar posteriormente la evolución del precio del valor en la presente tendencia alcista. Jose Sanjurjo Fortes Universidad Pontificia Comillas 86

4.3.2 Borrosificación de Patrones Tras haber cuantificado el momento en el que nos encontramos, y conocer el ciclo actual en el que estamos inmersos, ya se puede realizar la estimación de la evolución del valor en base a los patrones aprendidos por el Sistema de Extracción de Conocimiento Prototípico. En primer lugar se ha de establecer el grado de similitud del ciclo en el que nos encontramos con cada uno de los patrones, para conocer que patrón describirá más fielmente su trayectoria. Ésta similitud se establece según el Error Cuadrático Medio entre las cotizaciones del ciclo actual y los patrones. Este Error Cuadrático Medio (ECM) es la raíz cuadrada, de la media de las diferencias entre el valor de cada cotización del presente ciclo alcista y su correspondiente en el patrón. Mostrado matemáticamente: ECM= ó ó Siendo n, el número de cotizaciones del ciclo. Una vez se ha calculado la similitud entre el ciclo y cada patrón, siendo la similitud con cada patrón inversa al ECM, se realiza la deformación de los patrones en sí. La evolución futura de cada tendencia alcista tratada, se predecirá con el patrón más parecido a ella, pero en el caso de que haya otro patrón muy parecido, éste influenciará al otro patrón, creando así una estimación única adaptada a cada caso. Jose Sanjurjo Fortes Universidad Pontificia Comillas 87

En definitiva, los dos patrones que posean una mayor similitud, serán los que predigan la evolución del precio del valor, deformándose según su similitud hasta conjugarse y crear un único patrón deformado o borroso que será el que prediga la evolución futura del precio del valor. Los Patrones Borrosos, toman sus bases en los Prototipos Deformados Borrosos (Véase punto 2.3). La deformación de patrones se basa en su grado de similitud, para ello, se ha desarrollado un algoritmo de deformación de patrones que se explica a continuación. Tras haber calculado la similitud de los patrones con la situación actual (En base al ECM), se establece como patrón ganador el más parecido y como patrón segundo el segundo más parecido, en base a ellos se realizará la estimación. ECM1 y ECM2 son los errores cuadráticos medios del patrón ganador y del patrón segundo respectivamente, calculados al establecer la similitud. Para calcular el patrón deformado se han de calcular las proporciones de similitud de los patrones con la situación real, p1 y p2, que son la proporción del patrón ganador y del segundo respectivamente. 1 1 1 1 2 2 2 1 1 2 Jose Sanjurjo Fortes Universidad Pontificia Comillas 88

Una vez conocemos las proporciones de similitud de cada patrón con la situación real, es necesario deformar los patrones para obtener el patrón borroso único que describirá la evolución futura del precio. Los patrones caracterizados obtenidos por el Sistema de Extracción de conocimiento Prototípico (Sistema KDD) están definidos por 3 intervalos, en los cuales poseen la duración de dicho intervalo y la ganancia o subida neta del precio en el intervalo. Para crear el patrón deformado, se borrosifican estas variables según la proporción de similitud calculada con anterioridad, caracterizando así el nuevo patrón. Para realizar el cálculo de la ganancia de cada intervalo, se conjugan las ganancias de cada intervalo en base a la proporción de similitud calculada. En el caso de la primera ganancia g1, el cálculo sería el siguiente: 1 1 1 1 2 Análogamente, se calculan g2 y g3, que son las ganancias del segundo y tercer intervalo del patrón borroso respectivamente. 2 2 1 2 2 3 3 1 3 2 patrón borroso. Posteriormente, se calculan las duraciones de cada uno de los tres intervalos del Siendo t1 la duración del primer intervalo del patrón borroso: Jose Sanjurjo Fortes Universidad Pontificia Comillas 89

1 1 1 1 2 Lo mismo sucede con t2 y t3, que son las duraciones del segundo y tercer intervalo del patrón respectivamente. 2 2 1 2 2 3 3 1 3 2 Al igual que se ha hecho con la duración y la ganancia se calcula también el volumen de contratación de cada etapa del patrón borroso. Una vez aplicado el algoritmo de borrosificación, obtenemos el patrón borroso caracterizado, con el cual se realizará la predicción de evolución del índice IBEX 35. Jose Sanjurjo Fortes Universidad Pontificia Comillas 90

4.3.3 Estimación Tras haber obtenido el patrón borroso, se realiza la estimación de la evolución futura en base a este patrón, adaptándolo a la situación real y prediciendo la evolución en base a la marcada por este patrón. Esta estimación se le presentará finalmente al usuario para que tenga conocimiento de la evolución tendencial futura del valor (Figura 28), y pueda operar en consonancia, estableciendo su ganancia objetiva, pero sin descuidar el riesgo de que se produzca un cambio de tendencia, con el resultado perjudicial que entraña. Figura 28: Captura de Pantalla de evolución del precio (rojo). Para conocer el riesgo de cambio de tendencia según las posibles ganancias objetivo, se establece un sistema de medida de riesgo que establece, para cada nivel de ganancia el riesgo de que el valor cambie a una tendencia bajista. Jose Sanjurjo Fortes Universidad Pontificia Comillas 91

4.3.4 Riesgo Finalmente, para que el usuario pueda tener constancia de la bondad de la predicción realizada, se muestra al usuario la probabilidad de que, en cada punto, la predicción tendencial realizada falle y se produzca un cambio de tendencia, en base a la ganancia conseguida. Para contabilizar esta medida de riesgo de cambio de tendencia, se determina para cada nivel de ganancia de la predicción, el porcentaje de ciclos que sufrieron en el pasado un cambio de tendencia antes de alcanzar dicha ganancia. De esta forma el inversor conoce, además de la evolución tendencial que presentará el valor, el riesgo de que el valor cambie de tendencia e inicie una bajada en los precios. Como se puede ver, este riesgo se le muestra al usuario por cada nivel de ganancia, a mayor ganancia lógicamente habrá un mayor riesgo de que se produzca un cambio de tendencia antes de alcanzarlo, como se puede observar en la Figura 29. Figura 29: Captura de Pantalla de evolución del riesgo (azul). Jose Sanjurjo Fortes Universidad Pontificia Comillas 92

Para evitar el cambio de tendencia, el inversor debe de sopesar la ganancia potencial que puede alcanzar y el riesgo de cambio de tendencia que está dispuesto a asumir, estableciendo así un plan de actuación tanto en el caso favorable de que alcance su ganancia objetivo, como en el desfavorable en el que la tendencia del valor se dé la vuelta. Jose Sanjurjo Fortes Universidad Pontificia Comillas 93

4.4 ESTIMACIÓN Una vez se ha llevado a cabo la estimación de la evolución del precio del valor en un futuro próximo, y conocemos el grado de riesgo que entraña cada nivel de ganancia, es el momento de representar la solución del modelo y presentárselo al usuario, con una interfaz en la que pueda observar gráficamente como va a ser la evolución tendencial, así como determinar el riesgo de cambio de tendencia para cada nivel de ganancia (Figura 30). Figura 30: Captura de Pantalla de evolución del precio (rojo)/riesgo (azul). En el gráfico anterior una de las características que incorpora es que se puede hacer zoom sobre determinado área seleccionando esta área con al cursor. También se muestra al usuario un gráfico de Velas contextual (figura 31), en el que pueda conocer la evolución pasada del valor, haciéndose una idea de lo que puede pasar a continuación, apoyando así, la estimación del sistema de predicción, con su estimación personal de trading. Jose Sanjurjo Fortes Universidad Pontificia Comillas 94

Figura 31: Captura de Pantalla del Gráfico Contextual. En esta gráfica contextual es importante señalar que arrastrando el cursor se puede hacer zoom sobre determinada área, con lo que podremos observar el intervalo seleccionado con mayor claridad, como se muestra en la figura 32. Figura 32: Captura de Pantalla Gráfico Contextual Ampliado. Jose Sanjurjo Fortes Universidad Pontificia Comillas 95

Por otra parte se muestran los patrones obtenidos por el sistema de KDD, para conocer los tipos de tendencias alcistas reconocidas por el sistema y en base a las cuales se ha realizado la predicción. Figura 33: Captura de Pantalla de Patrones Aprendidos. Viendo estos patrones y la información de la consola de Predicción se puede obtener una idea de cómo será la forma del patrón borroso mediante el cual se realiza la predicción. Jose Sanjurjo Fortes Universidad Pontificia Comillas 96

CAPÍTULO 5 Evaluación y Pruebas Jose Sanjurjo Fortes Universidad Pontificia Comillas 97

5.1 EVALUACIÓN El sistema de predicción de la evolución del precio del valor desarrollado, nos informa en el momento de realizar la predicción de cuál es el riesgo de cambio de tendencia que se adquiere en cada operación, para cada nivel de ganancia neta, por lo que el inversor debe asumir este riesgo de cambio de tendencia en caso de acometer la inversión. Para todo momento de la evolución tendencial, el sistema ofrece un análisis de la peligrosidad de realizar la inversión. El inversor deberá sopesar las ganancias potenciales junto con los riesgos derivados de cada ganancia y en caso de llevar a cabo la inversión establecer su ganancia objetivo, y una vez alcanzada, salirse del mercado. Pese a este informe de riesgos, el Sistema de Extracción de Conocimiento Prototípico en su fase de transformación, al realizar la conversión del conjunto de cotizaciones de una tendencia a un conjunto de 3 rectas que indican la evolución, genera un Error Cuadrático Medio del 6%, debido a la simplificación de la evolución de las tendencias y su transformación en rectas. En resumen se podría decir que se genera un error de un 3% hacia arriba y un 3% hacia abajo, una tasa muy baja, y al ser intrínseco al modelo se puede despreciar, y tomar las decisiones en base al riesgo mostrado. Es importante señalar que la evolución se estima con precios de cierre, pero si establecemos la venta del valor comprado con anterioridad a un determinado nivel de ganancias, es probable que antes de llegar a alcanzar ese nivel de ganancias a cierre, se alcance en alguno de los intervalos anteriores un máximo superior a esta ganancia, con lo cual Jose Sanjurjo Fortes Universidad Pontificia Comillas 98

se realizaría la venta, obteniendo la ganancia y el riesgo final del sistema podría ser un poco menor que el considerado. Este último efecto positivo no se debe tener en cuenta ya que se puede ver contrarrestado por el error introducido por la fase de transformación citado anteriormente. Jose Sanjurjo Fortes Universidad Pontificia Comillas 99

5.2 ESTIMACIÓN A continuación, se muestra una comparación entre una predicción y la evolución real. La estimación a fecha 10 de Marzo del 2009 a las 12:30, utilizando un conjunto de datos de entrenamiento que van desde Mayo del 2002 hasta Junio de 2008, en intervalos de 15 minutos, presentaba los siguientes resultados: Figura 34: Captura de Pantalla de relación Precio (rojo)/riesgo (azul). El sistema se halla en un ciclo de 17 intervalos, encontrándose éste en el 7º, como se observa en la siguiente figura. Jose Sanjurjo Fortes Universidad Pontificia Comillas 100

Figura 35: Captura de Pantalla de Información de Predicción. Se ha elegido este caso debido al bajo nivel de riesgo que presenta. En la figura 34 se puede apreciar que hasta el intervalo 13, el riesgo de un cambio de tendencia es 0, con lo cual es conveniente invertir en el valor, como poco hasta el nivel de los 93,2 del intervalo 14, ya que el riesgo de la operación es muy bajo. realizada: Ahora se comparará con la situación real, evaluando la bondad de la predicción Figura 36: Gráfica de evolución de la Cotización de VisualChart Jose Sanjurjo Fortes Universidad Pontificia Comillas 101

La predicción se lleva a cabo en el intervalo 7 (segunda línea azul), y se observa cómo la predicción es acertada, ya que la tendencia descrita por la estimación refleja fielmente lo que ocurre en la realidad. Por otra parte hay que destacar el poco riesgo de la posición tomada, lo cual incrementa enormemente las posibilidades de éxito en la operación. La ganancia objetivo, fue alcanzada con creces, ya que el sistema alcanzó en el intervalo 17 (final de ciclo) una ganancia respecto al inicio de 200, habiendo asegurado el sistema una ganancia de 121 con un nivel de riesgo de cambio de ciclo del 21,9%. A continuación se muestra un gráfico comparativo entre predicción y realidad. Figura 37: Gráfica comparativa Estimación/realidad Jose Sanjurjo Fortes Universidad Pontificia Comillas 102

5.3 PRUEBAS Para probar el sistema se procede a simularlo dadas unas reglas establecidas, por ejemplo invertir siempre que se detecte un ciclo y se llegue al intervalo 8, e invertir hasta alcanzar una determinada ganancia, como puede ser la mayor ganancia posible con un riesgo menor al 5%, o utilizando un ratio. En este caso utilizaremos un ratio ganancia/riesgo y simularemos el sistema, que invertirá cuando detecte un ciclo que se encuentre en su intervalo 8 o posterior y establezca su ganancia objetivo según el ratio, así mismo, se establece un Stop Loss (ver glosario de términos) con un valor igual a la cotización actual menos la ganancia objetivo. Este sistema se ha entrenado con un conjunto de datos que van desde Mayo del 2002 hasta Junio de 2008, en intervalos de 15 minutos, obviamente es un amplio conjunto de datos. 2009. El conjunto de datos a simular va desde el 23 de Octubre de 2008, hasta Marzo del Se ha de destacar que el sistema invierte cuando detecta un ciclo en el cual se ha sobrepasado el 8º intervalo, y selecciona su ganancia objetivo en base a un ratio de ganancia/riesgo. Jose Sanjurjo Fortes Universidad Pontificia Comillas 103

Los resultados de las pruebas son los siguientes: Ganancia Bruta: 792 1262 Posiciones Abiertas: 79 o Ganadoras: 36 o Perdedoras: 43 Max DragDown: -110 197266 Se puede observar que el sistema es ganador para el período de tiempo seleccionado, que por otra parte es bastante amplio. En dicho período el sistema abre 79 posiciones, de las cuales la mayoría son perdedoras, pero el sistema sigue siendo ganador, ya que aunque posee más posiciones perdedoras que ganadoras gana más dinero cuando acierta, del que pierde cuando se equivoca, esto es debido a que el Stop Loss lo establece por debajo del precio de entrada en una cuantía igual a la mitad de la ganancia objetivo. Se puede observar que el DragDown (Máxima cantidad de dinero perdida consecutivamente) no es excesivamente elevado, lo cual reduce el riesgo de la posición. Esta demostración ha sido realizada a modo de prueba del sistema. Pese a estos resultados positivos, no se recomienda hacer trading automático con el sistema, ya que su verdadera valía reside en la información tendencial que transmite al inversor para asesorarlo en sus inversiones (Recomendaciones en capítulo 8.2). Jose Sanjurjo Fortes Universidad Pontificia Comillas 104

CAPÍTULO 6 Planificación Jose Sanjurjo Fortes Universidad Pontificia Comillas 105

6.1 METODOLOGÍA La metodología escogida para este proyecto ha sido extreme Programming. Esta metodología está basada en iteraciones sucesivas, pruebas unitarias y continuas, simplicidad en el código y mejoras constantes. Figura 38. Flujo de etapas de la metodología extreme Programming. La metodología extreme Programming se basa en las siguientes etapas: Análisis y descripción informal Planificación y diseño Desarrollo y pruebas Implantación y Pruebas Documentación. Jose Sanjurjo Fortes Universidad Pontificia Comillas 106

Una vez finalizado el análisis inicial, se han realizado las distintas etapas del sistema de manera secuencial, como muestra la figura. Extracción de Conocimiento Prototípico 1. Selección 2. Transformación 3. Data Mining Predicción Borrosa 4. Cuantificación del Momento 5. Borrosificación de los Patrones 6. Estimación 7. Medida del Riesgo Figura 39: Módulos del proyecto Hasta que se finaliza una etapa, no se comienza la siguiente ya que cada etapa basa su funcionamiento en la información obtenida por la etapa anterior. Jose Sanjurjo Fortes Universidad Pontificia Comillas 107

ANÁLISIS Y DESCRIPCIÓN INFORMAL En la etapa de Análisis y Descripción informal se llevó a cabo un proceso de estudio del estado de arte, motivación y justificación del proyecto, diseño general de la aplicación y los módulos así como la determinación de la envergadura del proyecto. Además se realizó la división del proyecto en dos grandes subsistemas, el Sistema de Extracción de Conocimiento Prototípico y el Sistema de Predicción Borroso. Entrando más en detalle se dividieron estos 2 sistemas en las fases en las que constaría el sistema y se entró en el bucle de la metodología: planificación, desarrollo e implantación. BUCLE: PLANIFICACIÓN, DESARROLLO E IMPLANTACIÓN La metodología extreme Programming posee un bucle de tres etapas que se repite para cada desarrollo del proyecto. Cada uno de los desarrollos se ha incluido en dicho bucle y ha recorrido todas sus fases: i. Planificación. Análisis de los datos disponibles y de la información a conseguir por el módulo, así como la determinación de los procedimientos mediante los cuales conseguir dicha información. ii. iii. Desarrollo. Programación del módulo en base a la planificación realizada. Implantación. Realización de pruebas en distintos escenarios para comprobar que funciona correctamente. Depuración del código y desarrollo de posibles mejoras. Jose Sanjurjo Fortes Universidad Pontificia Comillas 108

DOCUMENTACIÓN La documentación no se ha realizado como estrictamente define la metodología extreme Programming. Antes de empezar el proyecto se definieron las etapas a realizar, que toman su base en el modelo de desarrollo del KDD, y la documentación se ha dejado para el final, debido a los cambios que se introducían a lo largo del desarrollo del proyecto. Jose Sanjurjo Fortes Universidad Pontificia Comillas 109

6.2 PLANIFICACIÓN La planificación del proyecto, se llevó a cabo desde Diciembre del 2008 hasta Junio del 2009, ya que fue en Diciembre del 2008 cuando se propuso la realización de este proyecto. Es importante señalar que hasta que se finaliza una etapa, no se comienza la siguiente, ya que se trata de etapas secuenciales, donde la información obtenida por cada una de ellas constituye los datos de entrada para la siguiente. La secuencia de fases a llevar a cabo se puede ver en la siguiente figura y se encuentran descritas en el Capítulo 4. 1 Análisis y Descripción Informal 2 Transformación 3 Data Mining 4 Cuantificación del Momento 5 Borrosificación de Patrones 6 Estimación 7 Establecimiento del Riesgo Figura 40: Secuencia de Fases del Proyecto Jose Sanjurjo Fortes Universidad Pontificia Comillas 110

La planificación llevada a cabo para el proyecto ha sido la siguiente: Fase Comienzo Fin Duración (Días) Análisis y Descripción Informal 08/12/2008 11/01/2009 34 1 Selección 2 Transformación 3 Data Mining 4 Cuantificación del Momento 5 Borrosificación de Patrones 6 Estimación 7 Establecimiento del Riesgo Documentación 12/01/2009 08/02/2009 09/02/2009 01/03/2009 02/03/2009 22/03/2009 23/03/2009 09/04/2009 10/04/2009 19/04/2009 20/04/2009 03/05/2009 04/05/2009 12/05/2009 13/05/2009 05/06/2009 27 20 20 17 9 13 8 23 Tabla 04: Planificación del Proyecto. La planificación se muestra a continuación visualmente por medio de un diagrama de Gantt. Figura 41: Diagrama de Gantt del Proyecto. Jose Sanjurjo Fortes Universidad Pontificia Comillas 111

CAPÍTULO 7 Estimación Económica Jose Sanjurjo Fortes Universidad Pontificia Comillas 112

7.1 INTRODUCCIÓN El Sistema de Ayuda a la Decisión de Inversión en Bolsa desarrollado es un sistema que para su desarrollo y posterior utilización no requiere de gastos tecnológicos de ningún tipo, ya que es un desarrollo en java que utiliza proyectos de código libre para determinadas funciones Debido al desarrollo KDD a realizar, el proyecto consta de algoritmos que requieren una fundamentación basada en estudios para los cuales se requiere gran cantidad de horas hombre. Para el desarrollo, se necesitan perfiles de analistas, diseñadores y programadores, los cuales deben tener formación financiera y conocimiento de inteligencia artificial para comprender la naturaleza de los algoritmos. Jose Sanjurjo Fortes Universidad Pontificia Comillas 113

7.2 COSTES DE DESARROLLO Los costes de desarrollo son realmente elevados. Se ha comentado anteriormente que los diversos perfiles deben adquirir amplia formación, y los algoritmos desarrollados requieren bastante tiempo para realizar un diseño efectivo. Los perfiles del proyecto son los siguientes: i. Director de Proyecto ii. iii. iv. Jefe de Proyecto Analista Diseñador v. Programador DIRECTOR DE PROYECTO El proyecto, dado su ámbito, requiere el apoyo de 2 Directores de proyecto, un experto en Bolsa y un experto en Inteligencia Artificial: Director de Proyecto 1: Experto en Inteligencia Artificial El director de proyecto debe tener una visión muy amplia sobre la Inteligencia Artificial y conocer las distintas técnicas y modelos de extracción de conocimiento. información. Por otro lado debe poseer experiencia en el ámbito de proyectos de extracción de Jose Sanjurjo Fortes Universidad Pontificia Comillas 114

Director de Proyecto 2: Experto en Bolsa El director de proyecto debe poseer amplio conocimiento de los mercados de valores y en particular sobre análisis técnico, que es sobre el que se fundamenta el proyecto. Así mismo, debe transmitir al Jefe de Proyecto los conocimientos necesarios sobre trading para realizar una extracción de conocimiento efectiva. Las funciones de ambos directores de proyecto recogen: i. Supervisar y aprobar los diferentes documentos del proyecto ii. Controlar y realizar un seguimiento de los objetivos y niveles de calidad acordados. iii. Orientar y aportar ayuda en el aspecto técnico y funcional al Jefe de Proyecto en la realización de las tareas que tenga asignadas iv. Ayudar a resolver los diversos problemas que vayan surgiendo. JEFE DE PROYECTO El Jefe de Proyecto es el máximo responsable del proyecto. Está encargado de realizar un seguimiento a un nivel más bajo que el director de proyecto, controlando actividades como la planificación, asignación de tareas o controlar la evolución del proyecto. Aunque reciba el apoyo y orientación del Director de Proyecto, el Jefe de Proyecto debería tener conocimientos avanzados, tanto sobre Inteligencia Artificial como del mercado de valores. Jose Sanjurjo Fortes Universidad Pontificia Comillas 115

ANALISTA Los analistas tendrán que poseer una amplia formación en Inteligencia Artificial y sobre el mercado de valores. Por otra parte, deberán controlar el nivel de calidad, cumplimiento de normas organizativas y técnicas; y analizar y verificar que los desarrollos resultantes cumplan los requisitos propuestos. Además son los que realizan la documentación final del proyecto junto con el Jefe de Proyecto. DISEÑADOR Los diseñadores tendrán que poseer una amplia formación en Inteligencia Artificial y sobre el mercado de valores. Se encargarán de desarrollar los algoritmos inteligentes del sistema. Sus estudios, sus resultados y diseños de algoritmos se deberán transmitir a los programadores para que puedan hacer uso de ellas. PROGRAMADOR El programador deberá tener un conocimiento bastante profundo de Java, para poder implantar los algoritmos eficientemente, ya que para el correcto funcionamiento del sistema no se puede tolerar ningún tipo de fallo. Jose Sanjurjo Fortes Universidad Pontificia Comillas 116

7.3 PRESUPUESTO desarrollo. Dada la naturaleza del proyecto, los únicos costes a tener en cuenta son los de Costes de Desarrollo Los costes de desarrollo se contabilizan según las horas/hombre invertidas por cada perfil en el desarrollo, cada una con sus pesos. Horas/Hombre /Hora Total Rol Directores de Proyecto 35 95 3.325 Jefe de Proyecto 50 80 4.000 Analista 60 55 3.300 Diseñador 120 70 8.400 Programador 150 30 4.500 Total 415 23.525 Tabla 05: Costes de desarrollo. Los costes totales del proyecto, ascienden a 23.525 Jose Sanjurjo Fortes Universidad Pontificia Comillas 117

CAPÍTULO 8 Conclusiones Jose Sanjurjo Fortes Universidad Pontificia Comillas 118

8.1 CONCLUSIONES Tras el desarrollo del sistema y su posterior evaluación, se ha de señalar que el sistema desarrollado constituye un modelo a seguir para el desarrollo de cualquier tipo de sistema de reconocimiento de patrones, utilizando para ello novedosos algoritmos que permiten ajustar a la realidad las estimaciones realizadas del valor. La gran baza de este sistema, es el cálculo por medio de técnicas inteligentes de la evolución futura del valor, unido a la comparación en todo momento de la ganancia potencial que se puede obtener con el riesgo de cambio de tendencia que entraña cada nivel de ganancia, es aquí donde el inversor ha de sopesar las circunstancias, la ganancia potencial junto con el riesgo de incurrir en pérdida, y en el caso de tomar la decisión de compra establecer el precio objetivo a alcanzar, la ganancia a conseguir siendo conscientes del riesgo que conlleva esa ganancia. Este sistema proporciona una idea al inversor sobre la evolución que seguirá el IBEX 35, basada en analogías con el pasado de situaciones similares. Para una inversión menos arriesgada, el inversor deberá hacer uso de sus conocimientos de trading para complementar la estimación obtenida por el sistema, y en el caso de que su análisis sea positivo y el sistema también presente una situación favorable, invertir. Del mismo modo, no se debe invertir a ciegas, sin tener en cuenta el riesgo de cambio de tendencia que entraña cada operación y es mostrado por la aplicación, ya que es la habilidad para conjugar las ganancias y el riesgo de las operaciones la que determinará el beneficio obtenido por el sistema. Jose Sanjurjo Fortes Universidad Pontificia Comillas 119

Aún así, al igual que el sistema desarrollado, ni el mejor de los inversores acierta siempre, pero el sistema acierta más veces de las que falla, y cuando acierta permite ganar más que lo que pierde cuando falla, es decir, su esperanza matemática es positiva. En definitiva, el sistema permite conocer la dirección tendencial de las cotizaciones, proporcionando al inversor un marco de referencia para operar en consecuencia. Jose Sanjurjo Fortes Universidad Pontificia Comillas 120

8.2 RECOMENDACIONES Para invertir con este sistema, se han de conjugar 2 criterios, la ganancia y el riesgo, obviamente a mayor ganancia mayor será el riesgo, dependerá de la habilidad de seleccionar la mejor relación entre ganancia y riesgo la obtención de grandes beneficios. Pero si hay unas pautas generales que es conveniente considerar: Para alcanzar el beneficio es necesario minimizar siempre el riesgo, no bastará con establecer un simple ratio de beneficio/riesgo e invertir acorde al nivel de ganancias que mayor ratio presente, es importante procurar siempre que el riesgo sea escaso para que la posición tomada nos reporte beneficios. Otro aspecto importante es el establecimiento del Stop Loss, ya que se recomienda encarecidamente que tras tomar la decisión de entrar en el mercado establecer un stop loss para que, en caso de que se produzca un cambio de tendencia, acotar las pérdidas, en este caso se debe asumir la pérdida que ya será compensada en el futuro con las ganancias, que con una buena gestión del riesgo no sólo serán más numerosas que las pérdidas, sino que también serán de mayor cuantía. En el caso de no establecer el Stop Loss se podrían tener grandes pérdidas. Jose Sanjurjo Fortes Universidad Pontificia Comillas 121

8.3 CUMPLIMIENTO DE LOS OBJETIVOS A continuación se mostrarán los objetivos del sistema a desarrollar junto con la explicación de su cumplimiento. Objetivo Principal: Mejorar la toma de decisiones sobre el mercado de valores, permitiendo a los usuarios obtener una estimación de la evolución del precio de determinada acción o índice bursátil a partir de datos históricos. El Objetivo Principal se ha alcanzado por medio de una serie de subobjetivos, que se muestran a continuación clasificados según el sistema que los lleva a cabo. 1. Sistema de Extracción de Conocimiento Prototípico. 2. Sistema de Predicción Borroso. Jose Sanjurjo Fortes Universidad Pontificia Comillas 122

8.3.1 Sistema de Extracción de Conocimiento Prototípico i. Realizar la selección de los datos de trabajo, a partir de los cuales se obtendrá el conocimiento. El conjunto de datos se ha obtenido por medio de la plataforma de trading Visual Chart, sobre el Índice Bursátil IBEX 35 estableciendo un intervalo entre las cotizaciones de 15 minutos, para poder aprovechar en mayor medida las ventajas del trading puro (Véase 4.2.1). ii. Transformar la información inicial en una tarjeta de datos efectiva para realizar el reconocimiento de patrones Para llevar a cabo el aprendizaje de patrones se ha transformado el conjunto de datos seleccionado en ciclos (véase punto 4.2.2), introduciendo el concepto de ciclo, que representa tendencias alcistas con unas determinadas características. Las tendencias alcistas se han transformado en un conjunto de rectas que expresan con mayor claridad la tendencia de los precios y su pendiente y facilita el aprendizaje de patrones de comportamiento a la etapa de Data Mining. iii. Llevar a cabo el aprendizaje de patrones estableciendo mecanismos y técnicas de Clustering (agrupamiento) y obtención de los mismos. Para llevar a cabo la extracción del conocimiento prototípico del conjunto de datos (ahora ciclos), se han agrupado por similitud, mediante técnicas de Clustering, donde se han empleado mapas de Kohonen (Véase 4.2.3). Jose Sanjurjo Fortes Universidad Pontificia Comillas 123

iv. Caracterizar y representar el conocimiento aprendido para transmitírselo al sistema de Predicción. El conocimiento prototípico extraído del conjunto de datos transformado, ha sido caracterizado y definido con exactitud para transmitirlo como conocimiento aprendido al Sistema de Predicción Borroso (Véase 4.2.3.3). Jose Sanjurjo Fortes Universidad Pontificia Comillas 124

8.3.2 Sistema de Predicción Borroso i. Cuantificar el momento en base al cual se realizará la predicción. Utilizando algoritmos de transformación, se ha convertido el nuevo conjunto de datos a partir del cual se realizará la predicción futura en un conjunto de ciclos, de la misma manera que al realizar la transformación en el Sistema de Extracción de Conocimiento Prototípico, seleccionando el último ciclo de estos, que posee determinadas particularidades, para conocer el momento en el que se ha de llevar a cabo la predicción (Véase 4.3.1). ii. Establecer la similitud del momento con los patrones de comportamiento aprendidos por el Sistema de Extracción de Conocimiento Prototípico. En base a un conjunto de métodos computacionales, se establece la similitud entre los patrones aprendidos y el ciclo del cual se realizará la predicción (Véase 4.3.2). iii. Deformar los patrones obtenidos por el Sistema de Extracción de Conocimiento Prototípico, en base a su similitud con el momento de la predicción para obtener el patrón borroso único. Para obtener el patrón borroso a partir del cual se realizará la estimación, se han deformado los patrones disponibles según su similitud con la tendencia actual, obteniendo así un patrón borroso único (Véase 4.3.2). Jose Sanjurjo Fortes Universidad Pontificia Comillas 125

iv. Llevar a cabo la estimación de la evolución del precio del Índice tratado en base al momento actual y el patrón borroso obtenido. Una vez se conoce la tendencia actual junto con el patrón deformado obtenido por similitud con el caso actual, se realiza la estimación de evolución futura del precio del Índice por medio del patrón borroso (Véase 4.3.3). Jose Sanjurjo Fortes Universidad Pontificia Comillas 126

CAPÍTULO 9 Trabajos Futuros Jose Sanjurjo Fortes Universidad Pontificia Comillas 127

TRABAJOS FUTUROS Tras la realización del proyecto, y dada la calidad de los resultados obtenidos, se pretende integrar el sistema desarrollado en la plataforma de trading Visual Chart, para lo cual será necesario en primer lugar migrar el sistema de Java a Visual Basic, dado que es el lenguaje de programación con el que Visual Chart permite integrar Sistemas de Trading, y posteriormente adaptar el sistema, a un sistema automático, generando así señales de compra-venta automáticas según determinadas reglas. Tras establecer estas reglas, se ejecutará el sistema en un entorno de pruebas, con capital ficticio, para evaluar la ganancia del sistema en diferentes escenarios. Una vez conocido el rendimiento del sistema según los escenarios considerados, según la calidad de éste teniendo en cuenta comisiones, se evaluará su puesta en marcha estableciendo un plan de actuación en los escenarios más favorables de los considerados en el entorno de pruebas. Jose Sanjurjo Fortes Universidad Pontificia Comillas 128

BIBLIOGRAFÍA Jose Sanjurjo Fortes Universidad Pontificia Comillas 129

BIBLIOGRAFÍA [JAOL00] Olivas, J. A.: Contribución al estudio experimental de la predicción basada en categorías deformables borrosas, Tesis doctoral en Ingeniería Informática, Universidad de Castilla-La Mancha, 2000. [JAOL02] Olivas, J. A.; Genero, M.; Piattini, M.; Romero, F. P.: Fuzzy Prototypical Knowledge Discovery to predict information systems maintainability. Proceedings of the Information Processing and Management of Uncertainty in Knowledge-based Systems IPMU 02, Annecy, France, (2002). Vol I, pp. 333 340. [JAOL05] Romero, F. P.; Olivas, J. A.; Garcés, P.: Proposal of a Document Cluster Representation based on Fuzzy Deformable Prototypes. In Proc. of the Joint 4th EUSFLAT & 11th LFA Conference, EUSFLAT LFA 2005, UPC, Barcelona, Spain, (2005). pp 1237 1242. [ZADE82] Zadeh, L. A.: A note on prototype set theory and fuzzy sets. Cognition 12, 1982, pp. 291-297. [IARN08] Apuntes Inteligencia Artificial. Redes Neuronales. 5º IINF ICAI 2008 (Universidad Pontificia Comillas). [MBPD01] Mª Belén Pallín Delgado. Extracción de Conocimiento Prototípico en Dato Económicos para Modelizar los Tipos de Interés. PFC ICAI 2001 (Universidad Pontificia Comillas). [MPLA01] Mª del Pilar López Alarcón. Predicción del Comportamiento del Bono Español a diez años basándose en Técnicas de Data Mining. PFC ICAI 2001 (Universidad Pontificia Comillas). Jose Sanjurjo Fortes Universidad Pontificia Comillas 130

ENLACES DE INTERNET UTILIZADOS Sistemastrading. Investigación y desarrollo de Sistemas de Trading http://sistemastrading.com/ Última visita: 3/6/09 Visualchart. Página official del programa Visual Chart http://www.visualchart.com/ Última visita: 4/6/09 Darwin Betancourt. Drw, Linux, Java y más.. http://drwn.wordpress.com/ Última visita: 21/5/09 David Gilbert and Thomas Morgner. Página sobre jfreechart http://www.jfree.org/ Última visita: 26/5/09 Mathworks. MATLAB Overview http://www.mathworks.es/products/matlab/demos.html?show=demo Última visita: 12/2/09 Gci financial. Inversiones on-line http://www.gcitrading.com/ Última visita: 23/5/09 Wikipedia http://www.wikipedia.org/ Última visita: 4/6/09 JGAP. Genetic Algorithms Package http://jgap.sourceforge.net/ Última visita: 6/4/09 Self Bank. Banco para inverter en Bolsa, Warrants, CFD s https://www.selftrade.es Última visita: 17/3/09 labolsa. Información sobre Tipos de Inversores http://www.labolsa.com/canales/329/ Última visita: 11/5/09 CMCmarkets. Operativa con CFD s http://www.cmcmarkets.es Última visita: 12/5/09 tradingsys. Sistemas de Trading http://www.tradingsys.org/ Última visita: 29/5/09 Rankia. Comunidad Financiera http://www.rankia.com/ Última visita: 24/5/09 TA-Lib. Technical Analysis Library http://ta-lib.org/ Última visita: 8/4/09 Tradery. Trading Tools http://www.tradery.com/ Última visita: 19/5/09 Aprendiendolabolsa. Información sobre el Mercado. http://www.aprendiendolabolsa.com.ar/ Última visita: 26/5/09 Jose Sanjurjo Fortes Universidad Pontificia Comillas 131

APÉNDICE 1 Glosario de Términos Jose Sanjurjo Fortes Universidad Pontificia Comillas 132

GLOSARIO DE TÉRMINOS Trading Actividad de compra/venta de activos por cuenta propia, generalmente a corto plazo y con expectativa de obtención de beneficios rápidos. Sistema Trading Conjunto de reglas objetivas que aplicadas a un mercado buscan obtener beneficios Clustering Agrupamiento de Ciclos con el objetivo de obtener un patrón que los resuma. Cliclo Conjunto de cotizaciones que conforman una tendencia alcista con determinadas características. Patrón Resumen de las características de un conjunto de ciclos similares. Media Móvil Una Media Móvil es una media de las últimas n sesiones, que se recalcula a medida que pasa el tiempo. Stop Loss El Stop Loss es el punto de salida del mercado, el cual limita la cantidad de capital perdido. KDD El KDD (Knowledge Discovery in Databases), es un proceso que, a través del descubrimiento y cuantificación de relaciones en los datos, permite transformar la gran cantidad de datos disponible en conocimiento útil. Índice Bursátil Indicador de la evolución de un mercado en función del comportamiento de las cotizaciones de los títulos más representativos del mercado, elegidos en función de criterios de liquidez. Jose Sanjurjo Fortes Universidad Pontificia Comillas 133

IBEX 35 Índice compuesto por 35 valores, los más líquidos y representativos del mercado bursátil español, ya que concentran más de tres cuartas partes del negocio habitual en la bolsa española. Cortex cerebral La Corteza Cerebral es el manto de tejido nervioso que cubre la superficie de los hemisferios cerebrales Jose Sanjurjo Fortes Universidad Pontificia Comillas 134

APÉNDICE 2 Manual de Usuario y Ejemplos Jose Sanjurjo Fortes Universidad Pontificia Comillas 135

A2.1 MANUAL DE USUARIO El sistema ha sido desarrollado para la estimación de la evolución del IBEX 35, principal índice de la Bolsa Española, con un rango temporal entre las cotizaciones de 15 minutos, de todas formas, hay que señalar que, aunque se encuentre fuera del ámbito del proyecto, se pueden establecer otros rangos temporales, como el diario. A continuación se ejemplificará el funcionamiento del sistema sobre el índice IBEX 35 con un rango temporal de 15 minutos, para posteriormente mostrar otros casos de interés para ilustrar la usabilidad del sistema en distintos escenarios. del sistema. En el punto A2.3 se muestra el proceso de obtención de datos para el funcionamiento Jose Sanjurjo Fortes Universidad Pontificia Comillas 136

Sistema de Predicción de la evolución de la cotización del IBEX 35 con rango temporal de 15 minutos. Este es el caso para el cual se ha desarrollado el sistema, ya que se trata de un valor muy líquido debido al gran volumen de negociación que tiene y posee una gran estabilidad dado que es el principal índice de referencia del mercado español. Para obtener los datos, es necesario acceder a la Plataforma de Trading Visual Chart (Véase A2.3 Obtención de Datos), y seleccionar un conjunto de datos del índice IBEX 35 suficientemente amplio, con un intervalo entre las cotizaciones de 15 minutos. El sistema mostrará inicialmente una pantalla contextual con la evolución del IBEX 35 desde Enero del 2008, empleando para ello un gráfico de velas, como se muestra en la figura 42. Figura 42: Captura de Pantalla Gráfico Contextual. Jose Sanjurjo Fortes Universidad Pontificia Comillas 137

Este gráfico interactivo, se define al arrancarse el sistema, conectándose la aplicación con Yahoo! Finanzas y descargando los datos históricos del índice. En la gráfica de evolución del IBEX 35 se puede hacer zoom arrastrando el cursor para observar con un mayor detalle la evolución de las cotizaciones en determinado rango temporal (Figura 43). Figura 43: Captura de Pantalla Gráfico Contextual Ampliado. En este gráfico interactivo, el usuario podrá consultar la evolución pasada del índice, para ubicarse en el contexto actual sobre el que se va a efectuar la predicción. Jose Sanjurjo Fortes Universidad Pontificia Comillas 138

Una vez se ha situado al usuario en el contexto actual del mercado se puede comenzar con la estimación de la evolución de las cotizaciones del índice en el futuro. Para ello el inversor deberá pulsar el botón de iniciar en el proceso de KDD, el cuál mostrará en un pequeño gráfico los patrones aprendidos por el Sistema de Extracción de Conocimiento Prototípico, los cuales se pueden ampliar pulsando el botón de Ampliar Patrones, que se habrá activado a tal efecto, el cual nos mostrará los patrones aprendidos, como se muestra en la figura 44. Figura 44: Captura de Pantalla de Patrones Aprendidos. Estos patrones que se han mostrado gráficamente para el conocimiento del usuario, son los que se utilizará posteriormente el proceso de Predicción Borroso para predecir la evolución de la situación actual. Una vez conocidos los patrones se iniciará el proceso de Predicción pulsando el botón Iniciar del proceso de Predicción Borroso (figura 45), el cual nos mostrará la duración estimada que tendrá la tendencia, el momento en el que nos encontramos dentro de dicha Jose Sanjurjo Fortes Universidad Pontificia Comillas 139

tendencia y cuáles son los patrones a partir de los cuales se generará el patrón borroso que predecirá la evolución del precio del índice. Figura 45: Captura de Pantalla Contextual Final. Una vez realizada la predicción y conociendo el momento en el que nos encontramos dentro de la tendencia para conocer la evolución de las cotizaciones habrá que pulsar el botón Predicción el cuál nos mostrará gráficamente la evolución que seguirá el precio en los intervalos futuros (figura 46). Jose Sanjurjo Fortes Universidad Pontificia Comillas 140

Figura 46: Captura de Pantalla de Evolución (rojo)+riesgo (azul). Con este gráfico el usuario establecerá el precio objetivo a alcanzar en función del riesgo que conlleva cada nivel de ganancias. Por último, se puede llevar a cabo una simulación del sistema según el fichero a predecir, en la cual simula una inversión automática de acuerdo a un ratio, como se explica en el punto 5.3 (Pruebas). Esta simulación se lleva a cabo pulsando el botón de Iniciar Pruebas, y mostraría el resultado de las pruebas realizadas, así mismo se puede ver la evolución de la ganancia tras cada una de las posiciones tomadas. Figura 47: Resultados Pruebas / Evolución de la ganancia. Jose Sanjurjo Fortes Universidad Pontificia Comillas 141

(figura 48). El sistema permite realizar tareas con los gráficos como cambiar sus propiedades Figura 48: Propiedades del gráfico. También se permite guardar el gráfico: Figura 49: Guardado del gráfico. Jose Sanjurjo Fortes Universidad Pontificia Comillas 142

El sistema posee incluso funciones de impresión: Figura 50: Opciones del gráfico. Jose Sanjurjo Fortes Universidad Pontificia Comillas 143

A2.2 EJEMPLOS DE EJECUCIONES A continuación se mostrarán otros casos de interés, fuera del ámbito establecido para el proyecto, que ilustrarán el funcionamiento del sistema en distintos escenarios. i. IBEX 35 con rango temporal de 15 minutos en tendencia bajista. ii. IBEX 35 con rango temporal diario. Jose Sanjurjo Fortes Universidad Pontificia Comillas 144

IBEX 35 con rango temporal de 15 minutos en tendencia bajista. La metodología a seguir será igual que en el caso anterior, salvo que en este caso, al no encontrarse el sistema en tendencia no se podrá llevar a cabo la predicción, por lo que al iniciar el sistema de predicción, el sistema nos indicará que no se puede llevar a cabo la predicción por realizarse sobre una tendencia bajista, ya que el sistema se especializa en la estimación de la evolución de tendencias alcistas. Figura 51: Captura de Pantalla, Tendencia Bajista. Jose Sanjurjo Fortes Universidad Pontificia Comillas 145

IBEX 35 con rango temporal diario. En primer lugar no se recomienda utilizar el sistema para operativa diaria, ya que es un sistema que se ha realizado para operativa intradiaria, para trading puro, ya que si se utiliza para operativa diaria, hay muchos factores que intervendrán en el precio del índice a parte de los criterios técnicos, como son factores sociales, económicos, resultados empresariales, medidas políticas,.. En definitiva un conjunto de factores relacionados con el análisis fundamental que mermarían la efectividad del modelo y por tanto la estimación de evolución realizada. En el caso de utilizarse el sistema para operativa diaria será necesario descargar el rango de datos sobre el que se realizará el aprendizaje de la plataforma Visual Chart (Véase A2.3 Obtención de Datos), esta vez utilizando como intervalo, el día. La muestra de datos deberá ser suficientemente amplia para realizar un buen aprendizaje. Tras la selección del conjunto de datos diario, el mecanismo a seguir para la obtención de resultados será el mismo, pero en este caso, los patrones aprendidos serán distintos que en el caso anterior, como se puede observar en la figura 52. Jose Sanjurjo Fortes Universidad Pontificia Comillas 146

Figura 52: Captura de Pantalla de Patrones Aprendidos. Posteriormente, la predicción realizada será a un mayor plazo, como se puede observar en la figura siguiente, se trata de una tendencia de 12 días en la que actualmente nos encontramos en el día 7, se puede apreciar que las cuantías tratadas son mucho mayores que en el caso de 15 minutos. Figura 53: Captura de Pantalla de Evolución (rojo)+riesgo (azul). Jose Sanjurjo Fortes Universidad Pontificia Comillas 147

Sistema de Ayuda a laa Decisión de Inversión en Bolsa A2.3 OBTENCIÓN DE DATOS El primer paso para operar con el sistema desarrollado es obtener los datos de trabajo por medio del programa de trading Visual Chart. Para lo cual es necesario instalarlo e iniciarlo. Una vez instalado, para obtener los datos de aprendizaje se selecciona la herramienta Gráfico y se establece en valor sobre el que se desea hacer la predicción así como el rango temporal sobre el cual se llevará a cabo el aprendizaje y la duración de los intervalos y se pinta el gráfico, como muestra la siguiente figura. Figura igura 54: Obtención del Gráfico en VisualChart. Jose Sanjurjo Fortes Universidad Pontificia Comillas 148

Estos datos se guardan en formato texto con el nombre data.txt en el directorio de la aplicación como indica la figura 55. Figura 55: Descarga de Datos en VisualChart. Tras esta operación ya se puede realizar el aprendizaje del sistema. Para llevar a cabo la predicción se sigue un procedimiento análogo al anterior, únicamente que en este caso los datos seleccionados son sobre los que se realizará la predicción. En caso de que no se vallan a realizar pruebas, los datos seleccionados se pueden solapar con los utilizados para el entrenamiento. Pero en caso de que se pretendan realizar pruebas se debe de seleccionar un conjunto de datos nuevo para que la prueba tenga validez. Este conjunto de datos sobre el que se llevará a cabo la predicción, se guarda con el nombre de predicción.txt en el directorio de la aplicación. Tras esta carga de datos el sistema ya está preparado para llevar a cabo la predicción. Jose Sanjurjo Fortes Universidad Pontificia Comillas 149