osBrain: una herramienta para la inversión automática en bolsa y mercados de intercambio de...

Post on 18-Jul-2015

80 views 1 download

Transcript of osBrain: una herramienta para la inversión automática en bolsa y mercados de intercambio de...

Marzo, 2015 1 / 34

Wopr: una herramienta para la inversión automática en bolsa y mercados de intercambio de divisas

F. Monera Daroqui

M. Sánchez de León Peque

Marzo, 2015 2 / 34

Introducción

Wopr, XWopr, Estrategias

Estadísticas de desarrollo

Marzo, 2015 3 / 34

Introducción

Contexto, motivación, objetivos, requisitos, estructura del proyecto, herramientas

Marzo, 2015 4 / 34

Contexto, motivación

Abril 2014

Área de I+D: algoritmos de inversión automática

Limitación de las herramientas existentes

Marzo, 2015 5 / 34

Objetivos

Diseño y desarrollo de una aplicación modular, escalable y distribuida para la realización de operaciones en mercados bursátiles y Forex

Diseño de la arquitectura del sistema (Wopr)

Desarrollo de una interfaz gráfica (XWopr)

Implementación de algoritmos complejos que trabajan con conceptos abstractos

Aplicación de algoritmos de aprendizaje automático

Marzo, 2015 6 / 34

Estructura del proyecto

Marzo, 2015 7 / 34

Herramientas

GNU / Linux

Python

ZeroMQ

Git

TDD

Marzo, 2015 8 / 34

Wopr

Arquitectura del sistema, nodos, nodos especializados

Marzo, 2015 9 / 34

Arquitectura del sistema (1)

Sistema multiagente

Marzo, 2015 10 / 34

Arquitectura del sistema (2)

Processing &

routing

Experts

Experts

Brain

Brain

Orders &

more

Broker platform

Broker platform

Marzo, 2015 11 / 34

Nodos (1)

REQ-REP: El cliente espera siempre una respuesta

PUB-SUB: Distribución de datos a suscriptores

PUSH-PULL: Cola clásica (el cliente no espera respuesta)

Node

REQ PUBPULL

Marzo, 2015 12 / 34

Otros patrones

XPUB-XSUB, XREQ-XREP...

Balanceo de carga

Alta disponibilidad

Marzo, 2015 13 / 34

Nodos (2)

Activados por mensajes o por agotamiento de tiempo de espera

Filtrado de mensajes

Sincronización entre nodos

Marzo, 2015 14 / 34

Enrutador

Maneja datos de mercado crudos (TOHLCV)

Almacenamiento

Distribución

Remuestreo (resampling)

Marzo, 2015 15 / 34

Remuestreo

2 3 4 5 6 7 8 9

1 min

4 min

5 9

2 3 4 5 6 7 8 9

1 min

4 min

2 6

2 3 4 5 6 7 8 9

1 min

4 min

4 8 12

1 2 3 4 5 6 7 8 9

1 min

4 min

3 7

1

Marzo, 2015 16 / 34

Cerebro

B B B B B

Market data

Lowest abstraction level B

B B

B

B

B B

B

Middle abstraction levels

Highest abstraction level

Strategy output

Marzo, 2015 17 / 34

Nigromante

Padre de todos los cerebros de una máquina física

Crea nuevos cerebros bajo demanda

Mata cerebros también bajo demanda

Marzo, 2015 18 / 34

Otros nodos

Supermente

Consola

Alimentador

Puente

...

Marzo, 2015 19 / 34

XWopr

Características, ventana principal, gráficos, indicadores

Marzo, 2015 20 / 34

Características

GUI

Interactúa con Wopr

Es un nodo más dentro de la red

Visualización de gráficos

Gestión de cerebros

Marzo, 2015 21 / 34

Ventana principal

Marzo, 2015 22 / 34

Gráficos

Marzo, 2015 23 / 34

Indicadores

Marzo, 2015 24 / 34

Estrategias

Elliott, detección de patrones, integración

Marzo, 2015 25 / 34

Elliott

time

pri

ce

Marzo, 2015 26 / 34

Detección de patrones (1)

I1

I2

I3

I4

I5

I6

I7

I8

X1

X2

X3

X4

X5

X6

X7

X8

H1

H2

H3

H4

H5

H6

H7

H8

H9

H10

O1

O2

Y1

Y2

B1 B2

Marzo, 2015 27 / 34

Detección de patrones (2)

0 200 400 600 800 1000 1200 1400Epoch

0.10

0.15

0.20

0.25

0.30

0.35

0.40

0.45Err

or

(%)

Corrections training

ValidationTestTrain

Marzo, 2015 28 / 34

Resultados preliminares

Marzo, 2015 29 / 34

Integración

Marzo, 2015 30 / 34

Estadísticas de desarrollo

Tests, documentación, estadísticas de desarrollo

Marzo, 2015 31 / 34

Tests

Más de 100 tests de validación

Más de 1000 aserciones o puntos de verificación

(Re)Write a test Write codeCheck test

RefactorRun all tests

Test(s) fail

Test fails

Test succeeds

All tests succeedRepeat

Marzo, 2015 32 / 34

Documentación

API

Más de 250 docstrings

Más de 2500 líneas

Proyecto

LaTeX

Datos autogenerados

Gráficos vectoriales

Marzo, 2015 33 / 34

Estadísticas de desarrollo de código

1000+ commits

80000+ líneas modificadas

~30000 líneas de código

Marzo, 2015 34 / 34

All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy.

Gracias por su atención

¿Preguntas?