1

我正在尝试从 Bloomberg Java API 中提取特定的数据字段。我从开发人员指南中看到,我可以通过以下方式引入一些领域:

Request request = refDataSvc.createRequest("ReferenceDataRequest");
request.getElement("securities").appendValue("AAPL US Equity");
request.getElement("securities").appendValue("IBM US Equity");

request.getElement("fields").appendValue("PX_LAST"); // Last Price
request.getElement("fields").appendValue("DS002"); // Description
request.getElement("fields").appendValue("VWAP_VOLUME");
session.sendRequest(request, new CorrelationID(1));

如何在获取特定日期范围内的某些字段的同时拨打这样的电话?例如,我想获得:最后交易价格、最后交易量、2012 年 8 月 27 日的开盘价以及 8 月 26 日上午 9 点到 11 点之间的 VWAP 交易量。

4

1 回答 1

2

您需要创建一个“HistoricalDataRequest”请求:

Request request = refDataSvc.createRequest("HistoricalDataRequest");

然后,您可以指定开始日期和结束日期:

DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyyMMdd");
request.set("startDate", startDate.toString(fmt));
request.set("endDate", endDate.toString(fmt));

在您的情况下,第一个请求的 startdate 和 enddate 将是 8 月 27 日,第二个请求是 8 月 26 日。

但是,我不确定如何在历史请求中覆盖字段 (VWAP_START_TIMEVWAP_END_TIME) 以将 VWAP 限制为上午 9 点到 11 点,对于参考数据,您可以像下面的代码一样进行处理 - 它也可能适用于历史请求:

Element overridesElt = request.getElement("overrides");
Element override = overridesElt.appendElement();
override.setElement("fieldId", "VWAP_START_TIME");
override.setElement("value", "09:00:00");

override = overridesElt.appendElement();
override.setElement("fieldId", "VWAP_END_TIME");
override.setElement("value", "11:00:00");
于 2012-08-28T14:42:13.047 回答