Bloomberg C # API - Как вызывать BDP с разными параметрами / Полями - PullRequest
2 голосов
/ 17 августа 2011

Я пытаюсь перейти с надстройки Excel на Bloomberg C # Desktop API. Для простых вызовов, таких как BDP («AB IB Equity», «best_analyst_rating»), я могу без проблем использовать что-то вроде этого:

    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 ("AB IB Equity", "bs_tot_asset", "EQY_Consolidated", "Y", "EQY_FUND_Relative_Period", "- 0FY") Я понятия не имею, как перевести его на вызовы C #. Ценю любую помощь по этому вопросу.

Ответы [ 2 ]

6 голосов
/ 18 августа 2011

Вам необходимо установить переопределения.Для любого данного поля вы можете найти их, используя FLDS в терминале Bloomberg.

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

Затем выполните цикл необходимых переопределений, задав для FieldId мнемонику из FLDS и значение для вашего конкретного запроса:

Element override = overrides.AppendElement();
override.SetElement("fieldId","EQY_CONSOLIDATED");
override.SetElement("value","Y");
1 голос
/ 06 июля 2013

Я создал метод расширения для этого:

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