我正在努力克服使用.Net API 3.0从Bloomberg获取每小时OPEN,HIGH,LOW和LAST_PRICE快照的逻辑。我用google搜索过很多次但没有运气!对此的任何帮助将不胜感激。
我试图在Bloomberg .Net API(C#)中找到等效的以下VBA BDH功能。
BDH(B5,C6:F6,TODAY()-30,"","BarTp=T","BarSz=120","days=T","Dir=V","Dts=S",,"Quote=C","UseDPDF=Y","Sort=D",,"cols=5;rows=271")
其中B5是安全名称,C6:F6包含OPEN,HIGH,LOW和LAST_PRICE字段。我已经尝试了Intraday Bar请求,但它没有返回与此BDH函数返回的值相同的值。此外,历史数据请求没有HOURLY间隔选项,它从DAILY间隔开始。
以下是我到目前为止尝试过的代码:
BBService refDataService = session.GetService("//blp/refdata");
BBRequest request = refDataService.CreateRequest("IntradayBarRequest");
request.Set("security", "SPX INDEX");
request.Set("eventType", "TRADE");
request.Set("interval", 120); // bar interval in minutes
request.Set("startDateTime", new BBDateTime(2012, 08, 11, 07, 30, 0, 0));
request.Set("endDateTime", new BBDateTime(2012, 08, 20, 18, 30, 0, 0));
session.SendRequest(request, null);
答案 0 :(得分:5)
在Bloomberg API发行版中,看看伟大的“examples”文件夹。
下面的示例应用程序实现了您的请求。
\ BLP \ API \ APIv3 \ DotnetAPI \ v3.2.9.0 \例子\的WinForm \ C#\ SimpleIntradayBarExample
基本上“核心”就是这样:
Service refDataService = d_session.GetService("//blp/refdata");
// create intraday bar request
Request request = refDataService.CreateRequest("IntradayBarRequest");
// set request parameters
request.Set("eventType", "TRADE");
request.Set("security", "SPX Index");
DateTime startDate = dateTimePickerStartDate.Value;
DateTime endDate = dateTimePickerEndDate.Value;
request.Set("startDateTime", new BDateTime(startDate.Year, startDate.Month, startDate.Day,
startDate.Hour, startDate.Minute, startDate.Second, 0));
request.Set("endDateTime", new BDateTime(endDate.Year, endDate.Month, endDate.Day,
endDate.Hour, endDate.Minute, endDate.Second, 0));
request.Set("gapFillInitialBar", True);
request.Set("interval",60);
// create correlation id
CorrelationID cID = new CorrelationID(1);
d_session.Cancel(cID);
// send request
d_session.SendRequest(request, cID);
toolStripStatusLabel1.Text = "Submitted request. Waiting for response...";
在提交后,您必须接受Bloomberg回复,解析并使用它。
快乐的编码。
<强>编辑:强>
请查看示例C#代码的结果以及Bloomberg提出的等效请求。 请记住TimeZONE的不同之处!当您使用C#编码时,Bloomberg库采用UTC格式,而使用Excel插件时区则是您的本地区域。
答案 1 :(得分:1)
你可能已经解决了这个问题,但是你需要注意时间的时区。
彭博的盘中时间都是格林尼治标准时间 - 我认为它在某个地方的文档中说明了这一点。这适用于"IntradayBarRequest"
和"IntradayTickRequest"
。
N.b。这与订阅实时数据(例如使用Subscription
和Session
)不同,后者使用您当地的时区(在您的彭博终端中设置)。当然,除非您使用覆盖"useGMT"
。