¿Qué es un sistema automático de trading?

Un sistema automático de trading  se opera sin intervención manual de ningún tipo y es un conjunto de reglas automatizadas que definen de forma objetiva la forma de operar sobre uno o varios instrumentos financieros con la finalidad de obtener beneficios.

Esqueleto de un sistema automático de trading

Presentación1
Haz clic en la imagen para ampliarla

El mundo de las finanzas evoluciona rápidamente y las aplicaciones compuestas por tecnología, software, algoritmos avanzados y diferentes métodos para recopilar, procesar y analizar datos se han vuelto imprescindibles para una eficiente toma de decisiones. 

 

A la hora de desarrollar una cartera de  sistemas de trading, trabajaremos con diferentes lenguajes de programación, (R, C++, mql4 ) pero el principal lenguaje que utilizaremos para el desarrollo sera Phyton.

 

Phyton nos ofrece una mayor eficiencia y productividad, con una sintaxis mas elegante y sencilla, que nos permite utilizar funciones y tareas mas complejas con mayor facilidad que otros lenguajes. Además nos ofrece un gran ecosistema de módulos de cálculo científico y facilidad de integración con otros lenguajes de programación.

     BIBLIOTECAS PYTHON

Python es un lenguaje de programación que te permite trabajar rápidamente e integrar sistemas de manera más efectiva.
Python se desarrolla bajo una licencia de código abierto aprobada por OSI, por lo que es libremente utilizable y distribuible, incluso para uso comercial.

 

Hoy Python se considera un líder en lo que respecta a la data science, machine learning y deep learning. Desarrollar estrategias algorítmicas de trading en Python toma mucho menos tiempo en comparación con C ++ / JAVA. Python tiene una gran demanda debido a la disponibilidad de módulos como numpy, pandas, tensorflow,etc..

Numpy es el principal modulo matemático de phyton. En el podemos encontrar matrices que nos facilitan el manejo de información numérica, también encontraremos un gran número de funciones matemáticas sofisticadas y herramientas para integrar el codigo C / C++ y fortran.

Pandas es una librería de python orientada al análisis de datos, y nos proporciona estructuras de datos flexibles. Las estructuras de datos que nos ofrece son series o arrays con indices o etiquetados.  DataFrame que son estructuras de datos similares a las bases de datos relacionales (lógica de predicados y en la teoría de conjuntos) de SQL. Con estas estructuras sera mas sencillo poder modelar y resolver problemas financieros.

Statsmodels  es un módulo de Python que proporciona clases y funciones para la estimación de muchos modelos estadísticos diferentes, así como para realizar pruebas estadísticas y explorar datos estadísticos.Nos permitirá realizar cualquier tipo de análisis estadístico.

Quandl nos permite obtener millones de conjuntos de datos financieros y económicos de cientos de editores directamente en Python. El paquete Quandl Python es de uso gratuito y otorga acceso a todos los conjuntos de datos gratuitos también hay acceso premium. Quandl admite dos formatos de datos: series de tiempo y «tablas de datos» .

Zipline es una biblioteca para comercio algorítmico de Python. Es un sistema impulsado por eventos para backtesting. Zipline se usa actualmente en producción como motor de backtesting y live-trading que alimenta a Quantopian , una plataforma alojada, gratuita y centrada en la comunidad, para crear y ejecutar estrategias comerciales. La entrada de datos históricos y  las estadísticas de rendimiento están basadas en Pandas DataFrames para integrarse perfectamente en el ecosistema PyData existente.

Scikit learn es una herramienta de aprendizaje automático muy completa para python, Nos ofrece aplicaciones simples y eficientes para la minería y el análisis de datos. Nos ofrece técnicas y algoritmos de clasificación, regresión, agrupación, reducción de variables, selección de modelos (Comparando, validando y eligiendo parámetros y modelos), procesamiento (Extracción de funciones y normalización).