Bloomberg C # API - Как вызвать BDP с разными параметрами / полями

Я пытаюсь перейти с надстройки 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 # звонки. Благодарим за любую помощь в этом вопросе.


person Ramya    schedule 17.08.2011    source источник


Ответы (2)


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

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

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

Element override = overrides.AppendElement();
override.SetElement("fieldId","EQY_CONSOLIDATED");
override.SetElement("value","Y");
person amaidment    schedule 17.08.2011
comment
просто fyi для всех, кто найдет это - убедитесь, что вы правильно написали SetElement с заглавной буквы - person AnotherParker; 21.12.2012

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

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);
}
person ytoledano    schedule 06.07.2013