El objetivo de este proyecto es realizar una aplicación piloto para poner al alcance del pequeño inversor técnicas de Machine Learning para que pueda identificar cuáles son los mejores momentos para comprar acciones del IBEX 35.
Concretamente realizaremos predicciones de compra a 20 sesiones bursátiles con el objetivo de ganar un 10%, de no cumplirse la predicción al 20abo día, asumiremos la ganancia/perdida que devenga de vender al precio de cierre de ese día.
The objective of this project is to develop a pilot application to make available to the small investor, Machine Learning techniques to be able to identify what are the best times to buy shares of IBEX 35 (Top 35 Spanish stock market shares).
Specifically we will make predictions of purchase with the goal of winning 10% in the 20 next coming sessions, if it does not happened our strategy is to sell that 20th day and assume the gain/loss accruing at the closing price of that day.
1. CLÀUDIA MASÓS TORRÓ
ALBERT OBIOLS VIVES
CLAUDIA MARCELA RAMÍREZ ZULUAGA
Posgrado en Big Data Management and Analytics
BrokerTrade
APLICACIÓN DE RECOMENDACIÓN PARA LA COMPRA
DE ACCIONES EN TIEMPO REAL
4. Propuesta de Negocio: Idea
4
Poner al alcance del pequeño inversor una
aplicación Web basada en algoritmos de
aprendizaje automático que le permita auto-
gestionar sus inversiones, y ayudarle a
determinar si un momento es propicio o no
para la compra de activos.
Ganar 10% haciendo
predicciones en 20 sesiones
6. Propuesta de Negocio: Oportunidad
6
OBJETIVA
Sin intermediarios en…
compra y venta de activos
Sin intereses
humanos
Recomendación
Autogestión
Asesoramiento
Big data
Facilidad de uso
Sin experiencia
en finanzas
Pequeño inversor
7. Propuesta de Negocio: Modelo de negocio
7
Datos históricos
Infraestructura
Cloud
Pequeño inversor
Autogestión
Objetividad
Predicciones
Mejora modelos
Social
Commerce
B2C
Virtual
Automática
Anuncios
Publicidad
Campañas automáticas
Desarrollo
Modelos
Infraestructura
Fuente datos
Algoritmo ML
Infraestructura
Recursos
Recursos
Inversión Infraestructura
Desarrollo y Marketing
Distribución
8. Propuesta de Negocio: Viabilidad económica
8
Primer año
• Modelo de negocio => Freemium.
• 2.100 euros de coste hardware + publicidad
– CPC (Cost per click)
– CPM (precio que nos paga nuestro proveedor de
anuncios por cada 1000 anuncios mostrados)
– plataforma de anuncios (Google AdWords )
• 1.400 visitas al día para cubrir gastos
Segundo año en adelante…
• Predicciones de otros mercados
• Predicciones a la carta
• Predicciones parametrizables
• Notificaciones por predicción de compra
15. Data Management: Data Flow y distribución de los cálculos
15
BBVA 6,46
BBVA 6,46
BBVA 6,46
BBVA6,46
CABK2,70
ELE19,05
BBVA 6,46 BUY
CABK 2,7 ---
ELE 19,05 --
17. Data Management: Análisis Cuantitativo
Números
• 35 acciones monitorizadas
• 3 modelos para cada una de
las acciones (SVM, RF, LR)
• 105 modelos en total que se
recalculan cada día
• 8.000 predicciones al día y sus
correspondientes registros en
MongoDB
• 41.248 registros con datos de
cotizaciones desde Enero de
2012
Tiempos
• 4 segundos para predecir 35
valores
• 0,12 segundos de media para
realizar una predicción
• 10 minutos para recalcular
todos los modelos
• 6 segundos en recalcular cada
modelo
• 11 – 12 segundos de media,
desde que leemos una
cotización en Yahoo Finance
hasta que el usuario la ve
publicada en la web.
17
18. Data Management: Análisis Cuantitativo
Disco
• 180 MB scripts en R + jar de
getPrices + el jar de Spark
Stream.
• 72 MB ocupan los 105 modelos
en local (en HDFS el espacio
ocupado depende del block
size, en nuestro caso los
ficheros son bastante pequeños
y por tanto nos interesa un
block size pequeño).
• 200 MB BBDD mongo con las
cotizaciones históricas y las
predicciones al cierre de 3
meses.
18
20. Data analytics
20
1.Obtención de los datos
• Gratis
• Limpios
1.1. Datos en vivo (15-20 minutos de demora):
1.2. Datos históricos:
Problema: Los algoritmos de Machine Learning no son aplicables
a las series temporales
21. 21
2. Creación de los dataframes
Data analytics
• Simplificación: transformación a un problema de clasificación
• Variable objetivo: Aumento del 10% en 20 sesiones
2.1. Series temporales vs observaciones independientes
2.2. Transformación de las variables
• Cálculo de indicadores:
• Simple Moving Average (SMA)
• Rate Of Change (ROC)
• Triple cruce de medias
• Doble cruce de medias
• Commodity Channel index (CCI)
• Variables derivadas:
• DíasSMA
• DiasROC
• DiasTRIP_CRUCE
• DiasDOB_CRUCE
• DiasCCI
• SUBE
22. 22
Data analytics
3. Técnicas de Machine Learning
3.1. Logistic Regression (LR):
- No necesita optimización de parámetros
- Es el modelo más simple
3.2 Random Forest (RF):
- Método robusto
- Necesita optimizar el parámetro “mtry”.
3.3 Support Vector Machine (SVM):
- Método robusto
- Kernel Radial
- Necesita optimizar varios parámetros: el coste (C) y la gamma.
4. Protocolo de validación
3 modelos para
cada ticker
4.1 10-fold CrossValidation (10-CV):
- Más fiable que Test & Train
- Misma partición de los datos: eliminamos casos “buenos” aleatorios
- Nos devuelve la media de la performance de 10 modelos
- Tenemos un número que nos permite “puntuar” el modelo.
23. 23
Data analytics
4.2 Area Under the Curve (AUC):
- Más fiable que la Accuracy o cualquier método que derive de la matriz de confusión.
- Independiente del porcentaje de casos positivos o negativos (datasets imbalanceados).
5. Matriz de resultados
• Para cada ticker de bolsa tenemos 3 modelos
• Todos los modelos están por encima del 0.65 de AUC.
• En la mayoría de los tickers, el mejor modelo es el de RF.
• Los modelos de LR no son mejores en ninguno de los
casos.