minería de datos para trading automático
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
Minería de datos para la construcción de sistemas de trading automático
OpenSistemas 2014
Fernando Monera ([email protected])
Índice
❏ 1. Planteamiento general❏ 2. Equipo / roles necesarios❏ 3. Conceptos básicos❏ 4. Ejemplo práctico
❏ Idea operativa❏ Programación❏ Ejecución
❏ 5. Conclusiones
● ¿Conocimientos o experiencia sobre bolsa u otros mercados?
Pregunta
● ¿Alguien tiene experiencia con trading automático?
Pregunta
PARTE 1
CONCEPTOS BÁSICOS
● Objetivo:○ Ventajas competitivas○ Sostenidas○ Mercados financieros
Planteamiento General
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
● 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
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
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
● 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
● Velas japonesas○ Apertura○ Cierre○ Máximo○ Mínimo
● Marcos temporales
Conceptos básicos
● 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
○ Ejemplo: medias móviles
Conceptos básicos
○ Ejemplo: ZigZag
Conceptos básicos
○ Ejemplo: Bollinger Bands
Conceptos básicos
● 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
● 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
● 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
PARTE 2
PRÁCTICA: Construcción de un sistema de trading automático
● Vamos a construir un algoritmo de trading
● ¿Qué necesitamos? ○ (3 cosas)
Práctica
● Vamos a construir un algoritmo de trading
● ¿Qué necesitamos? ○ Idea operativa (trader / analista de
mercados)
Práctica
● Vamos a construir un algoritmo de trading
● ¿Qué necesitamos?○ Idea operativa (trader / analista de
mercados)
○ Programador / entorno de programación
Práctica
● 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
● 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
● IDEA OPERATIVAIdea Operativa
● 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
● PROGRAMACIÓN○ Similar a cualquier lenguaje○ Barras numeradas de 0 en adelante
■ 0 -> barra “viva”■ 1 en adelante -> barras ya cerradas
Programación
● 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
● Fase 2: Cruce de medias■ Identificar condiciones del mercado favorables
Programación
● Fase 3: Operaciones de trading
■ Realizar operaciones de trading en condiciones del mercado favorables
■ Probar en varios mercados y marcos temporales
Programación
● Fase 4: Mejoras en salidas■ Añadimos una media móvil adicional
Programación
● Fase 5: Parámetros y optimización
■ Añadimos parámetros■ Probamos cambiando los parámetros■ Optimización■ Probamos en distintos mercados
Programación
● 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
○ Mercados accesibles a todos. No hay barreras de entrada.
○ La competencia es enorme.
○ Es muy sencillo desarrollar estrategias automáticas de trading.
Conclusiones
○ Contacto:■ Fernando Monera■ [email protected] ■ www.opensistemas.com Contacto