TA-Lib, una Librería para Análisis Técnico al alcance de todos – parte 2

ejemplos para el cálculo de indicadores como medias móviles, Bandas Bollinger, MACD, RSI, entre otros y finalmente el reconocimiento de patrones de velas
Tiempo de lectura: 5 minutos
Tabla de contenidos

En la primera entrega vimos una breve descripción de la librería TA-Lib, su proceso de instalación y una descripción categórica de las funciones con las que cuenta esta librería, a continuación veremos unos breves ejemplos para el cálculo de indicadores como medias móviles, Bandas Bollinger, MACD, RSI, entre otros y finalmente el reconocimiento de patrones de velas, ¿Qué tan fiable será el reconocimiento de patrones de velas? Bueno esto lo veremos al final del artículo.

Indicadores Técnicos utilizando TA-Lib

Primero importaremos la librería Ta-Lib ya que la estamos utilizando para obtener diferentes indicadores. Junto con eso, usamos el matplotlib para dibujar los gráficos para el análisis. Como vamos a trabajar en los precios de las acciones, importaremos los datos de Yahoo Finance.

Por lo tanto, el código será el siguiente:

En el ejemplo, hemos importado los datos del precio de las acciones de Intel(Ticker INTC) para el último periodo de 1 año en timeframe diario. Comencemos con algo simple, encontraremos la media móvil simple, la media móvil exponencial y la media móvil ponderada de los datos de acciones de Intel. Utilizaremos el siguiente código:

El resultado es el siguiente:

Ahora presentaremos, un ejemplo calculando las Bandas de Bollinger con el siguiente código:

Para crear las bandas de Bollinger, simplemente pasamos el precio de cierre, es decir, la columna “Close” y definimos un período de tiempo de 20 para la media móvil. Esto se hace utilizando la función “ta.BBANDS ()”. Como las bandas de Bollinger consisten en tres bandas, almacenamos los datos en las siguientes tres columnas, “upper_band”, “middle_band” y “lower_band”.

A continuación se presentan ejemplos para cálculo de RSI, MACD, Estocástico:

A continuación se presenta los resultados

El siguiente código presenta el cálculo para el indicador “On Balance Volumen” y se muestra su gráfico, es importante destacar que acá se están tomando datos de un año razón por la cual el indicador parte de 0 y hace suma sucesiva del volumen cerrando para el 24/07/2020 con un OBV negativo, esto lo que indica es que en el periodo de un año las ventas han superado las compras en cuanto a volumen sin embargo, aplicando análisis técnico la tendencia de fondo de INTC es alcista.

A continuación observaremos el cálculo de indicador ATR (Average True Range) utilizando TA-Lib:

En cuanto a los patrones de reconocimiento de velas, existen diversas funciones como podrán observar en https://mrjbq7.github.io/ta-lib/func_groups/pattern_recognition.html

¿Cómo se utilizan estas funciones?

Bueno, al ingresar los datos de apertura, máximo, mínimo y cierre de la acción en estudio la función seleccionada retornara uno de tres posibles valores enteros, 0 cuando no reconoce patrón, 100 cuando reconoce un patrón alcista y -100 cuando reconoce un patrón bajista, siguiendo con los ejemplos con Intel tenemos lo siguiente:

Como resultado obtenemos:

Como podemos observar para el 24-07-2020 se identificó un patrón de velas bajista Belthold, el patrón de vela Belthold es una vela larga bajista donde la apertura y el máximo coinciden, el cuerpo es alargado y la distancia entre el mínimo y el precio de cierre es pequeña, como podemos observar en la siguiente imagen:

Fuente: https://www.investopedia.com/terms/b/bearishbelthold.asp

Si deseas saber más sobre este patrón de velas, puedes encontrar información relevante en los siguientes enlaces:

  1. https://www.investopedia.com/terms/b/bearishbelthold.asp
  2. http://thepatternsite.com/BeltHoldBear.html

Como hemos visto es posible calcular y trazar diversos indicadores técnicos en Python haciendo uso de TA-Lib, lo que facilita muchísimo la labor del desarrollador ya que no deberá desarrollar funciones para el cálculo de estos indicadores, una vez calculado el desarrollador ya puede enfocarse en la estrategia, la programación de un cruce de medias móviles, de compra en zona de sobre venta de indicadores como RSI, MACD, u otros.

¿Recuerdan la pregunta al inicio del artículo? ¿Fue fiable el reconocimiento del patrón de velas? A continuación le muestro la gráfica actualizada de Intel para el 01/08/2020.

https://www.tradingview.com/x/6u21I1Vn/

Acá pueden acceder al código para practicar y estudiar https://github.com/ArQuants/TA-Lib

<strong> Por</strong> Alexander Ríos
 Por Alexander Ríos

Es Ingeniero Electricista de la Universidad de Carabobo (Venezuela), especialista en automatización de procesos industriales e Inversor Independiente.

Inscríbite para estar al día con la serie de automatización de una mesa de operaciones

Datos
Comparte esta noticia
Facebook
Twitter
LinkedIn
WhatsApp
Haz parte de esta comunidad

Recuerda que la tecnología no para de avanzar, si te interesa estar actualizado en materia de mercados financieros, algoritmos y más no olvides seguirnos y hacer parte de nuestra comunidad.

Otros Artículos

Suscríbete a nuestro Newsletter
No te pierdas las últimas noticias del mercado.

Algorithmic Process Automation (APA)

Esta es una “caja” de estrategias para el operador o trader, que le permite llevar adelante la optimización y minimización de errores, en la ejecución de tareas repetitivas dentro de una mesa de operaciones. Mejora de este modo la productividad y eficiencia del equipo de trabajo en el accionar diario.

Estrategias

Realice operaciones de canje entre dólar mep y cable mediante la operatoria de bonos o acciones. Para utilizar esta estrategia, debes configurar la cantidad de dólar cable a operar, el tipo de operación (compra o venta), el precio al que se desea realizar, y los títulos que se emplearán para realizar la operación.

Tiene como objetivo realizar una compra de un activo promediando un valor por debajo del máximo configurado. Está pensada para optimizar el flujo de una operación, consiguiendo el precio deseado sin la necesidad de la intervención de un operador. Se puede configurar el monto total a operar, el precio límite y por último el tamaño máximo de las órdenes.

Tiene como objetivo colocar un monto en una moneda determinada a tasa entre plazos. Pensado para poder optimizar el curso de operaciones de colocación a tasa a través de un algoritmo y no requiriendo una intervención activa de un operador.

Realizá operaciones de compra o venta de dólares mediante la operatoria de bonos o acciones. Para utilizar esta estrategia, debes configurar la cantidad de dólares a operar, el tipo de operación (compra o venta), el precio al que se desea realizar, y los títulos que se emplearán para realizar la operación.

Dada una posición tomada en un valor negociable, la desarmar y la rearma en otro valor negociable, respetando un ratio de precios configurado entre ambos.

Price Improvement Iceberg (PII). Esta estrategia busca estar siempre primera en el book de órdenes con el objetivo de discretizar una orden de compra o venta. Permite configurar precio límite, monto total a operar, límite de monto por orden y cuenta con un mecanismo para ocultarle al mercado su accionar, modificando las órdenes que va enviando en su tamaño.

Tiene como objetivo tomar un monto en una moneda determinada a tasa entre plazos. Pensado para poder optimizar el curso de operaciones de tomar tasa a través de un algoritmo y no requiriendo una intervención activa de un operador.

Tiene como objetivo realizar una venta de un activo promediando un valor por debajo del máximo configurado. Está pensada para optimizar el flujo de una operación, consiguiendo el precio deseado sin la necesidad de la intervención de un operador. Se puede configurar el monto total a operar, el precio límite y por último el tamaño máximo de las órdenes.

Pensada para simplificar la gestión pasiva de liquidez de una gran cantidad de cuentas comitentes, esta estrategia permite la automatización en la ejecución de órdenes de cauciones colocadoras en el mercado. A partir de una lista de cuentas y saldos, el algoritmo envía órdenes al mercado siguiendo parámetros de plazo, tasa, agresión y tamaño. El resultado es la ejecución de cientos de órdenes en pocos minutos manteniendo un control global del proceso en cada momento.

Es un algoritmo pensado para simplificar el proceso de colocación de órdenes para tomar liquidez del mercado. A partir de un detalle de saldo requerido por cuenta comitente y la definición del plazo (caución a t dias), el motor administra el envío de órdenes dentro de parámetros definidos de tasas objetivos y agresividad en la colocación. El resultado es la ejecución de cientos de órdenes en pocos minutos manteniendo un control global del proceso en cada momento.