¿Qué es el tranding algorítmico?


¿Qué es un algoritmo?:

Un algoritmo es un conjunto de reglas que están destinadas a resolver un problema de una manera predefinida. Esta sencilla y breve definición puede sonar abstracta, vamos a poner un ejemplo clarificador.

Imaginemos que nos enfrentamos al “problema” de tomar decisiones cuando estamos haciendo trading, así que decidimos diseñar el típico sistema basado en una media móvil para que tome las decisiones de manera automática según las reglas que nosotros hemos definido, nuestro algoritmo se escribiría de la siguiente manera:

Si el precio cruza la MM20* de abajo arriba

Si el precio cruza la MM20* de arriba a abajo

*MM20= Media Móvil 20

Técnicamente, esto es un algoritmo sencillo, pero nos resuelve el problema de la toma de decisiones y la ejecución automática de órdenes.

Nuestro ejemplo es básico y sencillo, pero un algoritmo puede ser todo lo complejo que deseemos, y tener cientos de miles de páginas de código, pensemos que algunos sistemas de trading están diseñados y programados basándose en técnicas de inteligencia artificial, selección natural y otras técnicas sofisticadas. 

Para desarrollarlos algunas instituciones cuentan con equipos de programadores, físicos y matemáticos trabajando en ellos de manera exclusiva, lo cual nos da una idea del tamaño y complejidad que un sistema puede llegar a tener. 

Tras conocer brevemente lo que es un algoritmo, pasemos a ver cuáles son las fases y como se diseña un sistema de trading algorítmico: 


Fase 1 – Diseño del sistema:



En esta fase definiremos qué funciones realizará nuestro sistema, que información necesitamos, que salida generará, y todos los detalles operativos que debemos tener en cuenta. Siguiendo con el ejemplo del sistema basado en la media móvil, en esta fase realizaríamos lo siguiente:

Nombre del sistema: MM20 v0.1
Función: Tomar decisiones de inversión de manera automática
Idea / hipótesis de inversión que se implementará: Cruce entre precio y media móvil de 20 periodos.
Activos: el sistema solo trabajara con las mayores.
Timeframes (Marcos de tiempo): 15M, 1H, 4H
Horarios: Sesión Europea.
Operaremos Noticias: No
Operaremos Aperturas: No.
Plataforma: Metatrader4.

Una vez definido los aspectos más importantes de nuestro sistema, el siguiente paso será escribir nuestro algoritmo en pseudocódigo o mediante un diagrama de flujo, o cualquier otra forma que plasme nuestra idea, las condiciones mediante las que el sistema toma las decisiones y las diferentes decisiones. 


Fase 2 – El algoritmo:



Esta es una de las fases más importantes, pensemos que, en la industria de la informática, los analistas y diseñadores de sistemas están siempre por encima de los programadores, y que a nivel general en la industria se utiliza el esquema 80/20, ese esquema significa 80% del tiempo y los recursos destinados a diseñar y definir el sistema, 20% del tiempo dedicado a implementarlo y codificarlo.

Esto se realiza simplemente porque está demostrado que todo el tiempo que ganemos en un buen diseño, teniendo todas las alternativas previstas y buscando la manera más eficiente de que nuestro sistema realice la función para la que fue diseñado, es tiempo que vamos a ahorrar en la fase posterior.

La idea con la que debemos trabajar en esta fase, es la de dejar el algoritmo escrito de la manera más concreta posible y teniendo en cuenta todos los detalles, de esta manera la fase de implementación se convertirá en una fase casi mecánica.


Fase 3 – Implementación:



El siguiente paso es implementar dicho algoritmo, la implementación no es otra cosa que la codificación del algoritmo en algún lenguaje de programación, ese lenguaje dependerá en gran medida de la plataforma donde se ejecutará nuestro sistema.

Nosotros vamos a utilizar la plataforma Metatrader y su lenguaje de programación MQL4, ya que es una plataforma a la que se puede acceder fácilmente y el lenguaje MQL4 está basado en el popular lenguaje de programación C++.


Fase 4 – Backtesting:



Esta fase es esencial, su misión es probar nuestro sistema, comprobar su rendimiento, y afinar algunos parámetros.
Tendremos un primer resultado para ver lo eficiente y rentable que es nuestro sistema, y conoceremos en qué condiciones de mercado se comporta mejor.

Descubriremos otro dato muy importante, el máximo drawdown, o la máxima perdida que puede generar el sistema, lo cual será vital a la hora de decidir el tamaño de la cuenta y el margen que el sistema debe tener para no acabar recibiendo un margin call.

Al igual que en la fase de codificación, esta fase dependerá en gran medida de la plataforma sobre la que trabajemos. Una vez que los resultados en esta fase sean óptimos, y conozcamos los datos clave de nuestro sistema, pasaremos a probarlo en un entorno real.

Al igual que pasa con las cuentas demo y los traders, los resultados reales de un sistema pueden diferir de los resultados conseguidos realizando backtesting u operando cuentas demo, y es que las condiciones futuras del mercado reales pueden ser totalmente diferentes a las que hubo en el pasado.

Para curarnos en salud se recomienda recortar aplicar un factor de corrección de un 30% a los datos obtenidos. 


Fase 5 – Producción:



Para quien no lo conozca, dentro del mundo de los sistemas, se suelen utilizar dos tipos de entornos, el de desarrollo y el de producción, este último es por así decirlo el entorno “real”, y en nuestro caso lo que marcara la diferencia entre entorno de desarrollo y entorno de producción será el tipo de cuenta, demo o real.

Las consideraciones que debemos tener en esta fase, son técnicas, en el caso de que nuestro sistema sea de scalping o de alta frecuencia, la velocidad con la que se reciben los datos y se ejecutan las órdenes es clave, en este caso sería aconsejable contratar un servidor con una latencia baja.

Por otro lado, nos garantizamos que nuestro sistema va a estar funcionando 24h, en caso contrario necesitaríamos un equipo destinado a este fin, con algún sistema y plan de continuidad.


Conclusiones: Hemos visto brevemente y de forma sencilla en qué consiste el trading algorítmico, hemos descrito las fases para diseñar e implementar nuestro propio sistema, y por último hemos introducido algunos conceptos claves.




Comentarios

Entradas populares

Velas Elefante

Denunciar a un Broker

Niveles Murrey Math

Ventajas y desventajas de ser trader