我正在尝试从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量。
答案 0 :(得分: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_TIME
和VWAP_END_TIME
)以在历史请求中将您的VWAP限制为9-11AM,对于您可能会像下面的代码 - 它也可能适用于历史请求:
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");