2017-05-17 3 views
0

일부 수익률 차이를 계산하기 위해 Bloomberg에서 FX Forward 포인트 데이터를 다운로드하려고합니다. 그렇게하기 위해서 나는 포워드 포인트가 책정되는 가치 일자와 결산일 사이의 일수 (예 : 테너)를 낮추어야합니다. 나는 아래에서와 같이 노력하고 있지만 이것은 작동하지 않으며 NA를 반환하지 않습니다. poinst이 보이고있다지만 :Rblpapi R Bloomberg 데이터 다운로드

require(Rblpapi) 
blpConnect() 
bdh("AUD1M Curncy",field=c("PX_MID","DAYS_TO_MTY"),start.date=as.Date("2017-05-01")) 


     date    PX_MID DAYS_TO_MTY 
1 2017-05-01 -4.505000000000000   NA 
2 2017-05-02 -4.350000000000000   NA 
3 2017-05-03 -4.150000000000000   NA 
4 2017-05-04 -4.210000000000000   NA 
5 2017-05-05 -4.257000000000000   NA 
6 2017-05-08 -4.710000000000000   NA 
7 2017-05-09 -4.930000000000000   NA 
8 2017-05-10 -4.800000000000000   NA 
9 2017-05-11 -4.505000000000000   NA 
10 2017-05-12 -4.500000000000000   NA 
11 2017-05-15 -4.855000000000000   NA 
12 2017-05-16 -4.525000000000000   NA 
13 2017-05-17 -4.403000000000000   NA 

가 지금은 당신이 BDH를 사용하여 테너를 다운로드 할 수 없습니다 블룸버그와의 갈라진 금이 아니라 것을 말씀 드리 지요 엑셀 BDP 공식을 사용하여이를 수행 할 수 있지만 가능하다. 다음과 같이 따라서 나는 루프를 코딩 한 : 여기

mydates <- c("20170510,"20170511,"20170512,."20170515","20170516 
for(i in 1:length(mydates)){print(as.numeric(bdp("AUD1M Curncy",c("PX_BID","DAYS_TO_MTY"),overrides=c("Reference Date"=mydates[i]))))} 

ANSD는

[1] -4.49 32.00 
[1] -4.49 31.00 
[1] -4.49 31.00 
[1] -4.49 33.00 
[1] -4.49 32.00 

내 문제는 일 할 Thgough 내가 기준 날짜를 오버라이드 (override) 할 때 PX_MID이 미상의 주 변화 값이다 인쇄 (있는 그대로 그들은해야). 내 다른 문제는 그것이 가장 어려운 코드 줄입니다 ... 나는 [mydate]에있는 많은 쿼리를 수행해야하므로 오래 걸립니다.

위의 쿼리를 한 번에 다운로드하거나 더 효율적으로 코딩 할 수있는 방법이 있습니까?

도움을 주시면 감사하겠습니다.

종류는

피에르

+0

문제 티켓의 GitHub 레포에서 우리에게 질문하지 않았습니까? –

+0

죄송합니다. Dirk, 방금 더 광범위한 잠재 고객을 확보하려고합니다. 나는 "예의"를 침해하지 않기를 바랍니다. – user3690243

+0

캐스팅을 넓히면 아무런 문제가 없지만 적어도 이전의 시도를 참조하십시오. _fairly 포괄적 인 답변 이미 주어졌다. 간단히 말해서 블룸버그 터미널에서 F1을 누르는 데 도움이 될 수 있습니다. –

답변

1

내 생각 엔 필드 PX_BIDREFERENCE_DATE 무시 DAYS_TO_MTY가하는 필드 반면 을 지원하지 않는다는 것입니다 간주한다. 블룸버그 터미널에서 FLDS 명령을 보면 이 DAYS_TO_MTY과 함께 표시되지만 PX_BID으로 표시되지 않는 REFERENCE_DATE이 표시 될 수 있습니다. 더크 (Dirk)가 코멘트 에서 지적했듯이 이것을 확인하는 가장 좋은 방법은 터미널의 도움을받는 것입니다.

성능 문제와 관련하여이 쿼리 유형이 인 방식은 여러 요청을 보내고 여러 응답을받는 것입니다. 응답을 보면이 사실을 알 수 있습니다.

mydates <- c("20170510","20170511","20170512") 
for(i in 1:length(mydates)){ 
    print(as.numeric(bdp("AUD1M Curncy",c("PX_BID","DAYS_TO_MTY"), 
         overrides=c("REFERENCE_DATE"=mydates[i]), 
         verbose=TRUE))) 
} 

ReferenceDataResponse = { 
    securityData[] = { 
     securityData = { 
      security = "AUD1M Curncy" 
      eidData[] = { 
      } 
      fieldExceptions[] = { 
      } 
      sequenceNumber = 0 
      fieldData = { 
       PX_BID = -4.180000 
       DAYS_TO_MTY = 32 
      } 
     } 
    } 
} 
[1] -4.18 32.00 
ReferenceDataResponse = { 
    securityData[] = { 
     securityData = { 
      security = "AUD1M Curncy" 
      eidData[] = { 
      } 
      fieldExceptions[] = { 
      } 
      sequenceNumber = 0 
      fieldData = { 
       PX_BID = -4.180000 
       DAYS_TO_MTY = 31 
      } 
     } 
    } 
} 
[1] -4.18 31.00 
ReferenceDataResponse = { 
    securityData[] = { 
     securityData = { 
      security = "AUD1M Curncy" 
      eidData[] = { 
      } 
      fieldExceptions[] = { 
      } 
      sequenceNumber = 0 
      fieldData = { 
       PX_BID = -4.180000 
       DAYS_TO_MTY = 31 
      } 
     } 
    } 
} 
[1] -4.18 31.00 

나는 모든 블룸버그 여기서 뭐하는 DAYS_TO_MTY을 구성하기 위해 국내 (예를 들어, 호주)와 외국 (예를 들어, 미국) 휴일 캘린더를 사용하고 생각합니다. 휴일과 주말로 인해 변동합니다. 따라서이 방법을 사용하는 한 가지 방법은 내부적으로 논리를 복제하고 Bloomberg를 전혀 사용하지 않는 일 것입니다. 이것은 또한 데이터 제한을 제한하지 않는 이점이 있습니다. 이러한 유형의 쿼리의 불행한 부작용이 생각납니다.

+0

감사합니다. 매우, detailled 및 간결한 대답. 나는 당신이 이것을 들여다 보았던 때가 감사합니다. 이것은 나에게 그리고 다른 사람들에게 도움이된다. – user3690243

+0

다행이라면 @ user3690243에게 도움이됩니다. 귀하의 초보자부터 https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work을 확인해보십시오. – mgilbert