En esta pequeña serie de artÃculos vamos a cubrir, de manera liviana, el extenso mundo del trading algorÃtmico. Lo vamos a dividir en dos partes: el Expert Advisor, también conocidos como robot de trading, y los sistemas de High Frequency Trading o HFT (trading de alta frecuencia), los verdaderos sistemas de trading automático.
Antes de entrar en materia, es conveniente tener claros ciertos términos que harán las explicaciones más precisas:
- Algoritmo: conjunto ordenado y finito de operaciones que permite hallar la solución de un problema.
- Lenguaje de programación: lenguaje formal diseñado para describir el conjunto de acciones y procesos consecutivos que una máquina debe seguir. Es el método práctico con el que un humano puede decirle a una máquina qué debe hacer.
- Programa informático: es una secuencia de instrucciones escritas para realizar una tarea especÃfica en una computadora. Es un algoritmo escrito mediante un lenguaje de programación.
- Backtest: proceso de optimización de una estrategia de trading en el pasado. Permite conocer una primera aproximación del posible rendimiento y evaluar si el funcionamiento es el esperado.
- Curve-fitting: problema causado por la sobre-optimización. Ocurre cuando un sistema se ajusta demasiado a un simple periodo de tiempo, arrojando resultados ficticios de rendimiento.
- Walk-forward: proceso para determinar cómo funcionará la estrategia con los parámetros del backtest en un periodo de tiempo por el cual no ha sido optimizado, emulando el funcionamiento en condiciones futuras desconocidas.
Ahora que ya estamos familiarizados con el vocabulario técnico, comenzaremos con el Expert Advisor.
¿Qué es un Expert Advisor?
El Expert Advisor o EA es un programa informático que, en función de unas variables de entrada (normalmente indicadores técnicos), ejecuta órdenes de compra o de venta en el mercado de manera automática.
Dichas órdenes son el resultado de los cálculos llevados a cabo por el algoritmo que rige la estrategia que está programada en el EA en cuestión.
PodrÃamos categorizar los sistemas automáticos en dos tipos:
- Autónomos: el algoritmo funciona sin necesidad de intervención humana alguna; se activa y desactiva de manera automática
- Semiautónomos: son los sistemas que necesitan de intervención humana para ponerse a trabajar. Solamente funcionan cuando la persona que los usa decide activar el sistema.
Es importante conocer también que existen EAs que no se usan para el trading automático tal y como lo hemos definido anteriormente. Estos se usan como asistente al trader artesanal a la hora de gestionar el tamaño de las posiciones, sacar beneficios parciales de manera automática u ocultar las órdenes al mercado, por ejemplo. SerÃa el caso del EA que utilizamos en la operativa de TendenciasFX.
Base de funcionamiento
La base de funcionamiento de los sistemas automáticos consiste en detectar un comportamiento que se ha venido repitiendo en el pasado e intentar explotarlo en el futuro.
Puede ser mediante la combinación de señales de indicadores técnicos clásicos o con indicadores personalizados, que detecten una tendencia e intenten aprovecharla, por ejemplo.
Existen otros EAs que también usan la profundidad de mercado para intentar prever un posible movimiento según el flujo de órdenes que hay en determinado momento.
Proceso de codificación y prueba
El programador transcribe su idea de operativa en un algoritmo mediante un lenguaje de programación, normalmente C++, Visual Basic, MQL4 o Java (según la plataforma). Luego, realiza un backtest de la estrategia para ver qué resultados hubiera dado en un periodo de tiempo determinado y para comprobar si funciona correctamente, pudiendo realizar los ajustes necesarios, sin llegar a tener el problema de curve-fitting.
Con los parámetros del backtest ajustados, se inicia el test llamado walk-forward, que muestra el comportamiento real del sistema en un rango de fechas para el cual no ha sido optimizado. Con esto se consigue emular el funcionamiento futuro, en un entorno de incertidumbre con validez estadÃstica.
A continuación, ya conociendo los datos de optimización y si los resultados del test walk-forward son los esperados, se pondrÃa al EA a trabajar en una cuenta real.
Plataformas
Los sistemas de trading automático se pueden usar en la mayorÃa de las plataformas, aunque las hay que están especialmente diseñadas para ello. Hay que tener en cuenta que cada plataforma puede necesitar de un lenguaje de programación distinto e incluso, en algunos casos, un lenguaje propio.
Si quieres usar uno, ten en cuenta que aunque tu plataforma te lo permita, hay brókers que no aceptan órdenes automáticas.
¿Por qué se han hecho tan populares los Expert Advisor?
La creciente fama de los EAs comerciales sale de aprovecharse de la ignorancia del público y de su avaricia, con la falacia de convertirse en millonario mientras están sentados en su sofá.
No digo que algunos EAs no funcionen, simplemente que no es oro todo lo que reluce, y hay que abordar el tema con cautela y conocimiento.
Además, el gestor del robot (que no trader), no tiene responsabilidad alguna, ya que las decisiones las toma el algoritmo, no él.
Entonces, ¿cuál es su principal problema?
Que lo único constante en el mercado es el cambio y, en consecuencia, los sistemas mecánicos acaban fallando.
Intentar parametrizar el comportamiento del mercado esperando encontrar un comportamiento que se repita de manera idéntica una y otra vez es algo exagerado e iluso, según mi opinión. La propia naturaleza del mercado lo hace inviable.
Sino, ¿por qué los equipos de programadores de los algoritmos que son realmente efectivos se toman tantas molestias en crear modelos matemáticos y predictivos basados en la psicologÃa de las masas? O incluso mejor, ¿por qué se invierte tantÃsimo dinero en velocidad y localización, y no en hacer backtests de mil y una estrategias distintas?
La respuesta: los sistemas automáticos que realmente ganan dinero (mucho, mucho dinero) y son sostenibles en el tiempo no se basan en comportamientos repetitivos de formaciones chartistas o combinaciones de indicadores, sino en otras técnicas que trataremos en el siguiente artÃculo de esta serie.
Como punto final, si un trader conoce el lenguaje del precio, no va a necesitar utilizar éste tipo de herramientas para poder rentabilizar su conocimiento.
Mi consejo: si te gusta la programación (como a mÃ), puedes crear y utilizar algún algoritmo como hobby; pero si realmente quieres vivir del trading, invierte en ti y aprende el lenguaje. Eso no tiene precio.
Si, de todos modos, quieres profundizar más y estudiar este campo de una manera más profesional, te recomiendo que empieces por este libro.
Gracias por tu lectura. Un saludo,