2

在 Bloomberg API 开发人员指南中,它写道:

安全查找 [...] 请求基于“查询”元素的字符串值以及您设置的附加过滤器 [...] 构建搜索。使用SECF < GO >功能也可以在 Bloomberg Professional 服务上找到此功能。

这是一个查询 IBM 的简单代码片段(C++,而我实际上是针对 Java):

Service secfService = session.getService("//blp/instruments");
Request request = secfService.createRequest("instrumentListRequest");
request.asElement().setElement("query", "IBM");
request.asElement().setElement("yellowKeyFilter", "YK_FILTER_CORP");
request.asElement().setElement("languageOverride", "LANG_OVERRIDE_NONE");
request.asElement().setElement("maxResults", 10);
sendRequest(request, session);

使用该SECF功能,我可以设置许多其他过滤器,例如交易所,居住国家(也映射在FLDS功能屏幕中)。

当我通过("exchCode", "US")时,我得到一个错误。

com.bloomberglp.blpapi.NotFoundException:元素:exchCode 未在:InstrumentListRequest

(我也试过EXCH_CODE

如何将SECF过滤器传递给request对象?

4

1 回答 1

4

这是转储 InstrumentListRequest 架构的 Python 代码片段。可能是一些语言翻译差异,但它是相同的底层 API。
遗憾的是,您似乎无法按照自己想要的方式制定查询。

>>> print(instrreq.asElement().elementDefinition().toString())
ELEMENT InstrumentListRequest {
DESCRIPTION 
MIN VALUES 0
MAX VALUES 1
TYPE InstrumentListRequest (SEQUENCE) {
    DESCRIPTION Instrument list request
    ELEMENT query {
        DESCRIPTION String with keywords
        MIN VALUES 0
        MAX VALUES 1
        TYPE STRING
    }
    ELEMENT yellowKeyFilter {
        DESCRIPTION Yellow key filter
        MIN VALUES 0
        MAX VALUES 1
        TYPE YellowKeyFilter(ENUMERATION) {
            DESCRIPTION 
            YellowKeyFilter(STRING) {
                YK_FILTER_NONE
                YK_FILTER_CMDT
                YK_FILTER_EQTY
                YK_FILTER_MUNI
                YK_FILTER_PRFD
                YK_FILTER_CLNT
                YK_FILTER_MMKT
                YK_FILTER_GOVT
                YK_FILTER_CORP
                YK_FILTER_INDX
                YK_FILTER_CURR
                YK_FILTER_MTGE
            }
        }
    }
    ELEMENT languageOverride {
        DESCRIPTION Language override
        MIN VALUES 0
        MAX VALUES 1
        TYPE LanguageOverride(ENUMERATION) {
            DESCRIPTION 
            LanguageOverride(STRING) {
                LANG_OVERRIDE_NONE
                LANG_OVERRIDE_ENGLISH
                LANG_OVERRIDE_KANJI
                LANG_OVERRIDE_FRENCH
                LANG_OVERRIDE_GERMAN
                LANG_OVERRIDE_SPANISH
                LANG_OVERRIDE_PORTUGUESE
                LANG_OVERRIDE_ITALIAN
                LANG_OVERRIDE_CHINESE_TRAD
                LANG_OVERRIDE_KOREAN
                LANG_OVERRIDE_CHINESE_SIMP
                LANG_OVERRIDE_NONE_1
                LANG_OVERRIDE_NONE_2
                LANG_OVERRIDE_NONE_3
                LANG_OVERRIDE_NONE_4
                LANG_OVERRIDE_NONE_5
                LANG_OVERRIDE_RUSSIAN
            }
        }
    }
    ELEMENT maxResults {
        DESCRIPTION Number of results requested
        MIN VALUES 0
        MAX VALUES 1
        TYPE INT32
    }
}
于 2016-03-30T04:27:08.140 回答