Bloomberg Terminal Review for Developers
The Bloomberg Terminal is the gold standard of financial data platforms. Used by virtually every institutional investor, hedge fund, and investment bank, it provides real-time market data, news, analytics, and a messaging network. For developers, the key draw is the Bloomberg API (BLPAPI) and Bloomberg Query Language (BQL), which let you pull data directly into Python, Excel, and other tools.
Pricing
- ✓ Full terminal access
- ✓ BLPAPI included
- ✓ Bloomberg Anywhere
- ✓ BQL access
- ✓ Excel add-in
- ✓ Enterprise data feeds
- ✓ Bulk historical data
- ✓ Reference data
- ✓ No terminal needed
- ✓ Real-time streaming
- ✓ Low latency
- ✓ Consolidated feed
- ✓ For trading systems
Pros
- + Most comprehensive financial data in existence
- + BLPAPI is well-documented and supports Python, Java, C++
- + BQL is powerful for complex queries
- + Bloomberg Anywhere for remote access
- + The messaging network is invaluable for deal flow
Cons
- - Extremely expensive at $24k/year per user
- - Steep learning curve for the terminal
- - Cannot easily export large datasets
- - Vendor lock-in risk
- - Overkill for individual developers
Who Is It For?
Bloomberg is for professional quants, portfolio managers, and institutional developers who need the most comprehensive and reliable data. If your employer pays for it, learn the API. If you are an individual developer, look at cheaper alternatives below.
Code Example
# Bloomberg API (BLPAPI) - Python example
# Requires blpapi package and active terminal
import blpapi
session_options = blpapi.SessionOptions()
session_options.setServerHost("localhost")
session_options.setServerPort(8194)
session = blpapi.Session(session_options)
session.start()
session.openService("//blp/refdata")
service = session.getService("//blp/refdata")
request = service.createRequest("ReferenceDataRequest")
request.append("securities", "AAPL US Equity")
request.append("fields", "PX_LAST")
request.append("fields", "PE_RATIO")
request.append("fields", "DVD_YLD")
session.sendRequest(request)
# Process response
while True:
event = session.nextEvent(500)
for msg in event:
print(msg)
if event.eventType() == blpapi.Event.RESPONSE:
break
session.stop()Alternatives
Recommended Reading
Algorithmic Trading with Python →As an Amazon Associate we may earn from qualifying purchases.