Запрос API Python Bloomberg не возвращает результат

Я пытаюсь установить API Bloomberg. Я выполнил все инструкции и могу запускать код без каких-либо ошибок. Однако он не дает никакого полезного вывода, что заставляет меня думать, что что-то пошло не так с установкой. Я пробовал это в течение четырех дней и бьюсь головой о клавиатуру! Надеюсь, кто-то сталкивался с этим и может подсказать.

Я использую "IntradayTickExample", который доступен здесь:

https://github.com/msitt/blpapi-python/blob/master/examples/IntradayTickExample.py

Вывод выглядит следующим образом:

IntradayTickExample
Connecting to localhost:8194

12OCT2018_16:37:35.207 7780:22292 WARN blpapi_platformcontroller.cpp:347 
blpapi.session.platformcontroller.{1} Connectivity restored.
Sending Request: IntradayTickRequest = {
    security = "IBM US Equity"
    eventTypes[] = {
        TRADE
    }
    startDateTime = 2008-08-11T15:30:00.000
    endDateTime = 2008-08-11T15:35:00.000
}

Processing Response
IntradayTickResponse = {
    tickData = {
        eidData[] = {
        }
        tickData[] = {
        }
    }
}

TIME                            TYPE    VALUE           SIZE    CC
----                            ----    -----           ----    --


------------------
(program exited with code: 0)

Любые идеи?


person Tom    schedule 12.10.2018    source источник
comment
Извините, если это очевидный вопрос, но, поскольку вы не получаете никакой другой помощи, подтвердили ли вы, что частота тиков достаточно коротка, чтобы возвращать значение в пределах пятиминутного временного окна? Кажется странным, что Bloomberg предоставил пример, который возвращает нулевые данные, но в равной степени кажется странным, что код не работает. Я попытался найти интервал по умолчанию для тиковых данных, но не смог найти ничего надежного. Однако, если частота по умолчанию, скажем, ежечасная, то, возможно, неудивительно, что между 15:30 и 15:35 не будет тиков.   -  person Chris    schedule 23.10.2018


Ответы (1)


Bloomberg ограничивает объем истории тиков, которую вы можете загрузить, до 10 последних дней. Выполнение примера, аналогичного тому, на который вы ссылались, вернет данные, если они находятся в правильном диапазоне (выполнено по состоянию на 24 октября 2018 г.).

import blpapi
HOST = "localhost"
PORT = 8194

def main():
    sessionOptions = blpapi.SessionOptions()
    sessionOptions.setServerHost(HOST)
    sessionOptions.setServerPort(PORT)

    session = blpapi.Session(sessionOptions)

    if not session.start():
        print("Failed to start session.")
        return

    session.openService("//blp/refdata")
    refDataService = session.getService("//blp/refdata")

    request1 = refDataService.createRequest("IntradayTickRequest")
    request1.set("security", "IBM US Equity")
    request1.getElement("eventTypes").appendValue("TRADE")
    request1.set("startDateTime", "2008-08-11T15:30:00.000")
    request1.set("endDateTime", "2008-08-11T15:35:00.000")

    request2 = refDataService.createRequest("IntradayTickRequest")
    request2.set("security", "IBM US Equity")
    request2.getElement("eventTypes").appendValue("TRADE")
    request2.set("startDateTime", "2018-10-23T15:30:00.000")
    request2.set("endDateTime", "2018-10-23T15:30:01.000")

    session.sendRequest(request1)
    session.sendRequest(request2)

    while True:
        ev = session.nextEvent(500)
        if ev.eventType() == blpapi.Event.TIMEOUT:
            break
        for msg in ev:
            print(msg)

Запустив это, вы можете увидеть, что данные получены во втором примере, поскольку диапазон дат установлен соответствующим образом.

main()
SessionConnectionUp = {
    server = "localhost:8194"
}

SessionStarted = {
    initialEndpoints[] = {
        initialEndpoints = {
            address = "localhost:8194"
        }
    }
}

ServiceOpened = {
    serviceName = "//blp/refdata"
}

IntradayTickResponse = {
    tickData = {
        eidData[] = {
        }
        tickData[] = {
        }
    }
}

IntradayTickResponse = {
    tickData = {
        eidData[] = {
        }
        tickData[] = {
            tickData = {
                time = 2018-10-23T15:30:00.000+00:00
                type = TRADE
                value = 129.510000
                size = 100
            }
            tickData = {
                time = 2018-10-23T15:30:00.000+00:00
                type = TRADE
                value = 129.510000
                size = 300
            }
            tickData = {
                time = 2018-10-23T15:30:00.000+00:00
                type = TRADE
                value = 129.525000
                size = 100
            }
            tickData = {
                time = 2018-10-23T15:30:01.000+00:00
                type = TRADE
                value = 129.510000
                size = 100
            }
            tickData = {
                time = 2018-10-23T15:30:01.000+00:00
                type = TRADE
                value = 129.510000
                size = 100
            }
            tickData = {
                time = 2018-10-23T15:30:01.000+00:00
                type = TRADE
                value = 129.510000
                size = 200
            }
        }
    }
}
person mgilbert    schedule 24.10.2018