当没有找到几个字段中的一个时,bloomberg的响应是什么?

时间:2016-08-26 03:10:54

标签: bloomberg blpapi

我有一个使用blpapi来请求特定证券的特定字段的Java代码。我的代码运行正常。但是,我想到了一个当前代码没有处理的案例。

比如说,我正在为特定安全性请求'CUR_MKT_CAP','PX_LAST'和'EQY_SH_OUT'。如果Bloomberg没有“PX_LAST”的价值怎么办?彭博会给我什么呢? (a)它会给我一个字段元素,其中PX_LAST = 0? (b)它会给我一个字段元素,其中PX_LAST = NULL? (c)不会将PX_LAST包含在我收到的回复中吗?因此,响应看起来像这样吗?

HistoricalDataResponse (choice) = {
    securityData = {
        security = XXXXX Equity
        sequenceNumber = 0
        fieldData[] = {
            fieldData = {
                date = YYYY-MM-DD
                CUR_MKT_CAP = XX.XXXX
                EQY_SH_OUT = XX.XXXX
            }
        }
    } }

基本上,我只想知道如果彭博没有提供我需要的其中一个字段,我应该如何处理。

3 个答案:

答案 0 :(得分:1)

你是对的,如果一个字段没有返回数据,它将从fieldData元素中省略。如果没有字段返回数据,则fieldData将为空:

ReferenceDataResponse = {
    securityData[] = {
        securityData = {
            security = "MSFT US Equity"
            eidData[] = {
            }
            fieldExceptions[] = {
            }
            sequenceNumber = 0
            fieldData = {
            }
        }
    }
}

您可以轻松地对此进行测试,例如使用MSFT US Equity / YAS_BOND_YLD

答案 1 :(得分:0)

我使用@ assylias的答案测试了它。它给了我以下结果。

MSFT US Equity

HistoricalDataResponse (choice) = {
    securityData = {
        security = MSFT US Equity
        sequenceNumber = 0
    }
}

YAS_BOND_YLD

HistoricalDataResponse (choice) = {
    securityData = {
        security = YAS_BOND_YLD
        sequenceNumber = 0
        securityError = {
            source = 500::bbdbh5
            code = 15
            category = BAD_SEC
            message = Unknown/Invalid securityInvalid Security [nid:500] 
            subcategory = INVALID_SECURITY
        }
    }
}

答案 2 :(得分:0)

根据@assylias评论,我使用YAS_BOND_YLD作为字段。 blpapi回复了以下内容作为回应。

我对请求的输入:

Ticker: XXX XX Equity Start/End Date: 20160818 Fields: CUR_MKT_CAP YAS_BOND_YLD PX_LAST EQY_SH_OUT

BLPAPI的回应是,

HistoricalDataResponse (choice) = {
    securityData = {
        security = XXX XX Equity
        sequenceNumber = 0
        fieldData[] = {
            fieldData = {
                date = 2016-08-18
                CUR_MKT_CAP = 117.7144
                PX_LAST = 1.06
                EQY_SH_OUT = 111.051
            }
        }
    }
}

注意:我故意将自动收报机更改为XXX XX。 = d