2011-08-17 10 views
2

ExcelアドインからBloomberg C#Desktop APIに移行しようとしています。Bloomberg C#API - さまざまなオプション/フィールドでBDPを呼び出す方法

private void sendRefDataRequest(Session session) 
    {    
     Service refDataService = session.GetService("//blp/refdata"); 
     Request request = refDataService.CreateRequest("ReferenceDataRequest"); 

     // Add securities to request 
     Element securities = request.GetElement("securities"); 
     securities.AppendValue("AB IB Equity"); 
     Element fields = request.GetElement("fields"); 
     fields.AppendValue("best_analyst_rating"); 
     System.Console.WriteLine("Sending Request: " + request); 
     session.SendRequest(request, null); 
    } 

しかし BDP(のようなBDPへの追加オプションを含むより複雑な呼び出し」のため:BDPのような単純なコール(「AB IBエクイティ」、「best_analyst_rating」)私はこのようなものを使用して問題なく行うことができる午前の場合AB IB Equity "、" bs_tot_asset "、" EQY_Consolidated "、" Y "、" EQY_FUND_Relative_Period "、" - 0FY ")私はC#呼び出しにどのように変換するかを知りません。これに関する助けを感謝します。

答えて

6

オーバーライドを設定する必要があります。任意のフィールドに対して、BloombergターミナルでFLDSを使用してこれらを見つけることができます。

Element overrides = request.GetElement("overrides"); 

その後必要に応じて上書きループスルー、FLDSからニーモニックのフィールド識別子とあなたの特定の要求に値を設定する:

public static void AddOverride(this Bloomberglp.Blpapi.Request request, string fieldId, string fieldValue) 
{ 
    var override = request["overrides"].AppendElement(); 
    override.SetElement("fieldId",fieldId); 
    override.SetElement("value", fieldValue); 
} 
:私は、このための拡張メソッドを作成し
Element override = overrides.AppendElement(); 
override.SetElement("fieldId","EQY_CONSOLIDATED"); 
override.SetElement("value","Y"); 
+0

ありがとうございます。それはまさに私が望んでいたもので、完璧に機能しました! – Ramya

+1

これを見つけた人にはちょうどfyiです。SetElementを正しく大文字にしてください – AnotherParker

関連する問題