Вы можете попробовать код ниже. Функция является генератором, выдающим каждый тик как dict
данных из Bloomberg. Вы должны включить его в свой бэкэнд обработки сигналов, чтобы сделать это полезным.
In [1]: from xbbg import blp
In [2]: cnt = 0
In [3]: for t in blp.live('QQQ US Equity', flds=['Bid', 'Ask', 'Last_Price']):
cnt += 1
print(t)
if cnt > 10: break
{'TICKER': 'QQQ US Equity', 'MKTDATA_EVENT_TYPE': 'SUMMARY', 'MKTDATA_EVENT_SUBTYPE': 'INITPAINT', 'BID': 185.23, 'ASK': 185.24, 'BEST_BID': 184.72, 'BEST_ASK': 184.74, 'BID_ALL_SESSION': 184.72, 'ASK_ALL_SESSION': 184.74, ....}
Другой способ загрузки исторических тиковых данных приведен ниже. Проблема в том, что иногда возвращает пустой DataFrame . Все еще не уверен, что происходит - возможно, решу это позже.
In [4]: blp.bdtick('QQQ US Equity', dt='2020-03-30').tail()
QQQ US Equity
typ value volume cond exch
2020-03-31 20:00:00-04:00 TRADE 190.31 0 OC C
2020-03-31 20:00:00-04:00 TRADE 190.30 0 OC B
2020-03-31 20:00:00-04:00 TRADE 190.21 0 OC A
2020-03-31 20:00:00-04:00 TRADE 190.43 0 OC D
2020-03-31 20:00:00-04:00 TRADE 190.40 0 CC Q