4

.Net API 3.0を使用して、ブルームバーグから1時間ごとのOPEN、HIGH、LOW、およびLAST_PRICEスナップショットを取得するロジックに苦労しています。私は何度もそれをググったが、運がなかった!これに関するどんな助けも大いに感謝されるでしょう。

Bloomberg .Net API(C#)で次のVBABDH関数に相当するものを見つけようとしています。

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にはOPEN、HIGH、LOW、およびLAST_PRICEフィールドが含まれています。日中バーリクエストを試しましたが、この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);
4

2 に答える 2

6

Bloomberg APIディストリビューションで、すばらしい「examples」フォルダーを見てください。

以下のサンプルアプリケーションは、リクエストを実装します。

\ blp \ API \ APIv3 \ DotnetAPI \ v3.2.9.0 \ examples \ 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...";

提出後、ブルームバーグの回答を受け取り、解析して使用する必要があります。

ハッピーコーディング。

編集:

サンプルC#コードの結果と、ブルームバーグによる同等のリクエストをご覧ください。TimeZONEの違いに注意してください!C#でコーディングする場合、BloombergライブラリはUTCで表示されますが、Excelアドインを使用すると、タイムゾーンがローカルゾーンになります。

ここに画像の説明を入力してください

于 2012-08-23T14:28:30.297 に答える
1

あなたはすでにこれを解決したかもしれませんが、あなたはあなたの時代のタイムゾーンに注意する必要があります。

ブルームバーグの日中の時間はすべてGMTです-これはどこかのドキュメントに記載されていると思います。"IntradayBarRequest"これはとの両方に適用され"IntradayTickRequest"ます。

Nbこれは、ローカルタイムゾーン(ブルームバーグターミナルで設定されている)を使用するライブデータのサブスクリプション(Subscriptionおよびを使用するなど)とは異なります。Sessionつまり、もちろん、オーバーライドを使用しない限りです"useGMT"

于 2012-08-24T18:19:45.577 に答える