{"id":12961,"date":"2022-02-17T12:34:23","date_gmt":"2022-02-17T11:34:23","guid":{"rendered":"https:\/\/inlab.fib.upc.edu\/uncategorized-ca\/que-es-el-trading-algoritmico\/2022\/"},"modified":"2023-10-19T12:21:44","modified_gmt":"2023-10-19T10:21:44","slug":"que-es-el-trading-algoritmico","status":"publish","type":"post","link":"https:\/\/inlab.fib.upc.edu\/es\/articulos\/que-es-el-trading-algoritmico","title":{"rendered":"\u00bfQu\u00e9 es el trading algor\u00edtmico?"},"content":{"rendered":"<p class=\"rtejustify\">La Bolsa de valores era un mercado donde cl\u00e1sicamente inversores de carne y huesos intercambiaban t\u00edtulos, estableci\u00e9ndose unos precios a partir de la oferta y la demanda que exist\u00eda en cada momento.<\/p>\n<p class=\"rtejustify\">Esta visi\u00f3n ha cambiado dr\u00e1sticamente en los \u00faltimos a\u00f1os en que la mayor\u00eda de las operaciones que se creen a los diferentes mercados del mundo son lanzadas de manera autom\u00e1tica por robots que ejecutan algoritmos.<\/p>\n<p class=\"rtejustify\">El trading algor\u00edsmic es el proceso de usar un programa inform\u00e1tico para que genere \u00f3rdenes de compra o de venta en base a un conjunto de instrucciones o modelos de predicci\u00f3n.<\/p>\n<p class=\"rtejustify\">La clave del trading algor\u00edsmic es la carencia de intervenci\u00f3n humana, puesto que se descarta el impacto de las emociones humanas, en la hora de tomar decisiones.<\/p>\n<p class=\"rtejustify\">Las \u00f3rdenes de compra y venta se pueden lanzar al mercado de manera manual (papel trading) o de manera autom\u00e1tica (es el que se denomina trading automatizado).<\/p>\n<h2>&nbsp;<\/h2>\n<h2><strong>\u00bfC\u00f3mo son estos algoritmos de trading?<\/strong><\/h2>\n<p class=\"rtejustify\">Los algoritmos que se utilizan intentan rentabilizar cierto patr\u00f3n de comportamiento que hemos detectado en base a la informaci\u00f3n hist\u00f3rica. Por lo tanto el que se busca es tener <strong>una ventaja estad\u00edstica<\/strong>&nbsp; la hora de tomar una decisi\u00f3n para comprar o vender.<\/p>\n<p class=\"rtejustify\">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\u00f3n mediana, algunos buscan los cl\u00e1sicos arbitrajes que se producen en periodos transitorios, mientras que otros buscan divergencias entre pares de valores correlacionados.<\/p>\n<p class=\"rtejustify\"><span style=\"text-align: justify;\">Los algoritmos de trading se pueden basar en&nbsp;<\/span> <strong style=\"text-align: justify;\">reglas<\/strong> <span style=\"text-align: justify;\">&nbsp;(tipos cuando pasa cierta condici\u00f3n compra\/vende) y\/o tambi\u00e9n se pueden programar mediante algoritmos de&nbsp;<\/span> <strong style=\"text-align: justify;\">Machine Learning&nbsp;<\/strong> <span style=\"text-align: justify;\">(aprendizaje autom\u00e1tico).<\/span><\/p>\n<p class=\"rtejustify\">&nbsp;<\/p>\n<p class=\"rtecenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\" size-full wp-image-12951\" alt=\"Ejemplo de algoritmo basado en reglas, en este caso con una media aritm\u00e9tica corta de 15 sesiones y una media aritm\u00e9tica de 150 sesiones. Comprar\u00eda cuando la media corta cortas de bajo hacia arriba la media larga y vender\u00eda al hacer el cruzamiento de arriba hacia bajo.\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2022\/02\/borsa.png\" style=\"width: 1200px; height: 401px;\" width=\"879\" height=\"294\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2022\/02\/borsa.png 879w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2022\/02\/borsa-300x100.png 300w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2022\/02\/borsa-768x257.png 768w\" sizes=\"(max-width: 879px) 100vw, 879px\" \/><\/p>\n<p class=\"rtecenter\"><em>Ejemplo de algoritmo basado en reglas, en este caso con una media aritm\u00e9tica corta de 15 sesiones y una media aritm\u00e9tica de 150 sesiones. Comprar\u00eda cuando la media corta cortara de bajo hacia arriba la media larga y vender\u00eda al hacer el cruzamiento de arriba hacia bajo.<\/em><\/p>\n<p class=\"rtejustify\">&nbsp;<\/p>\n<p class=\"rtejustify\">El dise\u00f1o de estos algoritmos es una tarea compleja que requiere una combinaci\u00f3n adecuada de razonamiento l\u00f3gico y creatividad. Adem\u00e1s, el desarrollo habitualmente comporta una fase dilatada en el tiempo de prueba y error para dar lugar a una estrategia ganadora.<\/p>\n<p class=\"rtejustify\">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.<\/p>\n<h2>&nbsp;<\/h2>\n<h2><strong>Proceso de creaci\u00f3n de un algoritmo de trading intermediando Machine Learning<\/strong><\/h2>\n<p class=\"rtejustify\">El proceso de creaci\u00f3n de un algoritmo de trading intermediando Machine Learning en l\u00edneas generales lo podr\u00edamos dividir en los siguientes pasos:<\/p>\n<ol>\n<li class=\"rtejustify\">Definici\u00f3n del enunciado del problema<\/li>\n<li class=\"rtejustify\">Lectura de datos hist\u00f3ricos de las cotizaciones de uno o m\u00e1s activos<\/li>\n<li class=\"rtejustify\">Comprobaciones del buen estado de los datos<\/li>\n<li class=\"rtejustify\">Configuraci\u00f3n de la variable objetivo<\/li>\n<li class=\"rtejustify\">Feature engineering (Ingenier\u00eda de caracter\u00edsticas)<\/li>\n<li class=\"rtejustify\">Divisi\u00f3n de datos en dos conjuntos: pruebas y validaci\u00f3n y entrenamiento del modelo<\/li>\n<li class=\"rtejustify\">Backtesting de los resultados y an\u00e1lisis del rendimiento del algoritmo<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>Por ejemplo, siguiendo la misma numeraci\u00f3n de los pasos har\u00edamos:<\/p>\n<ol>\n<li>\n<p class=\"rtejustify\">Queremos saber si tenemos que comprar o vender acciones de la empresa X<\/p>\n<\/li>\n<li>\n<p class=\"rtejustify\">Obtendr\u00edamos los datos hist\u00f3ricos de la empresa X<\/p>\n<\/li>\n<li>\n<p class=\"rtejustify\">Comprobar\u00edamos que no hay saltos en las fechas de los datos obtenidos, que no hay duplicados, que no hay m\u00e1ximos o m\u00ednimos sin sentido,<\/p>\n<\/li>\n<li>\n<p class=\"rtejustify\">Como \u201cvariable objetivo\u201d, por ejemplo, podemos definir que queremos saber si las acciones de la empresa X subir\u00e1n un 5% en los pr\u00f3ximos 5 d\u00edas. C\u00f3mo tenemos los datos hist\u00f3ricos, por cada una de las jornadas, podemos mirar que ha pasado los 5 d\u00edas siguientes y marcar la variable objetivo de aquel d\u00eda con un \u201cComprar\u201d o \u201cNo hacer nada\u201d<\/p>\n<\/li>\n<li>\n<p class=\"rtejustify\">Como \u201cfeatures\u201d (caracter\u00edsticas), por ejemplo, puedo usar indicadores t\u00e9cnicos de tendencia como el ADX,&nbsp; uno de tipo oscilador como lo&nbsp; RSI (\u00cdndice de fuerza relativa) y&nbsp; uno que me indique la volatilidad o la correlaci\u00f3n entre dos&nbsp; medias temporales. Hagamos los c\u00e1lculos correspondiendo por cada uno de los d\u00edas para obtener las \u201cfeatures\u201d que nos tienen que servir para predecir nuestra \u201cvariable objetivo\u201d<\/p>\n<\/li>\n<li>\n<p class=\"rtejustify\">Dividiremos el \u201cDataSet\u201d (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,&nbsp; y nos guardaremos los datos del segundo periodo, del 2 de enero de 2021 al 31 de enero del 2022 para validar.<\/p>\n<\/li>\n<li>\n<p class=\"rtejustify\">Backtesting de los resultados y an\u00e1lisis del rendimiento de los algoritmos<\/p>\n<\/li>\n<\/ol>\n<p class=\"rtejustify\">Una vez obtenida el modelo mediante diferentes algoritmos de Machine Learning, har\u00edamos el que se conoce c\u00f3mo&nbsp; a \u201cBacktesting\u201d, es decir, probar\u00edamos la estrategia obtenida de hacer el modelo en el paso anterior con los datos del \u00faltimo a\u00f1o, de este modo podr\u00edamos comprobar si el algoritmo hubiera ganado o perdido y en qu\u00e9 cantidad.<\/p>\n<p class=\"rtejustify\">&nbsp;<\/p>\n<p class=\"rtecenter\"><img decoding=\"async\" class=\" size-full wp-image-12954\" alt=\"\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2022\/02\/borsa-2.png\" style=\"width: 1200px; height: 527px;\" width=\"935\" height=\"411\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2022\/02\/borsa-2.png 935w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2022\/02\/borsa-2-300x132.png 300w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2022\/02\/borsa-2-768x338.png 768w\" sizes=\"(max-width: 935px) 100vw, 935px\" \/><\/p>\n<p class=\"rtecenter\"><em>Resultado del valor de la cartera a lo largo del tiempo usando la estrategia de la gr\u00e1fica anterior. Los tramos planos indican que estamos fuera del mercado.<\/em><\/p>\n<p class=\"rtejustify\">&nbsp;<\/p>\n<p class=\"rtejustify\">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 \u201cestad\u00edstica\u201d en la hora de tomar decisiones.&nbsp;<\/p>\n<p class=\"rtejustify\">Si est\u00e1is satisfechos con el rendimiento de la estrategia de \u201cBacktesting\u201d, entonces el siguiente paso seria empezar a operar en modo manual (Papel trading). Si no es as\u00ed, tendr\u00edais que ajustar la estrategia hasta obtener un rendimiento aceptables. Y una vez los resultados en modo manual sean satisfactorios, podr\u00edais empezar a operar de manera automatizada a trav\u00e9s de un broker online.<\/p>\n<p class=\"rtecenter\"><img decoding=\"async\" class=\" size-full wp-image-12957\" alt=\"\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2022\/02\/borsa-3.png\" style=\"width: 800px; height: 214px;\" width=\"427\" height=\"114\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2022\/02\/borsa-3.png 427w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2022\/02\/borsa-3-300x80.png 300w\" sizes=\"(max-width: 427px) 100vw, 427px\" \/><\/p>\n<p class=\"rtecenter\"><em>Figura&nbsp; que muestra el proceso de implementaci\u00f3n de una estrategia de trading autom\u00e1tico,<\/em> <em style=\"text-align: center;\">Extra\u00edda del libro (1)<\/em><\/p>\n<h2>&nbsp;<\/h2>\n<h2><strong>\u00bfSe pueden alquilar estos algoritmos de trading?<\/strong><\/h2>\n<p class=\"rtejustify\">A ra\u00edz de la explosi\u00f3n en el uso de programas algor\u00edsmics para invertir en bolsa ha surgido toda una industria. Mientras las grandes instituciones financieras tienen sus propios departamentos de investigaci\u00f3n para desarrollar un software personalizado, los peque\u00f1os inversores tambi\u00e9n se pueden beneficiar de estos modelos gracias a los robots de alquiler.<\/p>\n<h2>&nbsp;<\/h2>\n<h2><strong>\u00bfD\u00f3nde puedo aprender m\u00e1s?<\/strong><\/h2>\n<p>Pod\u00e9is consultar el c\u00f3digo de ejemplo que genera la estrategia de este art\u00edculo al <a href=\"https:\/\/github.com\/aobiols\/Blog-inLab\/tree\/main\/AlgoTrading\" target=\"_blank\" rel=\"noopener\">repositorio de&nbsp;, Github<\/a><\/p>\n<p>Por la red pod\u00e9is encontrar un mont\u00f3n de art\u00edculos, Moocs y videos&nbsp;, personalmente os recomiendo estos cursos online que a estas alturas su gratuitos:<\/p>\n<ul>\n<li><a href=\"https:\/\/quantra.quantinsti.com\/course\/getting-market-data\" target=\"_blank\" rel=\"noopener\">Getting Market Data<\/a><\/li>\n<li><a href=\"https:\/\/quantra.quantinsti.com\/course\/introduction-to-machine-learning-for-trading\" target=\"_blank\" rel=\"noopener\">Introduction to Machine Learning for Trading<\/a><\/li>\n<li><a href=\"https:\/\/quantra.quantinsti.com\/course\/python-machine-learning\" target=\"_blank\" rel=\"noopener\">Python for Machine Learning in Finance<\/a><\/li>\n<\/ul>\n<h2>&nbsp;<\/h2>\n<h2><strong>Referencias<\/strong><\/h2>\n<ul>\n<li>(1)<a href=\"https:\/\/www.quantinsti.com\/machine-learning-trading-book\" target=\"_blank\" rel=\"noopener\"> Machine Learning in Trading. Step by step implemantation of Machine Learning Models. Autors: Ishan Shah &amp; Rekhit Pachanekar.&nbsp; A Quantinsti publication<\/a><\/li>\n<li>(2)<a href=\"http:\/\/https:\/\/elpais.com\/tecnologia\/2018\/05\/17\/actualidad\/1526545095_259951.html\" target=\"_blank\" rel=\"noopener\"> \u00bfDeben los ordenadores jugar en la Bolsa?<\/a><\/li>\n<li>(3)<a href=\"http:\/\/https:\/\/www.farobursatil.com\/trading-algoritimico-todo-lo-que-debes-saber\/\" target=\"_blank\" rel=\"noopener\"> El faro Bursatil<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La Bolsa de valores era un mercado donde cl\u00e1sicamente inversores de carne y huesos intercambiaban t\u00edtulos, estableci\u00e9ndose unos precios a partir de la oferta y la demanda que exist\u00eda en cada momento. Esta visi\u00f3n ha cambiado dr\u00e1sticamente en los \u00faltimos a\u00f1os en que la mayor\u00eda de las operaciones que se creen a los diferentes mercados [&hellip;]<\/p>\n","protected":false},"author":594,"featured_media":12948,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[496],"tags":[],"experteses":[],"class_list":["post-12961","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articulos"],"acf":[],"_links":{"self":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/12961","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/users\/594"}],"replies":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/comments?post=12961"}],"version-history":[{"count":2,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/12961\/revisions"}],"predecessor-version":[{"id":26311,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/12961\/revisions\/26311"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media\/12948"}],"wp:attachment":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media?parent=12961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/categories?post=12961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/tags?post=12961"},{"taxonomy":"experteses","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/experteses?post=12961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}