Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用彭博社.Net API的每小时数据_.net_Api_Bloomberg - Fatal编程技术网

使用彭博社.Net API的每小时数据

使用彭博社.Net API的每小时数据,.net,api,bloomberg,.net,Api,Bloomberg,我正在努力用.NETAPI3.0从彭博社获取每小时开放、高、低和最后一次价格快照的逻辑。我已经在谷歌上搜索过很多次了,但是运气不好!在此方面的任何帮助都将不胜感激 我试图在Bloomberg.NETAPI(C#)中找到与以下VBABDH函数等价的函数 其中B5是安全名称,C6:F6包含开放、高、低和最后价格字段。我尝试过日内Bar请求,但它不会返回与此BDH函数返回的值相同的值。此外,历史数据请求没有小时间隔选项,它从每日间隔开始 以下是我迄今为止尝试过的代码: BBService refDat

我正在努力用.NETAPI3.0从彭博社获取每小时开放、高、低和最后一次价格快照的逻辑。我已经在谷歌上搜索过很多次了,但是运气不好!在此方面的任何帮助都将不胜感激

我试图在Bloomberg.NETAPI(C#)中找到与以下VBABDH函数等价的函数

其中B5是安全名称,C6:F6包含开放、高、低和最后价格字段。我尝试过日内Bar请求,但它不会返回与此BDH函数返回的值相同的值。此外,历史数据请求没有小时间隔选项,它从每日间隔开始

以下是我迄今为止尝试过的代码:

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);

在Bloomberg API发行版中,看一看伟大的“示例”文件夹

下面的示例应用程序实现了您的请求:

\blp\API\APIv3\DotnetAPI\v3.2.9.0\examples\WinForm\C\simpleIntradayBareExample

基本上,“核心”是这样的:

        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...";
提交之后,你必须接受彭博社的回复,解析并使用它

快乐编码

编辑:

请查看样本C#代码的结果以及彭博社提出的同等要求。 请记住时区的不同!当您使用C#编码时,彭博图书馆使用UTC,而使用Excel addin时,时区是您的本地区域


您可能已经解决了这个问题,但您需要注意您所在时代的时区

彭博社的日内时间都是格林尼治标准时间——我想文档中某处有这样的说法。这适用于
“IntradayBarRequest”
“IntradayTickRequest”


注意:这不同于订阅实时数据(例如,使用
订阅
会话
),后者使用您的本地时区(在您的彭博终端中设置)。当然,也就是说,除非您使用覆盖
“useGMT”

欢迎如此!你能给我们看一些你到目前为止尝试过的代码吗?你有什么困难吗?谢谢stexcec的回复,我会尝试一下。但是,正如我已经提到的,我已经尝试了IntradayBarRequest类型的请求,但是我通过IntradayBarRequest得到的结果与从Excel BDH函数收到的结果不匹配。代码中唯一的区别是“gapFillInitialBar”属性和“CorrelationID”的用法。你认为设置这两件事会使IntradayBarRequest的结果正确吗?@RavinderSingh:请查找编辑后的帖子。按照样本,C#和彭博Excel插件是等效的。哦……我想整个问题都与时区有关。非常感谢您的帮助@stexcec。将相应地检查并投票表决您的解决方案。@RavinderSingh:您找到解决方案了吗?是的,它奏效了!我尝试了60分钟的间隔,现在数据与Excel请求数据匹配。只是我们需要像你说的那样小心时间的转移。例如,Excel中的“8/30/2012 12:00:00 AM”数据与C#results中的“8/29/2012 6:30:00 PM”数据相匹配。非常感谢stexcec的帮助。不幸的是,我无法投票支持你的解决方案(上面说我至少需要15个信誉点才能投票)。
        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...";