【问题标题】:Java Bloomberg API - how to generate a Request without a ServiceJava Bloomberg API - 如何在没有服务的情况下生成请求
【发布时间】:2013-01-18 20:47:49
【问题描述】:

我正在使用 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);

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

关于如何做到这一点的任何想法?我的最终目标是拥有一个进程(我正在调用更新队列),它接收请求列表,删除所有重复项,并以 30 秒的间隔向 Bloomberg 发送数据。

谢谢!

【问题讨论】:

  • 如果有任何兴趣,我围绕 Bloomberg API 开发了一个 Java wrapper,这可以使这更容易(即所有类型的请求都是通过构建器创建的,它们都实现了相同的接口和所有结果放在 RequestResult 对象中)。你可以在the javadoc page底部看到一个示例代码。
  • 太好了,我应该可以用这个了,谢谢!您是否有机会从事 IntraDayTickBuilder 课程?
  • 还没有 - 我可能会在接下来的几天内添加一个。
  • 太棒了!谢谢,我会继续关注的。顺便说一句,Stack Overflow 礼仪是什么——这绝对是我需要的,但我不能接受评论作为答案
  • 我添加了一个包含更多细节的答案。我已经完全修改了 API 以包含刻度数据,现在看起来好多了。感谢您的小推动!

标签: java bloomberg


【解决方案1】:

我已更新 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 结合使用。

注意:该库仍处于测试状态,因此请勿在自动交易的黑匣子中盲目使用它!

【讨论】:

  • 这太好了,谢谢!顺便说一句,我正在使用 blpapi-3.4.8-1.jar 并且使用 includeNonPlottableEvents 标志没有问题(实际上我必须这样做才能看到我感兴趣的交易)。您的变量名为includeNonPlottable,因此它可能只是一个错字。在开发人员指南中,它分为两行,所以也许这就是原因。再次感谢,这正是我所需要的!
  • @Marianna 很好发现!我确实错过了第二行。我刚刚推送了更新。谢谢!
  • @assylias 有没有什么地方可以找到 jBloomberg 库的更多示例
  • this page的底部
猜你喜欢
  • 2019-01-19
  • 2012-08-07
  • 1970-01-01
  • 2010-09-14
  • 1970-01-01
  • 2020-10-18
  • 2019-06-26
  • 1970-01-01
  • 2014-01-23
相关资源
最近更新 更多