【问题标题】:Bloomberg C# API - How to Call BDP with different options/FieldsBloomberg C# API - 如何使用不同的选项/字段调用 BDP
【发布时间】:2011-08-17 03:57:18
【问题描述】:

我正在尝试从 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# 调用。感谢您对此的任何帮助。

【问题讨论】:

    标签: bloomberg


    【解决方案1】:

    您需要设置覆盖。对于任何给定的字段,您都可以使用 Bloomberg 终端中的 FLDS 找到这些字段。

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

    然后遍历必要的覆盖,将 fieldId 设置为 FLDS 中的助记符,并将值设置为您的特定请求:

    Element override = overrides.AppendElement();
    override.SetElement("fieldId","EQY_CONSOLIDATED");
    override.SetElement("value","Y");
    

    【讨论】:

    • 仅供任何发现此内容的人参考——确保正确大写 SetElement
    【解决方案2】:

    我为此创建了一个扩展方法:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      • 1970-01-01
      相关资源
      最近更新 更多