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

OpenSistemas 2014
Fernando Monera (fmonera@opensistemas.com)
Í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:
Planteamiento
General

○ Ventajas competitivas
○ Sostenidas
○ Mercados financieros
○ Sistemas automáticos vs. manuales
Planteamiento
general

■
■

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
Planteamiento
general

■
■
■
■

Idea operativa
Programación del algoritmo
Backtesting
Optimización

○ Otros enfoques
■

Redes neuronales, Walk Forward, Data Mining
de sistemas (vs parámetros), ...
Para construir un sistema de trading son
necesarios expertos en las siguientes áreas:
Equipo / roles
necesarios

● 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
● Datos disponibles:
○ Precio y Volumen
Conceptos
básicos

● Representación Gráfica
○ Series temporales: es la forma más
común de representación
○ Eje X: tiempo
○ Eje Y: precio
● Velas japonesas
Conceptos
básicos

○
○
○
○

Apertura
Cierre
Máximo
Mínimo

● Marcos temporales
● Indicadores:
Conceptos
básicos

○ 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
● Ineficiencia de un mercado
Conceptos
básicos

○ 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
● Algoritmo de trading
Conceptos
básicos

■
■
■

Datos del
mercado

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

Algoritmo
de trading
Analizar datos
Decisiones

Comprar /
Vender
● Testing
○ Comprobar comportamiento
Conceptos
básicos

■

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
PARTE 2
PRÁCTICA: Construcción de un
sistema de trading automático
Práctica

● 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.
● IDEA OPERATIVA
Idea Operativa
● IDEA OPERATIVA
○ Cruce de medias móviles
Idea Operativa

○ Comprar cuando la media móvil rápida
se cruza hacia arriba con la lenta
○ Vender en caso contrario
● PROGRAMACIÓN
Programación

○ Similar a cualquier lenguaje
○ Barras numeradas de 0 en adelante
■ 0 -> barra “viva”
■ 1 en adelante -> barras ya cerradas
● Fase 1: Obtener valores de
Programación

medias móviles
■
■
■
■

Entorno de programación
Funciones principales de un algoritmo
Funcionamiento general
Obtención de valores de un indicador
● Fase 2: Cruce de medias
■
Programación

Identificar condiciones del mercado favorables
● Fase 3: Operaciones de
Programación

trading
■
■

Realizar operaciones de trading en condiciones
del mercado favorables
Probar en varios mercados y marcos temporales
● Fase 4: Mejoras en salidas
■
Programación

Añadimos una media móvil adicional
● Fase 5: Parámetros y
Programación

optimización
■
■
■
■

Añadimos parámetros
Probamos cambiando los parámetros
Optimización
Probamos en distintos mercados
● El algoritmo ya podría
Programación

ejecutarse en una cuenta
real
● Hemos dejado fuera
aspectos muy importantes:
○
○
○
○

Sobre optimización / curve fitting
Filtros
Gestión del riesgo / gestión monetaria
...
○ Mercados accesibles a todos. No hay
barreras de entrada.
Conclusiones

○ La competencia es enorme.

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

■
■
■

Fernando Monera
fmonera@opensistemas.com
www.opensistemas.com

Minería de datos para trading automático

  • 1.
    Minería de datospara la construcción de sistemas de trading automático OpenSistemas 2014 Fernando Monera (fmonera@opensistemas.com)
  • 2.
    Índice ❏ ❏ ❏ ❏ 1. Planteamiento general 2.Equipo / roles necesarios 3. Conceptos básicos 4. Ejemplo práctico ❏ Idea operativa ❏ Programación ❏ Ejecución ❏ 5. Conclusiones
  • 3.
    ● ¿Conocimientos oexperiencia sobre bolsa u otros mercados? Pregunta
  • 4.
    ● ¿Alguien tieneexperiencia con trading automático? Pregunta
  • 5.
  • 6.
    ● Objetivo: Planteamiento General ○ Ventajascompetitivas ○ Sostenidas ○ Mercados financieros
  • 7.
    ○ Sistemas automáticosvs. manuales Planteamiento general ■ ■ Sistemas automáticos: >70% Sistemas manuales: <30% ○ El porcentaje va aumentando a favor de los sitemas automáticos ○ Barreras de entrada han bajado enormemente
  • 8.
    ● Enfoques: ○ Tradicional Planteamiento general ■ ■ ■ ■ Ideaoperativa Programación del algoritmo Backtesting Optimización ○ Otros enfoques ■ Redes neuronales, Walk Forward, Data Mining de sistemas (vs parámetros), ...
  • 9.
    Para construir unsistema de trading son necesarios expertos en las siguientes áreas: Equipo / roles necesarios ● Trader: Conoce los mercados y proporciona la idea operativa ● Programador: Convierte la idea operativa en un algoritmo ● Sistemas/infraestructura: Máquinas, comunicaciones, monitorización, ...
  • 10.
    Equipo / roles necesarios Unamisma 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
  • 11.
    ● Datos disponibles: ○Precio y Volumen Conceptos básicos ● Representación Gráfica ○ Series temporales: es la forma más común de representación ○ Eje X: tiempo ○ Eje Y: precio
  • 12.
  • 13.
    ● Indicadores: Conceptos básicos ○ Operacionessobre 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
  • 14.
  • 15.
  • 16.
  • 17.
    ● Ineficiencia deun mercado Conceptos básicos ○ 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
  • 18.
    ● Algoritmo detrading Conceptos básicos ■ ■ ■ Datos del mercado Software ENTRADA: Datos del mercado en tiempo real SALIDA: Decisiones de trading (comprar/vender) Algoritmo de trading Analizar datos Decisiones Comprar / Vender
  • 19.
    ● Testing ○ Comprobarcomportamiento Conceptos básicos ■ 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
  • 20.
    PARTE 2 PRÁCTICA: Construcciónde un sistema de trading automático
  • 21.
    Práctica ● Vamos aconstruir un algoritmo de trading ● ¿Qué necesitamos? ○ (3 cosas)
  • 22.
    Práctica ● Vamos aconstruir un algoritmo de trading ● ¿Qué necesitamos? ○ Idea operativa (trader / analista de mercados)
  • 23.
    Práctica ● Vamos aconstruir un algoritmo de trading ● ¿Qué necesitamos? ○ Idea operativa (trader / analista de mercados) ○ Programador / entorno de programación
  • 24.
    Práctica ● Vamos aconstruir un algoritmo de trading ● ¿Qué necesitamos? ○ Idea operativa (trader / analista de mercados) ○ Programador / entorno de programación ○ Infraestructura: plataforma de trading
  • 25.
    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.
  • 26.
  • 27.
    ● IDEA OPERATIVA ○Cruce de medias móviles Idea Operativa ○ Comprar cuando la media móvil rápida se cruza hacia arriba con la lenta ○ Vender en caso contrario
  • 28.
    ● PROGRAMACIÓN Programación ○ Similara cualquier lenguaje ○ Barras numeradas de 0 en adelante ■ 0 -> barra “viva” ■ 1 en adelante -> barras ya cerradas
  • 29.
    ● Fase 1:Obtener valores de Programación medias móviles ■ ■ ■ ■ Entorno de programación Funciones principales de un algoritmo Funcionamiento general Obtención de valores de un indicador
  • 30.
    ● Fase 2:Cruce de medias ■ Programación Identificar condiciones del mercado favorables
  • 31.
    ● Fase 3:Operaciones de Programación trading ■ ■ Realizar operaciones de trading en condiciones del mercado favorables Probar en varios mercados y marcos temporales
  • 32.
    ● Fase 4:Mejoras en salidas ■ Programación Añadimos una media móvil adicional
  • 33.
    ● Fase 5:Parámetros y Programación optimización ■ ■ ■ ■ Añadimos parámetros Probamos cambiando los parámetros Optimización Probamos en distintos mercados
  • 34.
    ● El algoritmoya podría Programación ejecutarse en una cuenta real ● Hemos dejado fuera aspectos muy importantes: ○ ○ ○ ○ Sobre optimización / curve fitting Filtros Gestión del riesgo / gestión monetaria ...
  • 35.
    ○ Mercados accesiblesa todos. No hay barreras de entrada. Conclusiones ○ La competencia es enorme. ○ Es muy sencillo desarrollar estrategias automáticas de trading.
  • 36.