我有一个使用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
}
}
} }
基本上,我只想知道如果彭博没有提供我需要的其中一个字段,我应该如何处理。
答案 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