2012-11-23 2 views
4

(n x m) xts 오브젝트의 리턴을 계산하는 가장 직접적인 방법은 무엇입니까?여러 열이있는 xts 오브젝트의 리턴 계산

quantmod 함수 dailyReturn에 (nx m) xts 객체 mxts을 입력하면 반환 값은 첫 번째 열의 반환 값을 나타내는 (nx1) 벡터입니다. 내가 찾고있는 것은 mxts의 각 열에 대한 각각의 반환 벡터를 포함하는 (n x m) xts 객체를 생성하는 방법입니다.

dailyReturn을 "매일 colnames 벡터의 값을 변경 (I는

lapply(mxts,dailyReturn) 

같이 적용 기능들과 함께 작업을 시도했지만 수익은 항상 잘못된 유형을했고 자신의 라벨을 잃었다. 보고").

쉽게 달성 할 수있는 해킹 방법이 있습니까? 이 문제에 대해 잘못된 함수를 사용하고 있습니까?

+0

내가 여호수아의'TTR :: ROC'을 선호하지만,이'do.call 시도 (lapply cbind을, (mxts, dailyReturn)) ROC'는 기본적으로 로그 수익률을 계산하지만 호출 할 수있는 '것을' – GSee

답변

3

이 작업을 수행 할 TTR 패키지의 ROC 기능,하지만 당신은 쉽게 자신을 (ROC 내부적으로 무엇 인) lag를 사용하여 계산을 할 수 있습니다.

R> require(quantmod) # loads TTR 
R> getSymbols("SPY") 
R> head(ROC(OHLC(SPY))) 
       SPY.Open  SPY.High  SPY.Low  SPY.Close 
2007-01-03   NA   NA   NA   NA 
2007-01-04 -0.0071963059 -5.686021e-03 0.0002845153 0.0021198425 
2007-01-05 0.0007078143 -4.586355e-03 -0.0016370693 -0.0080082636 
2007-01-08 -0.0036151023 7.071886e-05 -0.0009264869 0.0046143553 
2007-01-09 0.0034735795 1.342709e-03 0.0010689472 -0.0008502799 
2007-01-10 -0.0051793368 -2.118869e-04 -0.0007125045 0.0033261416 
+2

노트 'type = 'discrete''을 사용하면'dailyReturn'과 같은 결과를 얻을 수 있습니다. – GSee

+0

감사합니다. – Julian