0

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

比如说,我正在为特定证券请求“CUR_MKT_CAP”、“PX_LAST”和“EQY_SH_OUT”。如果 Bloomberg 没有 'PX_LAST' 的值怎么办?到时候布隆伯格会给我什么?(a) 它会给我一个 PX_LAST = 0 的字段元素吗?(b) 它会给我一个 PX_LAST = NULL 的字段 Element 吗?(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
            }
        }
    } }

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

4

3 回答 3

1

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

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

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

于 2016-08-26T08:45:08.810 回答
0

我使用@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
        }
    }
}
于 2016-08-31T06:40:31.307 回答
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

于 2016-09-01T10:12:26.440 回答