Soy muy nuevo en python, y estoy acostumbrado a trabajar con fórmulas de bloomberg para excel. Estoy empezando a usar mucho más python en mis análisis, ¿hay alguna biblioteca que realice las mismas funciones que bdp, bdh o bcurve? ¡Gracias! Juan
Respuestas
¿Demasiados anuncios?He experimentado bastante con varias opciones.
Mi consejo es usar vanilla blpapi. Hay muchos buenos ejemplos en el repositorio de git. Algunas notas de instalación útiles también están aquí.
Existen paquetes construidos sobre eso, como pdblp que, en mi opinión, son muy buenos pero no son necesarios para la mayoría de las personas.
Blpapi como se mencionó, vale la pena aprenderlo seguro. Además, si estás buscando trabajar con Pandas te sugeriría usar TIA: https://github.com/bpsmith/tia
Actualmente, TIA solo es compatible con Python 2, pero aquí https://github.com/bpsmith/tia/issues/11 tiene una conversión a Python 3. He estado usando esto recientemente y es bastante bueno. Un ejemplo:
from tia.bbg import LocalTerminal
import tia.bbg.datamgr as dm
import datetime
sid = 'IBM US EQUITY'
event = 'TRADE'
dt = pd.datetools.BDay(-1).apply(pd.datetime.now())
start = pd.datetime.combine(dt, datetime.time(13, 30))
end = pd.datetime.combine(dt, datetime.time(21, 30))
f = LocalTerminal.get_intraday_bar(sid, event, start, end,
interval=60).as_frame()
f.head(1)
close high low numEvents open time value volume
0 162.2500 162.70 161.51 4005 162.4900 2015-02-24 14:30:00 110345672 680888
El enlace de github de arriba tiene un montón de ejemplos también.
Normalmente uso pybbg que también es un wrapper para blpapi.
Con una sesión de Bloomberg iniciada, simplemente importa y comienza una conexión
import pybbg as pybbg
bbg = pybbg.Pybbg()
Luego puedes usar bdp, bdh, bds y bdih.
bdp
bbg.bdp('PGB 1.95 06/15/2029 Govt', ['MATURITY', 'COUPON', 'ISSUE_DT', 'YLD_YTM_MID'])
Incluso puedes consultar acuerdos de SWPM...
pd.options.display.float_format = '{:,.2f}'.format
flds = ['SW_CURVE_DT', 'SW_MARKET_VAL', 'SW_CNV_BPV', 'VALUE_1_BP_CHANGE_IN_FIXED_CPN']
bbg.bdp('SLPA2EZJ Corp', flds)
...y proporcionar reemplazos
flds = ['SW_CURVE_DT', 'SW_MARKET_VAL', 'SW_CNV_BPV', 'VALUE_1_BP_CHANGE_IN_FIXED_CPN']
overrides = {'SW_CURVE_DT': '20190507'}
bbg.bdp('SLPA2EZJ Corp', flds, overrides)
bdh
bbg.bdh('EUR Curncy', 'PX_LAST', '20200525')
bds
bbg.bds('YCSW0045 Index', 'CURVE_TENOR_RATES')
bdib
from datetime import datetime
flds = ['close', 'high', 'low', 'open']
ticker = 'PGB 1.95 06/15/2029 Govt'
bbg.bdib(ticker, flds, datetime(2020,6,1,15,0), datetime(2020,6,1,15,30), eventType='ASK', interval = 5)
1 votos
No se puede utilizar BCurve ni ninguna otra función de DLIB en Python. Ni siquiera en el entorno de Bloomberg BQNT. Una buena alternativa sería utilizar QuantLib. Puedes construir curvas y valorar instrumentos igual que con DLIB.
1 votos
Bcurve es actualmente parte del kit de herramientas de curvas (CTK), que no está relacionado con DLIB. Dicho esto, el comentario anterior sigue siendo correcto. CTK, el kit de herramientas de swaps (STK) y el kit de herramientas de derivados (DTK) no se pueden utilizar con blpapi (solo las ofertas de datos premium te permitirían hacer esto).