当前数据使用彭博.NET API [英] Hourly Data using Bloomberg .Net API

查看:1871
本文介绍了当前数据使用彭博.NET API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的逻辑努力获得每小时OPEN,使用.NET API 3.0高,低和LAST_PRICE快照从​​Bloomberg。我用Google搜索了很多次,但没有运气!任何帮助将大大AP preciated。

我试图找到相当于彭博.NET API(C#)下面的VBA BDH功能。

<$p$p><$c$c>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\")

其中B5是安全的姓名和C6:F6包含开盘价,最高价,最低价和LAST_PRICE领域。我曾尝试即日律师的要求,但由该BDH函数返回它不会返回相同的值。此外,历史数据请求没有HOURLY间隔选项,这从每天的间隔开始。

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

  BBService refDataService = session.GetService(// BLP / refdata);
BBRequest请求= refDataService.CreateRequest(IntradayBarRequest);
request.Set(安全,SPX INDEX);
request.Set(事件类型,贸易);
request.Set(间隔,120);在几分钟//栏间隔
request.Set(的startDateTime,新BBDateTime(2012,08,11,07,30,0,0));
request.Set(endDateTime,新BBDateTime(2012,08,20,18,30,0,0));
session.SendRequest(请求,NULL);


解决方案

在彭博API分配,看看伟大的示例文件夹中。

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


  

\\ BLP \\ API \\ APIv3 \\ DotnetAPI \\ v3.2.9.0 \\例子\\的WinForm \\ C#\\ SimpleIntradayBarExample


基本上核心是这样的:

 服务refDataService = d_session.GetService(// BLP / refdata);
        //创建盘中条要求
        请求请求= refDataService.CreateRequest(IntradayBarRequest);
        //设定请求参数
        request.Set(事件类型,贸易);
        request.Set(安全,SPX指数);
        日期时间的startDate = dateTimePickerStartDate.Value;
        DateTime的结束日期= dateTimePickerEndDate.Value;
        request.Set(的startDateTime,新BDateTime(startDate.Year,startDate.Month,startDate.Day,
                startDate.Hour,startDate.Minute,startDate.Second,0));
        request.Set(endDateTime,新BDateTime(endDate.Year,endDate.Month,endDate.Day,
            endDate.Hour,endDate.Minute,endDate.Second,0));
        request.Set(gapFillInitialBar,真);
        request.Set(间隔,60);
        //创建相关ID
        的correlationID CID =新的correlationID(1);
        d_session.Cancel(CID);
        // 发送请求
        d_session.SendRequest(请求,CID);
        toolStripStatusLabel1.Text =提交的请求等待回应......;

和提交后,你必须采取彭博响应,分析它并使用它。

快乐编码。

编辑:

请找到样本C#code和彭博社所做的相当于请求的结果。
只要记住在时区的差别!当您在C#code,彭博库在UTC,而使用Excel加载项的时区为您的本地区域。

I am struggling with the logic to get hourly OPEN, HIGH, LOW and LAST_PRICE snapshot from Bloomberg using .Net API 3.0. I have googled it many times but with no luck! Any help on this will be much appreciated.

I am trying to find equivalent of following VBA BDH function in Bloomberg .Net API (C#).

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

where B5 is security name and C6:F6 contain OPEN, HIGH, LOW and LAST_PRICE fields. I have tried Intraday Bar request but it does not return same values as returned by this BDH function. Also, Historical Data request does not have HOURLY interval option, it starts from DAILY interval.

Following is the code which I have tried so far:

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

解决方案

in the Bloomberg API distribution, take a look at the great "examples" folder.

The sample application below implements your request.:

\blp\API\APIv3\DotnetAPI\v3.2.9.0\examples\WinForm\C#\SimpleIntradayBarExample

Basically the "core" is like that:

        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...";

and after the Submission, you must take the Bloomberg response, parse it and use it.

Happy coding.

EDITED:

Please find the result of the sample C# code and the equivalent request made by Bloomberg. Just keep in mind the difference in TimeZONE! When you code in C#, the Bloomberg library is in UTC, while using Excel addin the timezone is your Local Zone.

这篇关于当前数据使用彭博.NET API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆