Renta Fija

Datos de transacciones diarias

A continuación descargaremos la tasa de transacción (TIR) y el precio para tres bonos, a partir del año 2020.

import pandas as pd
import requests

API_KEY = 'api_key'

data = {
   'key': API_KEY,
   'values': ['close', 'tir'],
   'tickers': ['BBCIG10618', 'BTU0000325', 'BITAAJ0615'],
   'start': '2020-01-01'
 }
r = requests.post('https://dolphin.markets/api/fixed-income', json=data)
df = pd.DataFrame(r.json())
df['date'] = pd.to_datetime(df['date'])

print(df.head())

Duración de Macaulay

Además de la TIR y el precio de instrumentos de renta fija, es posible obtener la Duración Modificada y el Spread de los bonos en cada transacción. En el siguiente ejemplo, descargaremos la duración para los mismos bonos anteriores.

import pandas as pd
import requests

API_KEY = 'api_key'

data = {
   'key': API_KEY,
   'values': ['modified_duration'],
   'tickers': ['BBCIG10618', 'BTU0000325', 'BITAAJ0615'],
   'start': '2020-01-01'
 }
r = requests.post('https://dolphin.markets/api/fixed-income', json=data)
df = pd.DataFrame(r.json())
df['date'] = pd.to_datetime(df['date'])
pivot = df.pivot_table(index='date', values='modified_duration', columns='nemo')
pivot_last = pivot.ffill().iloc[[-1]].T
pivot_last.columns = ['Duration']

Tasa de emisión de un bono

Además de los datos asociados a cada transacción, es posible obtener datos descriptivos para los instrumentos del mercado de renta fija chileno. A continuación, obtendremos la tasa de emisión y la moneda de algunos bonos.

import pandas as pd
import requests

API_KEY = 'api_key'

data = {
   'key': API_KEY,
   'tickers': ['BBCIG10618', 'BTU0000325', 'BITAAJ0615'],
   'values': ['tasa_emision', 'moneda'],
}
url = 'https://dolphin.markets/api/fixed-income-description'
r = requests.post(url, json=data)
desc = pd.DataFrame(r.json())
desc['tasa_emision'] = desc['tasa_emision'] / 100

Tablas de amortización

Finalmente, mostramos cómo obtener la tabla de desarrollo completa para varios bonos a la vez, permitiendo cálculos de rentabilidad y devengo de intereses a futuro, además de cálculos propios de sensibilidades en las tasas de interés.

import pandas as pd
import requests

API_KEY = 'api_key'

data = {
   'key': API_KEY,
   'tickers': ['BBCIG10618', 'BTU0000325', 'BITAAJ0615'],
}
url = 'https://dolphin.markets/api/fixed-income-amortization-table'
r = requests.post(url, json=data)
df = pd.DataFrame(r.json())

print(df.head())