minería de datos para trading automático

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

Upload: open-sistemas

Post on 18-Dec-2014

353 views

Category:

Documents


3 download

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.

TRANSCRIPT

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