Asynchrone Daten durch Bloomberg, neue Daten-API (COM-v3) mit Python?
Weiß jemand, wie man asynchronen Daten durch Bloomberg, neue Daten-API (COM-v3) mit Python? Ich fand diesen code unten auf wilmott.com und es funktioniert ganz gut, aber es ist für die alte API-version.
Kennt jemand den entsprechenden code für die neue version?
from win32com.client import DispatchWithEvents
from pythoncom import PumpWaitingMessages, Empty, Missing
from time import time
class BBCommEvent:
def OnData(self, Security, cookie, Fields, Data, Status):
print 'OnData: ' + `Data`
def OnStatus(self, Status, SubStatus, StatusDescription):
print 'OnStatus'
class TestAsync:
def __init__(self):
clsid = '{F2303261-4969-11D1-B305-00805F815CBF}'
progid = 'Bloomberg.Data.1'
print 'connecting to BBComm'
blp = DispatchWithEvents(clsid, BBCommEvent)
blp.AutoRelease = False
blp.Subscribe('EUR Curncy', 1, 'LAST_PRICE', Results = Empty)
blp.Flush()
end_time = time() + 5
while 1:
PumpWaitingMessages()
if end_time < time():
print 'timed out'
break
if __name__ == "__main__":
ta = TestAsync()
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich fand es schließlich heraus. Ich habe ein gutes Stück von combrowse.py detektivische Arbeit, und ich im Vergleich mit JAVA, C, C++, und .NET-Beispiele in der BBG-API herunterladen. Interessanterweise ist die Bloomberg-Helpdesk Menschen wussten so ziemlich null wenn es um diese Dinge, oder vielleicht war ich einfach nur reden an die falsche person.
Hier ist mein code.
asynchronousHandler.py:
constants.py:
Für historische Daten, die ich verwendet dieses einfache Skript:
RESPONSE=6
PARTIAL_RESPONSE=7
. Ich habe bestimmt dies durch Versuch und Irrtum."Damit es funktioniert, müssen Sie installieren Sie Bloomberg Desktop v3 API-SDK, das habe ich gemacht, neu gestartet, meine Maschine, die zu funktionieren scheint. Ohne den Neustart ist es gerade abgestürzt ist.
Wenn Sie Com-explorer sehen Sie die bloomberg-Elemente sind nun