Ir al contenido principal

Cliente para la API del Banco Central

Mi mas reciente creación en Python se ciñe a la implementación de un cliente o SDK (software development kit) de la API del Banco Central de Chile. Con este SDK van a poder extraer series de datos macroeconómicos que servirán para encontrar hallazgos, los cuales permitirán parametrizar el comportamiento de la economía de Chile y eventualmente del mundo. Para entender como funciona, en el siguiente articulo desarrollaré un tutorial el cual contempla: las funcionalidades básicas, como obtener acceso a la API y un ejemplo de aplicación práctico. Su documentación completa está en mi GitHub

Acceso a la API

Primero que todo deberás solicitar acceso a la API, dado que no es abierta. Para pedir el acceso deberás ingresar al siguiente sitio del Banco Central. Las instrucciones son muy claras y se demoran un plazo máximo de 15 días (en mi caso fue durante el mismo día). Te pedirán los siguientes documentos (asumiendo que eres una persona natural chilena): 

Rellenar el formulario de acceso (firmando donde dice gerente general, y aceptando los términos y condiciones).

Copia de su cédula de identidad por ambos lados.

Consideración: La firma de la cédula debe ser idéntica a la del formulario de registro y condiciones

Funcionalidades básicas

El SDK es una clase que contiene dos métodos para extraer data desde la API. Uno solicita los datos basados en la id de la serie de datos (get_macro) y el otro sirve para solicitar el “menú” disponible de series basados en periodicidad o frecuencia (get_busqueda). Una implementación básica es la siguiente:

Como puedes ver, el SDK devuelve una lista con los valores solicitados. En otro caso, imprime un mensaje de error, el cual contiene su descripción y código. Por otro lado, recomiendo ocupar variables de entorno, dado que es mas seguro (no expones tu usuario ni claves). Te dejo un tutorial sobre como guardar y llamar variables de ambiente en Python -> Hiding Passwords and Secret Keys in Environment Variables (Windows). Independiente de lo anterior, puedes incluir tus credenciales de manera directa en la creación de las instancia (no lo recomiendo).

Opté por entregar de la manera conservadora los datos (estructuras de bajo nivel), debido a que no quise forzar hacia alguna estructura de datos de mas alto nivel (un DataFrame por ejemplo). De esta manera, los analistas tendrán mayor plasticidad al momento de manipular los datos.

Ejemplo de aplicación práctico

En este caso de uso construiré el indicador “Gasto en interés real”, el cual no es mas que el gasto en instrumentos tipo deuda pero con tasas de interés flotante (varían según el enfoque de la política fiscal y la parte en que nos encontramos del ciclo de negocios). Una analogía útil es llamarlo el gasto en costo fijo del Estado o el “costo de prender las luces”. Si quieres mas detalles de este indicador te recomiendo leer un articulo en donde expongo mi tesis de inversión con respecto a Chile. Particularmente para el caso chileno se define como:

Interés real = Interés de deuda + Subsidios y donaciones + prestaciones previsionales

Es necesario comparar el gasto en interés real contra el ingreso tributario neto de manera aislada, ya que esta partida representa la base estructural, no cíclica y formal de la economía chilena. Añadir partidas como los ingresos del cobre, donaciones u otros no implica permanencia, y además, siempre está la posibilidad de diversificar la matriz productiva.

En simple: Refleja la proporción de los gastos permanentes del Estado con respecto a los ingresos permanentes.

Habiendo explicado el esquema teórico del indicador, necesito mencionar que ocuparé la series de datos devengados trimestrales y las anualizaré (suma de los últimos 4 periodos o TTM). Ocupo los devengados debido a que siguen el principio de reconocimiento de ingresos, que requiere que los ingresos se registren en el período en que se obtienen.

El código para solicitar y buscar los datos que me sirven es el siguiente:

Una vez que se encontraron las id’s de las series requeridas, falta solamente solicitarlas a la API y realizar un pequeño tratamiento para luego graficarlas y desprender un hallazgo que gatille una conclusión. El código para solicitar los datos y manipularlos es el siguiente:

El código para crear un grafico bueno y profesional es el siguiente:



En Chile, la evolución del gasto en interés real con respecto a los ingresos tributarios netos, ha experimentado una tendencia secular al alza desde la crisis subprime. Previo a eso y desde la vuelta a la democracia, se encontraba en una tendencia secular a la baja. Actualmente esta alrededor del 86% de los ingresos tributarios. En términos de valorización de empresas, cualquier empresa que tenga este nivel de endeudamiento o gasto fijo, sería considerada como deuda basura. Los márgenes de utilidad reflejan el pricing power de una compañía.

Conclusión

Este fue un proyecto entretenido de implementar, ya que fue rápido (debido a la buena documentación de la API) y creo que de gran impacto para los analistas de inversión, investigadores de universidades, alumnos, profesionales de fundaciones, etc. Si tienen pensado mejoras, no duden en crear un thread en Github y lo comentamos.


Comentarios

Entradas más populares de este blog

Impopular, pero no hay una píldora mágica para escapar de ella.

Los mercados son instancias en donde se transan bienes y servicios, los cuales actúan como sistemas descentralizados, gobernados por relaciones caóticas y fuertemente influenciados por factores estocásticos, es decir, son sistemas complejos. Los agentes económicos que cotizan, compran y venden los instrumentos agregan información proveniente de estímulos externos basados en riesgos macro económicos. Dentro de esos mercados, esta el mercado de bonos soberanos, los cuales transan las expectativas de crecimiento e inflación para el gobierno central de un país. Ambas variables se pueden ver desde dos ángulos complementarios: mercado secundario y balance fiscal.

A list of SDKs that may help your next project

Now that I work independently, I can code whatever I want, whenever I want. One of my favorite things to code and publish is SDKs (Software development kits) related to APIs, specifically financial APIs. This helps analysts standardize the layer of data extraction and helps them work with the actual stuff they are good at. Extract insights for educated guesses about the market. Without further due, let me show you a list of curated financial SDKs that may help your work as an analyst or trader (be aware that some of these SDK will be in Spanish):  End-of-Day data extractor https://github.com/LautaroParada/eod-data This library is the Python 🐍 unofficial SDK for the EOD Historical data REST API. It's intended to be used for data extraction for financial valuations, macroeconomic analyses, sentiment analysis, option strategies, technical analysis, development of machine learning models, and more! Variance Ratio Test https://github.com/LautaroParada/variance-test These statistical te

Outlook sector bancario 2022

A continuación te comentaré mi tesis con respecto al sector bancario chileno. Para aquello tomo elementos de la macroeconomía, fundamentos de la industria y un análisis técnico (usando ondas de Elliott ) de los bancos con mayor capitalización bursátil. Esto te permitirá tener una visión externa y diferente de lo que está ocurriendo en el sector, lo que en definitiva te ayudará a generar perspectiva y contrastarlo contra tu propia tesis de inversión. Curva de tasas y colocaciones Las tasas de interés y la rentabilidad bancaria están conectadas, ya que los bancos se benefician de tasas de interés más altas. Cuando las tasas de interés son más altas, los bancos ganan más dinero aprovechando la diferencia entre el interés que estos pagan a los clientes y el interés que el banco puede ganar invirtiendo (principalmente en préstamos). Tradicionalmente, un banco paga a los depósitos de sus clientes una fracción de lo que gana en intereses de sus inversiones a corto plazo (parte corta de la c