Actualidad Análisis Técnico Educación Financiera

Un acercamiento al trading algorítmico

En esta nota queremos acercarte algunos conceptos para familiarizarte un poco más a la idea que subyace detrás del “trading algorítmico”, en tiempos donde la  tecnología tiene un lugar protagónico en la vida de las personas, las finanzas es un campo más de aplicación para explotar al máximo las ventajas que ésta nos ofrece.

Como bien sabemos, el trading es la acción de comprar y vender activos que cotizan en el mercado de capitales con la principal intención de obtener una ganancia económica a un riesgo determinado. Detrás de esta decisión, en general hay un criterio por el cuál quienes invierten, eligen arriesgar su capital en determinado activo (acciones, futuros, opciones, criptomonedas, etc), esperando que el valor de cotización aumente (long) o disminuya (short) para obtener las ganancias correspondientes.

A grandes rasgos y para simplificar el ejemplo, las corrientes de análisis para invertir en el mercado de renta variable (acciones) se dividen en dos, el análisis técnico y el análisis fundamental.  En el primero de ellos, la decisión para invertir en un activo está fundamentada en el análisis histórico del precio y las diferentes variables asociadas, como pueden ser,  precios máximos, mínimos, volumen de operaciones, tendencias, volatilidades, promedios, etc. Por otro lado el análisis fundamental, estudia el valor de la empresa desde una perspectiva del valor de la compañía, analizando el precio de valor de libro, así también como por ejemplo el nivel de endeudamiento o retorno sobre inversión. Sobre estas dos corrientes ampliaremos próximamente en otra nota.

Partiendo de una operatoria tradicional de la compra-venta de un activo, el análisis y selección de un instrumento financiero sería el primer paso, continuando por ingresar al sitio web o app del broker para enviar la orden de operación definiendo precio, cantidad y en algunos casos Stop loss y take profit. Una forma de definir el trading algorítmico es como la automatización de todos estos pasos descriptos sin la intervención de la emocionalidad humana al momento de operar, con la finalidad de maximizar ganancias y reducir pérdidas. Gracias a los avances de herramientas tecnológicas que han facilitado la consulta de datos de mercados en tiempo real a través de diferentes plataformas, hoy en día es posible construir este tipo de “programas” más conocido como bots.

Lenguaje de programación

Lo primero que tenemos que conocer es que existen diferentes lenguajes de programación a través de los cuales se escriben las ordenes y algoritmos que permitirán arrojar un resultado específico. Tal como se visualiza en el siguiente gráfico, python es un lenguaje de alto nivel que hace unos años ha comenzado a volverse popular entre desarrolladores y data scientist debido a su sintaxis y la flexibilidad que brinda a la hora de generar código.

Fuente: https://towardsdatascience.com/

Sus principales ventajas a la hora de desarrollar modelos de machine learning se desprenden por ser un código sencillo, consistente, de fácil implementación, a la vez que existen paquetes o librerías que agilizan y facilitan la manipulación de distintas fuentes de datos permitiendo crear dataframes con las variables necesarias para construir modelos de distinta complejidad. Entre las principales librerías se encuentran

α. Pandas ⇒ Facilita el análisis de datos en distintas estructuras.

β. Numpy ⇒ Significa Numerical Python, permite el armado de matrices multidimensionales y vectores para el uso de estadísticas aplicadas.

γ. Quandl ⇒ Proporciona bases de datos de índole financiera de diferentes fuentes.

δ. Statsmodels ⇒ Es una librería utilizada para el análisis estadístico, financieros y econométricos.

ε. Matplotlib ⇒ Es una librería de generación de gráficos que se caracteriza por su amplia versatilidad al momento de customizarlos.

Algunos ejemplos gráficos

https://matplotlib.org/gallery/index.html

Entorno de desarrollo integrado y API

Una vez seleccionado el lenguaje de programación es necesario un intérprete sobre el cual escribir el código para luego ejecutarlo. Integrated Development Environment o entorno de desarrollo integrado, más conocido por sus siglas IDE, es una aplicación que permite el desarrollo de un software, en este caso un programa que ejecute las órdenes de compra venta de activos en función de ciertos criterios. Entre los seis IDEs más recomendados para realizar machine learning en python se encuentran:

  • Spyder
  • PyCharm
  • Thonny
  • Atom
  • Jupyter Notebook
  • Visual Studio Code

La recomendación sobre cuál utilizar como siempre depende del usuario, en Mercados Salvajes nos familiarizamos principalmente con Jupyter Notebook y Spyder. Ahora bien, nos resta introducir un último concepto y es el de Application Programming Interface o API, esta interfaz permite conectar dos servicios o aplicaciones entre sí, para nuestro caso, conectará el IDE a algún servicio que brinde información de mercado y así comenzar a importar los datos necesarios para trabajar en el algoritmo.


En este apartado nos queremos tomar el espacio para reconocer y recomendar a Juan Pablo Pisano (@JohnGalt_is_www en su cuenta de Twitter), ingeniero, matemático, que actualmente es un referente en materia de finanzas QUANT, pero sobre todo un activista a la hora de difundir y fomentar solidariamente la educación financiera y compartir sus valiosos conocimientos al respecto. 


En su experiencia Juan Pablo nos recomienda como mejores APIS financieras gratuitas para probar y testear ideas, la siguiente lista de las cuales las últimas dos son locales:

https://iexcloud.io/
https://www.alphavantage.co/
https://alpaca.markets/
https://fmpcloud.io/
https://marketstack.com/
https://finnhub.io/
https://api.invertironline.com/Help
https://apihub.primary.com.ar/

Algoritmos

El mundo de la ciencia de datos, nos abre infinitas posibilidades a la hora de aplicar cierta inteligencia a un proceso de esta índole, brindándonos tecnologías open source que están en permanente mantenimiento y actualización con el único fin de ir mejorando sus versiones anteriores a la vez que suman soluciones complementarias.

Dentro de un Bot de trading algorítmico se pueden encontrar desde las más simples aplicaciones de reglas, hasta modelos matemáticos estadísticos de alta complejidad. Dentro del primer grupo podemos encontrar lo relacionado al nivel de precios de un activo en función de su media móvil por ejemplo, si está por encima de la media móvil de 20 la orden podría ser comprar, y si está por debajo, vender. Las librerías permiten construir o importar indicadores relacionados con el RSI, MACD, Fibonacci, con lo cual, buscar replicar un criterio de análisis técnico basado  en estos indicadores puede ser simple para el bot.

Aumentando un poco la complejidad, existen algoritmos basados en series de tiempos, regresiones o modelos econométricos, destinados a estimar el precio del activo a un determinado momento, así como también modelos que buscan correlacionar acciones, mercados, indices etc. Algunas metodologías estadísticas de estimación aplican regresiones lineales, simulaciones de monte carlo, support vector machines (SVM), Black and sholes, dependiendo la volatilidad del mercado varía la recomendación a la hora de aplicar un grupo u otro. Otra modalidad de análisis relacionado  a big data en materia de mercados y noticias, tiene que ver con modelos no supervisados que navegan en portales de noticias de economía y finanzas dictaminando, en función del contenido y análisis de las palabras que contiene la nota, si ésta afectará de manera positiva o negativa el precio de una acción.

1- Cómo importar los datos de una acción y graficarlos

2- Dolar Mep usando Bonar 24

3- Consultar activos en cartera a través de la API de Invertir Online

 

Esperamos les haya sido de gran utilidad y esperamos sus comentarios!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Back To Top
+