¿Qué es el trading algorítmico?

Trading algorismic

Miércoles 23 Febrero 2022

Autores: 

La Bolsa de valores era un mercado donde clásicamente inversores de carne y hueso 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 los que la mayoría de las operaciones que se cruzan en los diferentes mercados del mundo son lanzadas de manera automática por robots que ejecutan algoritmos.

El trading algorítmico es el proceso de utilizar 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ítmico es la falta de intervención humana, ya que se descarta el impacto de las emociones humanas, a 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 lo que se llama trading automatizado).

 

¿Cómo son estos algoritmos de trading?

Los algoritmos que se utilizan intentan rentabilizar un cierto patrón de comportamiento que hemos detectado en base a la información histórica. Por tanto lo que se busca es tener una ventaja estadística a la hora de tomar una decisión para comprar o vender.

Por ejemplo, unos algoritmos se centran en buscar la continuidad de una tendencia alcista o bajista, otros buscan valores que se han alejado mucho de su valoración media, algunos buscan los clásicos arbitrajes que se producen en períodos transitorios, mientras que otros buscan divergencias entre pares de valores correlacionados.

Los algoritmos de trading se pueden basar en reglas (tipo cuando ocurre cierta condición compra/venta) y/o también se pueden programar mediante algoritmos de Machine Learning (aprendizaje automático).

 

Exemple d’algorisme basat en regles, en aquest cas amb una mitjana aritmètica curta de 15 sessions i una mitjana aritmètica de 150 sessions. Compraria quan la mitjana curta talles de baix cap a dalt la mitjana llarga i vendria al fer el creuament de dalt cap a baix..

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 abajo hacia arriba la media larga y vendería al hacer el cruce de arriba hacia abajo.

 

El diseño de estos algoritmos es una tarea compleja que requiere una adecuada combinación de razonamiento lógico y creatividad. Además, el desarrollo conlleva habitualmente 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, en consecuencia, puede pasar a ser una estrategia perdedora.

 

Proceso de creación de un algoritmo de trading mediante Machine Learning

El proceso de creación de un algoritmo de trading mediante Machine Learning en líneas generales podríamos dividirlo en los siguientes pasos:

  1. Definición del enunciado del problema

  2. Lectura de datos históricos de las cotizaciones de uno o más activos

  3. Comprobaciones del buen estado de los datos

  4. Configuración de la variable objetivo

  5. Feature engineering (Ingeniería de características)

  6. División de datos en dos conjuntos: pruebas y validación y entrenamiento del modelo

  7. Backtesting de los resultados y análisis del rendimiento del algoritmo

 

Por ejemplo, siguiendo la misma numeración de los pasos haríamos:

  1. Queremos saber si debemos comprar o vender acciones de la empresa X

  2. Obtendríamos los datos históricos de la empresa X

  3. 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

  4. 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. Como 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 ese día con un “Comprar” o “No hacer nada”

  5. Como “features” (características), por ejemplo, puedo utilizar indicadores técnicos de tendencia como el ADX, uno tipo oscilador como el RSI (Índice de fuerza relativa) y uno que me indique la volatilidad o la correlación entre dos medias temporales. Hacemos los cálculos correspondientes para cada uno de los días para obtener las “features” que nos deben servir para predecir nuestra “variable objetivo”

  6. Dividiremos el “DataSet” (conjunto de datos) en dos conjuntos teniendo en cuenta la temporalidad. Por ejemplo, los datos desde el 1 de enero de 2015 al 1 de enero de 2021, y nos guardaremos los datos del segundo período, del 2 de enero de 2021 al 31 de enero de 2022 para validar.

  7. Backtesting de los resultados y análisis del rendimiento del algoritmo

Una vez obtenido el modelo mediante diferentes algoritmos de Machine Learning, haríamos lo que se conoce como “Backtesting”, es decir, probaríamos la estrategia obtenida de realizar el modelo en el paso anterior con los datos del último año, de esta 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 utilizando 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 un cierto valor o un cierto conjunto de valores, no es garantia de nada, pero ofrece una ventaja “estadística” a la hora de tomar decisiones.

Si está satisfecho con el rendimiento de la estrategia de “Backtesting”, entonces el siguiente paso sería empezar a operar en modo manual (Paper trading). Si no es así, debería ajustar la estrategia hasta obtener un rendimiento aceptable. Y una vez que los resultados en modo manual sean satisfactorios, podría empezar a operar de forma 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ítmicos 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 pueden beneficiarse 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 las gráficas de este artículo en el repositorio de Github

 

Por la red podéis encontrar un montón de artículos, Moocs y vídeos, personalmente os recomiendo estos cursos online que a estas alturas son gratuitos:

 

Referencias

 

Segueix-nos a

Els nostres articles del bloc d'inLab FIB

         
         

inLab FIB incorpora esCert

Icona ESCERT

First LogoCSIRT Logo

inLab es miembro de

inLab és centre TECNIO

ACCIO