使用Bloomberg .Net API的每小时数据

Rav*_*ngh 3 .net api bloomberg

我正在努力克服使用.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",,"Quot??e=C","UseDPDF=Y","Sort=D",,"cols=5;rows=271") 
Run Code Online (Sandbox Code Playgroud)

其中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);
Run Code Online (Sandbox Code Playgroud)

ste*_*cec 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...";
Run Code Online (Sandbox Code Playgroud)

提交后,您必须接受Bloomberg的回复,解析并使用它.

快乐的编码.

编辑:

请查看示例C#代码的结果以及Bloomberg提出的等效请求.请记住TimeZONE的不同之处!当您使用C#编码时,Bloomberg库是UTC,而使用Excel插件时区是您的本地区域.

在此输入图像描述

  • 是的,它有效!我尝试了60分钟的间隔,现在数据与Excel请求数据匹配.只是我们需要注意你所指出的时移.例如,Excel中"8/30/2012 12:00:00 AM"的数据与C#results的"8/29/2012 6:30:00 PM"的数据相匹配.非常感谢stexcec的帮助.不幸的是,我无法对你的解决方案进行投票(它说我需要至少15个声望点才能投票). (2认同)