当找不到几个字段之一时,彭博社的反应是什么?

What is bloomberg's response when one of a few fields is not found?

我有一个 Java 代码,它使用 blpapi 来请求特定证券的特定字段。我的代码现在运行良好。但是,我想到了一个案例,我现在的代码没有处理。

例如,我请求 '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
            }
        }
    } }

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

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

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

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

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

MSFT 美国股票

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

根据@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