Java Bloomberg API - 如何在没有服务的情况下生成请求

标签 java bloomberg

我正在使用 Bloomberg API 来获取数据。目前,我有 3 个进程按照开发人员指南以典型方式获取数据。像这样的东西:

Service refDataService = session.getService("//blp/refdata");
Request request = refDataService.createRequest("ReferenceDataRequest");
request.append("securities", "IBM US Equity");
request.append("fields", "PX_LAST");
cid = session.sendRequest(request, null);

行得通。现在我想将逻辑扩展为更像更新队列的东西。我希望每个进程将他们的请求发送到更新队列进程,该进程将依次负责创建 session 和服务,然后发送请求。但是,如果没有服务,我看不出有什么方法可以创建请求。此外,由于请求类型(referenceData、历史数据、日内报价)如此多样且具有如此不同的属性,因此创建一个我的更新队列可以读取的容器对象并非易事。

关于如何实现这个的任何想法?我的最终目标是有一个流程(我称之为更新队列)接收请求列表,删除任何重复项,并以 30 秒的间隔向 Bloomberg 获取数据。

谢谢!

最佳答案

我已经更新了 jBloomberg包含报价数据的库。您可以向 BloombergSession 提交不同类型的查询它充当队列。所以如果你想提交不同类型的请求,你可以这样写:

RequestBuilder<IntradayTickData> tickRequest =
    new IntradayTickRequestBuilder("SPX Index",
        DateTime.now().minusHours(2),
        DateTime.now());

RequestBuilder<IntradayBarData> barRequest =
    new IntradayBarRequestBuilder("SPX Index",
        DateTime.now().minusHours(2),
        DateTime.now())
        .period(5, TimeUnit.MINUTES);

RequestBuilder<ReferenceData> refRequest =
    new ReferenceRequestBuilder("SPX Index", "NAME");

Future<IntradayTickData> ticks = session.submit(tickRequest);
Future<IntradayBarData> bars = session.submit(barRequest);
Future<ReferenceData> name = session.submit(refRequest);

the javadoc 中提供了更多示例.

如果您需要定期获取相同的信息,您可以重用构建器并将其与 ScheduledThreadPoolExecutor 结合使用例如。

注意:该库还处于测试阶段,所以不要在自动交易的黑盒子里盲目使用它!

关于Java Bloomberg API - 如何在没有服务的情况下生成请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14407360/

相关文章:

bloomberg - 从彭博终端抓取新闻源

java - 如何确定在 blpapi 中使用哪些引用数据服务

java - 如何实例化游戏

java - 如何在 java 中对 UDP 数据包进行 ip 欺骗/更改源地址/原始套接字编程?

java - TreeMap 的先决条件

java - 如何在macvim中调用函数

javascript - 在 javascript 中从客户端浏览器访问 Bloomberg API

java - Google Domain API 不断返回 401/403 响应。我究竟做错了什么?

vba - 模仿bdh函数填充向下

c# - C# 中的 Bloomberg 数据类型库