36
Minería de datos para la construcción de sistemas de trading automático OpenSistemas 2014 Fernando Monera ([email protected])

Minería de datos para trading automático

Embed Size (px)

DESCRIPTION

Líneas magistrales de la master class ofrecida por Fernando Monera, CINO de OpenSIstemas, en el Master de Minería de Datos 2013/2014 de la UCM.

Citation preview

Page 1: Minería de datos para trading automático

Minería de datos para la construcción de sistemas de trading automático

OpenSistemas 2014

Fernando Monera ([email protected])

Page 2: Minería de datos para trading automático

Índice

❏ 1. Planteamiento general❏ 2. Equipo / roles necesarios❏ 3. Conceptos básicos❏ 4. Ejemplo práctico

❏ Idea operativa❏ Programación❏ Ejecución

❏ 5. Conclusiones

Page 3: Minería de datos para trading automático

● ¿Conocimientos o experiencia sobre bolsa u otros mercados?

Pregunta

Page 4: Minería de datos para trading automático

● ¿Alguien tiene experiencia con trading automático?

Pregunta

Page 5: Minería de datos para trading automático

PARTE 1

CONCEPTOS BÁSICOS

Page 6: Minería de datos para trading automático

● Objetivo:○ Ventajas competitivas○ Sostenidas○ Mercados financieros

Planteamiento General

Page 7: Minería de datos para trading automático

Planteamiento general

○ Sistemas automáticos vs. manuales■ Sistemas automáticos: >70%■ Sistemas manuales: <30%

○ El porcentaje va aumentando a favor de los sitemas automáticos

○ Barreras de entrada han bajado enormemente

Page 8: Minería de datos para trading automático

● Enfoques:○ Tradicional

■ Idea operativa■ Programación del algoritmo■ Backtesting■ Optimización

○ Otros enfoques

■ Redes neuronales, Walk Forward, Data Mining de sistemas (vs parámetros), ...

Planteamiento general

Page 9: Minería de datos para trading automático

Para construir un sistema de trading son necesarios expertos en las siguientes áreas:

● Trader: Conoce los mercados y proporciona la idea operativa

● Programador: Convierte la idea operativa en un algoritmo

● Sistemas/infraestructura: Máquinas, comunicaciones, monitorización, ...

Equipo / roles necesarios

Page 10: Minería de datos para trading automático

Una misma persona puede asumir dos o incluso los tres roles:

● Lenguajes de programación sencillos● Plataformas orientadas a “retail trading” /

“home trading”● Precio de datos muy barato incluso gratuito

en algunos casos● Mucha información disponible en Internet

sobre trading

Equipo / roles necesarios

Page 11: Minería de datos para trading automático

● Datos disponibles: ○ Precio y Volumen

● Representación Gráfica○ Series temporales: es la forma más

común de representación○ Eje X: tiempo○ Eje Y: precio

Conceptos básicos

Page 12: Minería de datos para trading automático

● Velas japonesas○ Apertura○ Cierre○ Máximo○ Mínimo

● Marcos temporales

Conceptos básicos

Page 13: Minería de datos para trading automático

● Indicadores: ○ Operaciones sobre el precio y/o el

volumen○ Otros (noticias por ejemplo)

● Indicadores comunes:○ Medias móviles: Tendencia

○ Osciladores: Sobrecompra / Sobreventa

○ Bandas: Niveles de precio extremos○ Estructura del precio: Zigzag○ ...

Conceptos básicos

Page 14: Minería de datos para trading automático

○ Ejemplo: medias móviles

Conceptos básicos

Page 15: Minería de datos para trading automático

○ Ejemplo: ZigZag

Conceptos básicos

Page 16: Minería de datos para trading automático

○ Ejemplo: Bollinger Bands

Conceptos básicos

Page 17: Minería de datos para trading automático

● Ineficiencia de un mercado○ Un mercado es EFICIENTE cuando es

completamente aleatorio.○ La eficiencia completa no existe○ Ineficiencias:

■ situaciones puntuales de mercado ■ probabilidad de predicción a corto plazo > 50%

○ Nuestro trabajo como diseñador de la estrategia es identificar ineficiencias

Conceptos básicos

Page 18: Minería de datos para trading automático

● Algoritmo de trading■ Software■ ENTRADA: Datos del mercado en tiempo real■ SALIDA: Decisiones de trading (comprar/vender)

Conceptos básicos

Datos del mercado

Algoritmode trading

Analizar datosDecisiones

Comprar / Vender

Page 19: Minería de datos para trading automático

● Testing○ Comprobar comportamiento

■ Backtest: Prueba del comportamiento sobre datos históricos

■ Forward test: Prueba del comportamiento sobre el mercado real

● Filtros y mejoras○ Mejoras a la estrategia para mejorar

resultados de testing

● Optimización○ Adaptación de variables al mercado

Conceptos básicos

Page 20: Minería de datos para trading automático

PARTE 2

PRÁCTICA: Construcción de un sistema de trading automático

Page 21: Minería de datos para trading automático

● Vamos a construir un algoritmo de trading

● ¿Qué necesitamos? ○ (3 cosas)

Práctica

Page 22: Minería de datos para trading automático

● Vamos a construir un algoritmo de trading

● ¿Qué necesitamos? ○ Idea operativa (trader / analista de

mercados)

Práctica

Page 23: Minería de datos para trading automático

● Vamos a construir un algoritmo de trading

● ¿Qué necesitamos?○ Idea operativa (trader / analista de

mercados)

○ Programador / entorno de programación

Práctica

Page 24: Minería de datos para trading automático

● Vamos a construir un algoritmo de trading

● ¿Qué necesitamos?○ Idea operativa (trader / analista de

mercados)

○ Programador / entorno de programación

○ Infraestructura: plataforma de trading

Práctica

Page 25: Minería de datos para trading automático

● Idea operativa: Cruce de medias móviles periodos 30 y 100

● Plataforma: Metatrader en este ejemplo

● Infraestructura: Local. Sin conexión al broker.

Práctica

Page 26: Minería de datos para trading automático

● IDEA OPERATIVAIdea Operativa

Page 27: Minería de datos para trading automático

● IDEA OPERATIVA○ Cruce de medias móviles

○ Comprar cuando la media móvil rápida se cruza hacia arriba con la lenta

○ Vender en caso contrario

Idea Operativa

Page 28: Minería de datos para trading automático

● PROGRAMACIÓN○ Similar a cualquier lenguaje○ Barras numeradas de 0 en adelante

■ 0 -> barra “viva”■ 1 en adelante -> barras ya cerradas

Programación

Page 29: Minería de datos para trading automático

● Fase 1: Obtener valores de medias móviles

■ Entorno de programación■ Funciones principales de un algoritmo■ Funcionamiento general■ Obtención de valores de un indicador

Programación

Page 30: Minería de datos para trading automático

● Fase 2: Cruce de medias■ Identificar condiciones del mercado favorables

Programación

Page 31: Minería de datos para trading automático

● Fase 3: Operaciones de trading

■ Realizar operaciones de trading en condiciones del mercado favorables

■ Probar en varios mercados y marcos temporales

Programación

Page 32: Minería de datos para trading automático

● Fase 4: Mejoras en salidas■ Añadimos una media móvil adicional

Programación

Page 33: Minería de datos para trading automático

● Fase 5: Parámetros y optimización

■ Añadimos parámetros■ Probamos cambiando los parámetros■ Optimización■ Probamos en distintos mercados

Programación

Page 34: Minería de datos para trading automático

● El algoritmo ya podría ejecutarse en una cuenta real

● Hemos dejado fuera aspectos muy importantes:○ Sobre optimización / curve fitting○ Filtros○ Gestión del riesgo / gestión monetaria○ ...

Programación

Page 35: Minería de datos para trading automático

○ Mercados accesibles a todos. No hay barreras de entrada.

○ La competencia es enorme.

○ Es muy sencillo desarrollar estrategias automáticas de trading.

Conclusiones

Page 36: Minería de datos para trading automático

○ Contacto:■ Fernando Monera■ [email protected] ■ www.opensistemas.com Contacto