使用Bloomberg在Java中获取特定时间的最新交易

3

使用Bloomberg开放API。如何获取特定日期和时间的PX_LAST值?

我可以使用以下代码获取特定日期的最后一次交易(实际上是收盘价):

Request request = refDataService.createRequest(historicalData);
request.getElement("securities").appendValue("IBM US Equity");
request.getElement("fields").appendValue("PX_LAST");

String date = "20120801";
request.set("startDate", date);
request.set("endDate", date);

现在我需要知道特定日期和时间的PX_LAST。例如,在8月1日的9:45,主导交易价格是多少?

1个回答

1
一种方法是使用以下参数创建一个IntradayBarRequest请求:
request.set("security", ticker);
request.set("eventType", EventType.TRADE);
request.set("interval", 1);
request.set("gapFillInitialBar", true);
request.set("startDateTime", startDate);
request.set("endDateTime", startDate);

使用 startDate = "2012-08-01T09:45:00"

请注意,在我的时区中,我在9:45时什么也没有,但在15:45时有东西(参见您之前的问题)。

如果您使用Joda的DateTime,可以使用以下模式:

private static final DateTimeFormatter bbDateFormat = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss");

DateTime start = new DateTime(2012, 8, 1, 15, 45, 0, 0);
String bbStartDate = startDate.toString(bbDateFormat);
request.set("startDateTime", bbStartDate);

你可能也可以使用 IntradayTickRequest,但我从未使用过它们 - 不确定哪个更快。 - assylias
这样你可以获得每分钟的价格,我认为没有办法获得每秒的价格。 - ytoledano
@ytoledano,使用IntradayTickRequest可以获取tick数据,我认为其分辨率为毫秒级别。但是对于IntradayBar来说,最佳分辨率确实是1分钟。 - assylias
同意,但下载这么多数据(IBM每天有40K个tick)来获取某个时间点的价格是很多的。 - ytoledano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接