1 votos

Bloomberg: Obtener referencias históricas

Nuevo en el terminal, me preguntaba si podría obtener alguna ayuda.

Estoy buscando una serie temporal para saber cuál era el índice de referencia activo para un plazo determinado en la curva de rendimiento canadiense.

Sé que GTCAD5Y Govt hace el truco para el día de hoy, pero no he sido capaz de encontrar una manera de atar esto en una consulta BDH o python. En todos los casos en que lo intento, no se devuelven datos cuando pruebo campos como ID_ISIN.

Agradeceré cualquier consejo o recomendación.

Editar: hay una plantilla excel en el terminal que tiene un comando BDS relevante para esta información.

1voto

BC. Puntos 9229

Como se menciona en el comentario, el servicio de asistencia no es útil con Python (cualquier API programática es una oferta "hágalo usted mismo" a menos que utilice una oferta premium como Data license, BPIPE o SAPI - pero WAPI tiene más de lo que realmente necesita). Lo que el servicio de ayuda puede hacer es mostrarle Excel - es fácil de usar la API programática después, una vez que usted sabe cuáles son los campos apropiados, etc (notable excepción, algunas cosas sólo funcionan en Excel - como las curvas de herramientas y FX adelante kit de herramientas).

Se descarga la guía del desarrollador del núcleo de la API y se consultan los datos de la SDE. En la API, no hay diferencia en el tipo de solicitud y las opciones para los datos de referencia y los datos de referencia masivos (el campo dicta si es masivo). La diferencia entre ambas radica en el análisis de la respuesta: las respuestas de datos masivos se devuelven en un formato diferente. La guía de referencia y esquema contiene también ejemplos de código. El primero es principalmente VBA, el segundo C++, pero en WAPI también hay ejemplos para Python (sólo que no en las guías). Una vez blpapi está instalado, puede utilizar este sencillo equivalente de BDS como punto de partida:

import blpapi

session = blpapi.Session() 
session.start()
session.openService("//blp/refdata")
service = session.getService("//blp/refdata")
request = service.createRequest("ReferenceDataRequest")

request.append("securities", "CLA Comdty")
request.append("fields", "FUT_CHAIN_LAST_TRADE_DATES") 

overrides = request.getElement("overrides")
override1 = overrides.appendElement()
override1.setElement("fieldId", "START_DT")
override1.setElement("value", "20200101")

override2 = overrides.appendElement()
override2.setElement("fieldId", "END_DT")
override2.setElement("value", "20201209")

session.sendRequest(request)

endReached = False 
while endReached == False: 
    ev = session.nextEvent()
    if ev.eventType() == blpapi.Event.RESPONSE or ev.eventType() == blpapi.Event.PARTIAL_RESPONSE:
        for msg in ev:
            print(msg)
    if ev.eventType() == blpapi.Event.RESPONSE:
        endReached = True

Así que se utiliza refdata, se crea la solicitud, se añaden los valores y campos requeridos y se añaden las anulaciones. El comando print(msg) no será la solución final pero te muestra la respuesta completa, que puedes meter en un dataframe o lo que quieras.

Si prefiere soluciones más sencillas (sin tener que escribir código usted mismo), puede utilizar envoltorios existentes como pdblp .

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X