作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 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/
我是一名优秀的程序员,十分优秀!