我正在尝试从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#调用。感谢任何帮助。
答案 0 :(得分:6)
您需要设置覆盖。对于任何给定的字段,您可以在Bloomberg终端中使用FLDS找到它们。
Element overrides = request.GetElement("overrides");
然后遍历必要的覆盖,将fieldId设置为FLDS的助记符,并将值设置为您的特定请求:
Element override = overrides.AppendElement();
override.SetElement("fieldId","EQY_CONSOLIDATED");
override.SetElement("value","Y");
答案 1 :(得分:1)
我为此创建了一个扩展方法:
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);
}