Bloomberg API中的事件处理程序通过回调函数来响应特定事件。例如,当收到市场数据更新时,API将触发MarketDataEvents,然后执行注册的回调函数。以下是一个示例代码,监听市场数据事件并打印更新的价格和数量:
import blpapi
session = blpapi.Session()
session.start()
subscription = blpapi.SubscriptionList()
subscription.add("AAPL US Equity", "LAST_PRICE,BID,ASK", "",
blpapi.CorrelationId(1))
def processMessage(msg):
# 解析市场数据消息
for field in msg.getElement("LAST_PRICE").elements():
print("Last Price: %s" % field.getValue())
for field in msg.getElement("BID").elements():
print("Bid: %s" % field.getValue())
for field in msg.getElement("ASK").elements():
print("Ask: %s" % field.getValue())
session.subscribe(subscription, blpapi.Identity("Subscription_ID", 1))
while True:
event = session.nextEvent()
for msg in event:
if event.eventType() == blpapi.Event.SUBSCRIPTION_DATA:
processMessage(msg)