CONSTRUCCIÓN AUTOMÁTICA DE REGLAS DE INVERSIÓN UTILIZANDO PROGRAMACIÓN GENÉTICA

Documentos relacionados
Son una clase particular de los algoritmos evolutivos.

1. Introducción 2. Esquema básico 3. Codificación 4. Evaluación 5. Selección 6. Operadores 7. Ejemplo. Algoritmos genéticos

Índice INTRODUCCIÓN...11 CAPÍTULO 1. SELECCIÓN DE ARQUITECTURAS Y HERRAMIENTAS DE PROGRAMACIÓN...13

NÚMERO DE HORAS: 160H PROGRAMACIÓN WEB EN EL ENTORNO CLIENTE OBJETIVO

Inteligencia Artificial

Programación genética en mercados financieros

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

Elemento crítico para la garantía de calidad del software y representa una revisión final de las especificaciones, del diseño y de la codificación.

SILABO DEL CURSO ALGORITMOS Y ESTRUCTURAS DE DATOS 1

Computación I Representación Interna Curso 2011

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

Algoritmos genéticos

Informática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani

Tema 2: Algoritmos Genéticos

Datos y tipos de datos

Unidad II: Análisis semántico

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:

Aritmética de Enteros y

INSTITUTO TECNOLÓGICO DE NUEVO LAREDO. INGENIERÍA EN SISTEMAS COMPUTACIONALES. Materia: Inteligencia Artificial. Catedrático:

Introducción a PL/SQL

Estructuras de Control

Minería de datos (Algoritmos evolutivos)

MAESTRÍA EN ELECTRÓNICA Y AUTOMATIZACIÓN, MENCIÓN SISTEMAS DE CONTROL. Malla Curricular

ALGORITMOS II PSEUDOCODIGOS INTRODUCCION AL PSEINT CORPODICES VICTOR ANDRES OCHOA CORREA

NXA FUNCIONES PARA EXTRACCIÓN DE DATOS

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Búsqueda en e.e. --> reglas para elegir entre las ramas que con más probabilidad lleven a la solución.

Un algoritmo es una serie de pasos lógicos y organizados que describe el proceso que se debe seguir, para dar solución a un problema específico.

PROGRAMACION II. Dr. Mario Rossainz López. Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera de 2017

Introducción a la programación: Algoritmos

Al final, qué sabré hacer?... Itinerario del proceso de aprendizaje... Capítulo 1. Conceptos generales a modo de introducción (CG)

UNIDAD I CONCEPTOS GENERALES. Conceptos Generales Microprocesadores Otoño 2011

ESTRUCTURAS DE DATOS Y ALGORITMOS

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

UNIVERSIDAD CENTROCCIDENTAL LISANDRO ALVARADO DECANATO DE INGENIERIA CIVIL PROGRAMACION II. CARÁCTER: Obligatoria DENSIDAD HORARIA HT HP HS THS/SEM

1. Método general. 2. Análisis de tiempos de ejecución. 3. Ejemplos de aplicación Problema de las 8 reinas Problema de la mochila 0/1.

Programación Estructurada

Computación Evolutiva Algoritmos Genéticos

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

Programación imperativa. Algoritmos y Estructuras de Datos I. Ciclos

ESTRUCTURA SECUENCIAL ESTRUCTURA SELECTIVA

Tema 3: Técnicas básicas de búsqueda para la resolución de problemas

II Unidad EL ALGORITMO GENETICO BINARIO. Rafael Vazquez Perez

Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales.

Tema 2 Introducción a la Programación en C.

Caracterización de la incertidumbre del precio futuro del cobre

Estructuras de control Agosto de Facultad de Ingeniería. Universidad del Valle

PHP: Lenguaje de programación

Búsqueda Informada. Algoritmos primero el mejor Algoritmos de búsqueda local

Objetivos y Temario CURSO MySQL 5

Representación de la información

Programación Genética

Dpto. de ATC, Universidad de Sevilla - Página 1 de 16

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

Tema I Testing Estructurado

Verificación y Validación de Software

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Programación en Lenguaje C

Examen escrito de Programación 1

Unidad 3. Estructuras de control en diagrama de Flujo y pseudocódigo Tema Iteración o Repetitivas (repite - mientras) Juan Pablo Cobá Juárez Pegueros

Introducción a PL/SQL

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Tema 5: Algoritmos Genéticos

Tema 2. El lenguaje JAVA

Tema: Estructuras de Selección en C#.

Fundamentos de Informática E.U.P. Universidad de Sevilla

Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas

Repaso Visual Basic Interfaz Gráfica

Técnico en Ciclo de Vida del Software

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Proyecto de Innovación y Mejora de la Calidad Docente. Convocatoria Nº de proyecto: 126

Simulación de Redes Neuronales Artificiales: Una Herramienta para la Docencia en Castellano

JavaScript: Lenguaje de programación

Posibles trabajos HIA

FUNDAMENTOS DE INFORMÁTICA

Elvira Mayordomo y Jorge Álvarez. Marzo - Abril de 2016

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

6.1. Operadores aritméticos en binario natural

2. Editor de Fórmulas Léxico...5

Estructura de datos y de la información Boletín de problemas - Tema 10

Ejercicios del Tema 3 Estructuras jerárquicas: Árboles

Ingeniería en Sistemas Computacionales. Inteligencia Artificial. Ing. Bruno López Takeyas. Algoritmo Hill Climbing

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Java para programadores

Lenguajes de Programación Programación funcional

1. PRINCIPIOS BÁSICOS DE PROGRAMACIÓN

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

ESTRUCTURAS DE CONTROL

Aprendizaje Automatizado

Aprender a desarrollar con JavaScript

PROYECTO MOFM Presentación Pedro A. Leal Martínez Consultor: Óscar Escudero Sánchez

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

Lenguajes de marcado para presentación de Páginas web.

Estructuras de datos: Árboles binarios de

Introducción. Algoritmos y Complejidad. Algoritmos y Algoritmia. Introducción. Problemas e instancias. Pablo R. Fillottrani

Métodos CON valor de retorno

Sistema de Administración de Farmacias Descripción de la Arquitectura Versión 1.1. Historia de revisiones

Transcripción:

CONSTRUCCIÓN AUTOMÁTICA DE REGLAS DE INVERSIÓN UTILIZANDO PROGRAMACIÓN GENÉTICA Mario Alberto Llorente Lopez PFC Ingeniería en Informática 24 de Enero de 2012

CONTENIDO Introducción Objetivos Planificación Algoritmos genéticos y mercados financieros Algoritmos genéticos Mercados financieros Algoritmo desarrollado Desarrollo de la aplicación Análisis y especificación Diseño Implementación Experimentos y conclusiones Experimentación Conclusiones 2

INTRODUCCIÓN 3 Objetivos Planificación

OBJETIVOS Diseñar algoritmo de programación genética Desarrollar una aplicación para utilizar el algoritmo Realizar experimentos para determinar los mejores parámetros del algoritmo 4

PLANIFICACIÓN Tarea Tiempo (horas) Estudio de la documentación de programación genética 100 Estudio del lenguaje C++, preparación del entorno de programación 40 Estudio de mercados financieros, obtención de datos de históricos de precios 40 Reuniones con el director del proyecto 20 Diseño del algoritmo 100 Implementación y testeo del algoritmo 140 Análisis y especificación 100 Diseño 40 Implementación 200 Experimentación 60 Redacción de la documentación 120 Duración: 960 h. 5

ALGORITMOS GENÉTICOS Y MERCADOS FINANCIEROS 6 Introducción a la programación genética Nociones sobre los mercados de acciones Estructura del algoritmo implementado

ALGORITMOS GENÉTICOS Familia de algoritmos de IA Espacio de búsqueda inabordable con búsqueda exhaustiva Decisiones importantes Representación de las soluciones Cadenas de objetos (normalmente bits) Generación población inicial Operadores y sus probabilidades Función evaluación o de fitness Criterio finalización 7

ALGORITMOS GENÉTICOS Pasos Crear una población de soluciones aleatoria Aplicar operadores sobre los individuos un cierto número de veces Operadores imprescindibles: cruce y reproducción La población siempre cuenta con los mismos individuos Se remplazan los individuos de peor calidad Acabar cuando la población no mejora 8

PROGRAMACIÓN GENÉTICA Tipo de algoritmo genético Representa a los individuos mediante árboles No hay limitación en la longitud de los individuos Cada nodo del árbol es una función Operadores Principales Reproducción Cruce Secundarios Mutación Permutación Edición Encapsulación Destrucción 9

MERCADOS FINANCIEROS Intercambio de activos entre inversores Precio regulado según oferta y demanda Mercado de acciones Cotizan participaciones de empresas grandes 10

MERCADOS FINANCIEROS Estrategias inversión Activas Operaciones frecuentes Costes por transacción influyen considerablemente Inversión en empresas concretas Pasivas Largo plazo Inversión en un conjunto de empresas o en un índice Históricamente mejor que las activas La más conocida es buy and hold 11

MERCADOS FINANCIEROS Criterios para invertir Análisis técnico Basado en tres principios: Toda la información incluida en el precio El precio se mueve en tendencias La historia se repite Indicadores cuantitativos sobre el estado de la tendencia Ejemplo con dos medias móviles (corto y largo plazo): 12

ALGORITMO DESARROLLADO Tipos de nodos Indicadores de análisis técnico Constantes Operadores lógicos y aritméticos Ejemplo de regla: 13

ALGORITMO DESARROLLADO Tipos de datos Booleano: condición Entero: número de días Decimal: precio (normalizado) Los árboles resultantes han de ser correctos El nodo raíz ha de devolver un valor booleano Cada nodo devuelve un tipo de datos predefinido Cada nodo acepta uno o más tipos de datos en sus descendientes Ventaja: acota el espacio de búsqueda Inconveniente: más tiempo al aplicar operadores 14

ALGORITMO DESARROLLADO Basado en Allen y Karjalainen 1. Crear una población de reglas aleatoriamente 2. Guardar la mejor regla en el periodo de entrenamiento como mejor regla 3. Aplicar operadores sobre la población de reglas 4. Aplicar la mejor regla en el periodo de entrenamiento al de validación 5. Si la regla anterior supera a la mejor regla guardada en el periodo de validación, sustituirla 6. Ejecutar 3, 4 y 5 (llamados generación) hasta que no haya mejora durante un cierto número de generaciones o hayan pasado un cierto número total 15

ALGORITMO DESARROLLADO Estrategia de generación con dos periodos: entrenamiento y validación Ayuda a eliminar el sobreentrenamiento Función de fitness Beneficio absoluto obtenido en el periodo, contando los costes por cada transacción Cada regla se evalúa para cada día de mercado T t=1 fitness = (I t ln P t 3 operadores P t 1 ) + n ln 1 c 1+c T: días del periodo; P t : precio del día t; n: número de transacciones en el periodo; c: coste por transacción (tanto por uno) I(t) = 1 si en el día t la regla indica estar dentro del mercado I(t) = 0 si en el día t la regla indica estar fuera del mercado Reproducción (implícito) Cruce Mutación 16

DESARROLLO DE LA APLICACIÓN 17 Especificación Diseño Implementación

ESPECIFICACIÓN 18

ESPECIFICACIÓN Método adoptado del artículo de Keith y Martin 19

DISEÑO Arquitectura 3 capas Separación lógica de las funcionalidades Facilita la extensión y comprensión del sistema Cada capa dispone de un controlador 20

DISEÑO 21

IMPLEMENTACIÓN Lenguajes de programación C++ con Qt SQL Base de datos MySQL Herramientas NetBeans 6.9.1 MySQL WorkBench 5.2 Boost 22

EXPERIMENTOS Y CONCLUSIONES 23 Experimentación Conclusiones

EXPERIMENTACIÓN Objetivos Comportamiento según los costes por transacción Influencia de la tendencia en el resultado Comprobar si se puede superar a buy and hold Método rolling forward: 24

EXPERIMENTACIÓN Parámetros usados: Probabilidad de cruce 90% Probabilidad de mutación 5% Iteraciones 50 Tamaño de la población de individuos 200 Máximo número de generaciones 100 Número de generaciones sin obtener mejora 50 Número máximo de nodos por individuo 80 25

EXPERIMENTACIÓN Resultados Comportamiento lógico de las reglas Reglas adaptadas al coste con el que se generan Resultados similares con iguales parámetros Menos transacciones con mayores costes en la generación Costes en la generación altos Probable correlación entre la tendencia y los resultados Posibilidad de mejorar el comportamiento de buy and hold con la tendencia adecuada 26

Beneficio (sobre BH) Beneficio (sobre BH) EXPERIMENTACIÓN Muestra de resultados: 0,100000 DJI, coste por transacción en la generación: 0,1% 0,000000-0,100000 0 0,1 0,5 1 2 3-0,200000-0,300000-0,400000-0,500000 Coste por transacción en test 0,500000 0,400000 0,300000 0,200000 0,100000 0,000000-0,100000-0,200000-0,300000 DJI, coste por transacción en la generación: 3% 0 0,1 0,5 1 2 3 Coste por transacción en test 27

EXPERIMENTACIÓN Conclusiones Secuencia Entrenamiento Validación Test Resultado 1 Alcista muy fuerte Mayormente Mayormente Siempre igual que BH bajista bajista 2 Mixta (alcista Mixta (bajista Alcista Siempre peor que BH bajista) alcista) 3 Mayormente bajista Alcista Alcista (muy fuerte en IBEX) Siempre peor que BH (el peor) 4 Mixta (bajista alcista x 2) Alcista (muy fuerte en IBEX) 5 Alcista Mixta (bajista muy fuerte x 2 alcista) Mixta (bajista muy fuerte alcista) Alcista en DJI Plana en IBEX Siempre mejor que BH Mejor o igual que BH en DJI Ligeramente peor que BH en IBEX 28

CONCLUSIONES Expansión de conocimientos sobre algoritmos genéticos y sobre finanzas Diseño de un algoritmo a partir de otros trabajos e ideas propias Adquisición de habilidad de programación en C++ y Qt Desarrollo de una aplicación mediante ingeniería del software Introducción a la investigación en IA Redacción de una extensa documentación 29

30 GRACIAS POR SU ATENCIÓN

ALGORITMO DESARROLLADO Ejemplo de regla ambigua e incorrecta: 31

ALGORITMO DESARROLLADO Ejemplo de representación prefix: 32

ALGORITMO DESARROLLADO Tipos de nodos Indicadores de análisis técnico Precio Máximo Mínimo Media móvil Constantes (booleanas, enteras, decimales) Operadores lógicos y aritméticos AND OR NOT Mayor Menor Igual Suma Resta If then else 33

ALGORITMO DESARROLLADO Representación de la información de un nodo: 4 bytes (número entero) tipo : tipo de datos que contiene el nodo valor Booleano: falso = 0; cierto!=0 Entero Rango: +1.048.575-1.048.576 Decimal Coma fija (4 bits parte entera, 16 bits parte decimal) Rango: +15,99998... -16,99998 Precisión 1,526 10-5 34

ALGORITMO DESARROLLADO Cruce Descendiente mejor siempre remplaza un progenitor La probabilidad de que un progenitor sea remplazado es proporcional a la diferencia de fitness con el otro progenitor Es posible que algunos individuos sean incompatibles: 35

ALGORITMO DESARROLLADO Estructura para la selección: Probabilidad de elegir una posición: adj_fitness i = p_base i num_ind i num _pos j=1 p_base j num_ind j Posición de un individuo: num_pos (fitness i - min_fitness) posición = max_fitness - min_fitness 36

37