Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python Bloomberg API request does not return result

I am attempting to install the Bloomberg API. I have followed all instructions and can run code without producing any errors. However it doesn't produce any useful output which makes me think something went wrong with the install. I've been trying this for four days and am banging my head against my keyboard! Hopefully someone has encountered this and can clue me in.

I'm using "IntradayTickExample" which is available here:

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

The output looks like this:

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)

Any ideas?

like image 430
Tom Avatar asked Oct 12 '18 20:10

Tom


1 Answers

Bloomberg limits the amount of tick history you can download to the most 10 recent days. Running a similar example to what you linked to will return data provided this is in the correct range (ran as of 2018-10-24).

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)

Running this you can see that data is obtained in the second example, since the date range is set appropriately.

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
            }
        }
    }
}
like image 53
mgilbert Avatar answered Oct 03 '22 16:10

mgilbert