2012-08-28 2 views
0

Bloomberg Java API에서 특정 데이터 필드를 가져 오려고합니다.Java를 사용하여 특정 날짜에 Bloomberg 필드 가져 오기

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 수량을 얻고 싶습니다.

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

당신은 다음 시작 날짜와 종료 날짜를 지정할 수 있습니다 :

답변

1

당신은 "HistoricalDataRequest"요청 만들 필요하게 될 경우, STARTDATE 및 ENDDATE에서

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

을 27- 첫 번째 요청은 8 월이고 두 번째 요청은 26-8 월입니다.

그러나, 나는 당신이 아래의 코드처럼 smoething 할 것이다 참조 데이터에 대한 역사적 요청에 오전 9-11로 VWAP을 제한하는 필드 (VWAP_START_TIMEVWAP_END_TIME)를 오버라이드 (override) 할 수있는 방법 확실하지 않다 - 그것은 작동 할 수 이력 요청도 :

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"); 
+0

그런 다음 동일한 요청 요소에서 27 번째 VWAP와 VWAP의 개시 가격을 10에서 11 사이로 늘릴 방법이 없습니까? 각 데이터 항목에 대해 새로운 요청 요소를 제거해야합니다. – Marianna

+0

하루에 하나의 요청이나 범위 (26-27)에 대한 요청이 필요하고 관련 데이터를 사용해야합니다. 그리고 나는 하나 이상의 필드에서 overloadin을 사용할 수 있는지 확신하지 못합니다. 따라서 간단하게 유지하고 27 번째 데이터의 첫 번째 요청에 대해 하나의 요청을하고 26 번째 매개 변수를 오버라이드 한 vwap에 대해 하나의 요청을합니다. 어쨌든 동일한 세션을 사용한다면 상당히 빠릅니다. BB 도움말에 더 나은 방법이 있는지 항상 물어볼 수 있습니다. – assylias