¿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
Publicar un comentario