La Bolsa de valores era un mercado donde clásicamente inversores de carne y huesos intercambiaban títulos, estableciéndose unos precios a partir de la oferta y la demanda que existía en cada momento.
Esta visión ha cambiado drásticamente en los últimos años en que la mayoría de las operaciones que se creen a los diferentes mercados del mundo son lanzadas de manera automática por robots que ejecutan algoritmos.
El trading algorísmic es el proceso de usar un programa informático para que genere órdenes de compra o de venta en base a un conjunto de instrucciones o modelos de predicción.
La clave del trading algorísmic es la carencia de intervención humana, puesto que se descarta el impacto de las emociones humanas, en la hora de tomar decisiones.
Las órdenes de compra y venta se pueden lanzar al mercado de manera manual (papel trading) o de manera automática (es el que se denomina trading automatizado).
¿Cómo son estos algoritmos de trading?
Los algoritmos que se utilizan intentan rentabilizar cierto patrón de comportamiento que hemos detectado en base a la información histórica. Por lo tanto el que se busca es tener una ventaja estadística la hora de tomar una decisión para comprar o vender.
Por ejemplo, unos algoritmos se centran a buscar la continuidad de una tendencia alcista o bajista, otros buscan valores que se han alejado mucho de su valoración mediana, algunos buscan los clásicos arbitrajes que se producen en periodos transitorios, mientras que otros buscan divergencias entre pares de valores correlacionados.
Los algoritmos de trading se pueden basar en reglas (tipos cuando pasa cierta condición compra/vende) y/o también se pueden programar mediante algoritmos de Machine Learning (aprendizaje automático).
Ejemplo de algoritmo basado en reglas, en este caso con una media aritmética corta de 15 sesiones y una media aritmética de 150 sesiones. Compraría cuando la media corta cortara de bajo hacia arriba la media larga y vendería al hacer el cruzamiento de arriba hacia bajo.
El diseño de estos algoritmos es una tarea compleja que requiere una combinación adecuada de razonamiento lógico y creatividad. Además, el desarrollo habitualmente comporta una fase dilatada en el tiempo de prueba y error para dar lugar a una estrategia ganadora.
Muchos de estos algoritmos necesitan ser adaptativos y evolucionar durante su vida, porque cuando una estrategia es muy rentable, aparecen otros agentes que intentan replicarla y explotarla y, como consecuencia, puede pasar a ser una estrategia perdedora.
Proceso de creación de un algoritmo de trading intermediando Machine Learning
El proceso de creación de un algoritmo de trading intermediando Machine Learning en líneas generales lo podríamos dividir en los siguientes pasos:
- Definición del enunciado del problema
- Lectura de datos históricos de las cotizaciones de uno o más activos
- Comprobaciones del buen estado de los datos
- Configuración de la variable objetivo
- Feature engineering (Ingeniería de características)
- División de datos en dos conjuntos: pruebas y validación y entrenamiento del modelo
- Backtesting de los resultados y análisis del rendimiento del algoritmo
Por ejemplo, siguiendo la misma numeración de los pasos haríamos:
Queremos saber si tenemos que comprar o vender acciones de la empresa X
Obtendríamos los datos históricos de la empresa X
Comprobaríamos que no hay saltos en las fechas de los datos obtenidos, que no hay duplicados, que no hay máximos o mínimos sin sentido,
Como “variable objetivo”, por ejemplo, podemos definir que queremos saber si las acciones de la empresa X subirán un 5% en los próximos 5 días. Cómo tenemos los datos históricos, por cada una de las jornadas, podemos mirar que ha pasado los 5 días siguientes y marcar la variable objetivo de aquel día con un “Comprar” o “No hacer nada”
Como “features” (características), por ejemplo, puedo usar indicadores técnicos de tendencia como el ADX, uno de tipo oscilador como lo RSI (Índice de fuerza relativa) y uno que me indique la volatilidad o la correlación entre dos medias temporales. Hagamos los cálculos correspondiendo por cada uno de los días para obtener las “features” que nos tienen que servir para predecir nuestra “variable objetivo”
Dividiremos el “DataSet” (conjunto de datos) en dos conjuntos teniendo en cuenta la temporalidad. Por ejemplo, los datos desde el 1 de enero del 2015 al 1 de enero del 2021, y nos guardaremos los datos del segundo periodo, del 2 de enero de 2021 al 31 de enero del 2022 para validar.
Backtesting de los resultados y análisis del rendimiento de los algoritmos
Una vez obtenida el modelo mediante diferentes algoritmos de Machine Learning, haríamos el que se conoce cómo a “Backtesting”, es decir, probaríamos la estrategia obtenida de hacer el modelo en el paso anterior con los datos del último año, de este modo podríamos comprobar si el algoritmo hubiera ganado o perdido y en qué cantidad.
Resultado del valor de la cartera a lo largo del tiempo usando la estrategia de la gráfica anterior. Los tramos planos indican que estamos fuera del mercado.
El hecho de obtener un buen algoritmo de trading por cierto valor o cierto conjunto de valores, no se garantizaba de nada, pero ofrece una ventaja “estadística” en la hora de tomar decisiones.
Si estáis satisfechos con el rendimiento de la estrategia de “Backtesting”, entonces el siguiente paso seria empezar a operar en modo manual (Papel trading). Si no es así, tendríais que ajustar la estrategia hasta obtener un rendimiento aceptables. Y una vez los resultados en modo manual sean satisfactorios, podríais empezar a operar de manera automatizada a través de un broker online.
Figura que muestra el proceso de implementación de una estrategia de trading automático, Extraída del libro (1)
¿Se pueden alquilar estos algoritmos de trading?
A raíz de la explosión en el uso de programas algorísmics para invertir en bolsa ha surgido toda una industria. Mientras las grandes instituciones financieras tienen sus propios departamentos de investigación para desarrollar un software personalizado, los pequeños inversores también se pueden beneficiar de estos modelos gracias a los robots de alquiler.
¿Dónde puedo aprender más?
Podéis consultar el código de ejemplo que genera la estrategia de este artículo al repositorio de , Github
Por la red podéis encontrar un montón de artículos, Moocs y videos , personalmente os recomiendo estos cursos online que a estas alturas su gratuitos:
- Getting Market Data
- Introduction to Machine Learning for Trading
- Python for Machine Learning in Finance
Referencias
- (1) Machine Learning in Trading. Step by step implemantation of Machine Learning Models. Autors: Ishan Shah & Rekhit Pachanekar. A Quantinsti publication
- (2) ¿Deben los ordenadores jugar en la Bolsa?
- (3) El faro Bursatil