Bloomberg Python API – Получение праздников торгового календаря

Вопрос или проблема

Я пишу код для получения праздников торгового календаря из Bloomberg API через Python. Вот часть кода, которую я рассматриваю:

for exchangeCode in listExchangeCodes:
    dictExchangeCodes[exchangeCode] = []
   
    request = refDataService.createRequest("ReferenceDataRequest")
    request.append("securities", "AAPL US Equity")
    request.append("fields", "CALENDAR_HOLIDAYS")
 
    overrides = request.getElement("overrides")
    # print(overrides)
    override2 = overrides.appendElement()
    override2.setElement("fieldId",  "CALENDAR_START_DATE")
    override2.setElement("value", startDate)
    # print(override2)
    override3 = overrides.appendElement()
    override3.setElement("fieldId",  "CALENDAR_END_DATE")
    override3.setElement("value", endDate)
    # print(override3)
    override4 = overrides.appendElement()
    override4.setElement("fieldId", "SETTLEMENT_CALENDAR_CODE")
    override4.setElement("value", exchangeCode)
    # print(override4)
    print(request)
    session.sendRequest(request)

В основном этот код извлекает все праздники расчетного календаря для каждой биржи в списке для акций AAPL. Однако я хотел бы получить праздники торгового календаря, но должно быть что-то другое, что можно подставить вместо “SETTLEMENT_CALENDAR_CODE”, связанное с торговлей. Также “CALENDAR_NON_SETTLEMENT_DATES” не работает. Я действительно не могу найти ничего в интернете или в документации BLPAPI.

Ответ или решение

Для получения праздничных дней торгового календаря через Bloomberg API на Python вам потребуется внести определенные изменения в ваш код. Давайте разберем этот процесс подробно.

1. Понимание API и необходимых полей

Вы уже используете метод REFERENCE_DATA, запросив CALENDAR_HOLIDAYS для обслуживания AAPL (Apple Inc.) и указывая коды соответствующих обменов. Однако, чтобы извлечь праздничные дни торгового календаря, вам нужно убедиться, что Вы используете правильные идентификаторы поля и код календаря.

2. Идентификация торгового календаря

Вместо использования идентификатора SETTLEMENT_CALENDAR_CODE, вам нужно найти или использовать TRADING_CALENDAR_CODE. Чтобы это сделать, вы можете сначала составить список всех доступных календарей, используя другой метод Bloomberg API, такой как CalendarRequest, который позволит вам получить все торговые календари и их коды.

3. Изменение кода

Вот как можно изменить ваш код, чтобы получать праздничные дни торгового календаря:

for exchangeCode in listExchangeCodes:
    dictExchangeCodes[exchangeCode] = []

    request = refDataService.createRequest("ReferenceDataRequest")
    request.append("securities", "AAPL US Equity")
    request.append("fields", "CALENDAR_HOLIDAYS")

    overrides = request.getElement("overrides")
    override2 = overrides.appendElement()
    override2.setElement("fieldId", "CALENDAR_START_DATE")
    override2.setElement("value", startDate)

    override3 = overrides.appendElement()
    override3.setElement("fieldId", "CALENDAR_END_DATE")
    override3.setElement("value", endDate)

    # Изменение здесь: используйте торговый календарь
    override4 = overrides.appendElement()
    override4.setElement("fieldId", "TRADING_CALENDAR_CODE")  # Измените на 'TRADING_CALENDAR_CODE'
    override4.setElement("value", exchangeCode)

    print(request)
    session.sendRequest(request)

4. Проверка доступных календарей

Если вы не уверены в кодах торговых календарей, вы можете выполнить следующий код для получения списка доступных календарей перед выполнением основного запроса:

calendarRequest = refDataService.createRequest("CalendarRequest")
# Отправьте запрос и обработайте входящие данные (это может занять время)
session.sendRequest(calendarRequest)

5. Документация и поддержка

Если вы не можете найти нужные коды или поля, актуальные с вашим API, я рекомендую проверить документацию с помощью Bloomberg Terminal. Используйте команду API или обратитесь к своему администратору Bloomberg для получения доступа к полной документации API.

Вы также можете обратиться в службу поддержки Bloomberg, если у вас возникнут дополнительные вопросы или затруднения с получением данных.

Заключение

Следуйте вышеуказанным шагам, и вы сможете успешно получать праздничные дни торгового календаря через Bloomberg API. Удачи в вашем проекте, и помните, что корректная настройка запросов и правильное понимание используемых полей имеют решающее значение для успешной работы с API.

Оцените материал
Добавить комментарий

Капча загружается...