当找不到几个字段之一时,彭博社的反应是什么?
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
我有一个 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