2016-08-26 3 views
0

blpapi를 사용하여 특정 증권의 특정 필드를 요청하는 Java 코드가 있습니다. 내 코드가 잘 돌아갑니다. 그러나 현재 코드에서 다루지 않는 경우를 생각해 보았습니다.몇 가지 필드 중 하나를 찾을 수 없을 때 블룸버그의 반응은 무엇입니까?

예를 들어 특정 보안을 위해 'CUR_MKT_CAP', 'PX_LAST'및 'EQY_SH_OUT'을 (를) 요청하고 있습니다. 블룸버그가 '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 
      } 
     } 
    } } 

기본적으로 나는 필요한 필드 중 하나가 블룸버그에 의해 제공되지 않으면 어떻게 처리해야하는지 알고 싶다.

답변

1

필드가 데이터를 반환하지 않으면 fieldData 요소에서 생략됩니다. 필드의 아무도 데이터를 반환하지 않으면, fieldData이 비어있을 것입니다 :

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

쉽게 MSFT US Equity/YAS_BOND_YLD를 사용하여 예를 들어,이 테스트 할 수 있습니다.

+0

내가 언급 한 예제를 사용하여 테스트했습니다. 코멘트로 너무 길었 기 때문에 내가 방금 대답으로 올린 응답을 나에게 주었다. =) 그러나 3 개 필드 중 블룸버그가 응답으로 제공 한 필드가 2 개 밖에 없다고 테스트 할 수 있습니까? – Krish

+0

@Krish 답변에 YAS_BOND_YLD를 보안 (따라서 오류)으로 사용한 것 같습니다. *** *** 보안 *** MS *** US Equity에 대해 *** 필드 *** YAS_BOND_YLD를 요청했습니다. 'fieldData []'요소는 존재하지만 비어 있음을 알 수 있습니다. 더 많은 필드를 추가하면 fieldData [] 요소는'fieldData = {date = 2016-08-29; PX_LAST = 58.1; PX_VOLUME = 1.6417207E7}'이고 데이터가없는 필드는 무시됩니다. – assylias

+0

아, 알겠습니다. 나는 그것을 시도하고 여기에 결과를 게시 할 것입니다. 감사합니다 @assylias – Krish

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