TTR (r 패키지)의 주식 지시자 계산 : 출력을 왼쪽으로 맞추는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/5062165

  •  16-11-2019
  •  | 
  •  

문제

TTR 패키지를 사용하여 주식 지표를 생성합니다. 그러나 표시기 기능은 끝 대신 시리즈의 시작 부분에 NA (해당되는 경우)를 추가합니다. 출력을 왼쪽에 정렬하여 NA 값이 시리즈의 끝 부분에 추가 된 것처럼 보입니까?

예 :

library(TTR)    
x = 1:10
# TTR's simple moving average
SMA(x,n=2)
[1]  NA 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5
.

Zoo 패키지는 정렬 옵션이 있으며 끝에 NAS를 사용하여 시리즈를 패드합니다.

library(zoo)
rollmean(x,2,na.pad=TRUE,align='left')
[1] 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5  NA
.

가위 평균을 넘어서 지표를 생성 해야하는 것처럼 TTR 에서이 같은 것을 지정하는 방법이 있습니까? 이 기능을 둘러싼 래퍼를 만들고 결과 값을 수동으로 이동할 수 있지만 더 좋은 방법이 있는지 확실하지는 않습니다.

또한 TTR은 주가에 지표를 추가하는 데 크게 사용되므로, 대부분의 역사적 가격이 특히 대부분의 역사적 가격이 주어진 순서 (날짜별로)로 분류 된 이후로 반대하는 것과는 궁극적 인 것입니다. 위의 예에서 x [1]이 오늘 주식의 가격과 x [10] 10 일 전에 가격이 10 일 전에 에 대한 이동 평균 (SPAN= 2)을해서는 안됩니다 오늘 + 어제의 평균? 마지막에 NAS를 추가하고 싶습니다.이 표시기가 사용되는 방법을 잘못 해석하지 않도록하십시오.

고마워, -e

도움이 되었습니까?

해결책

I couldn't figure out an option in the function call to shift the series in a different direction. However, now I understand why TTR shifts the series downwards. Historical stock prices obtained via quantmod's getSymbols() returns them sorted by date in ascending order. When I manually download the quotes from Yahoo! or use ystockquote.py, the order is descending. I just re-sorted my data by date and used the TTR library as-is.

There were certain vectors that I wanted to be shifted up (padded with NAs) and I just used this code:

miss_len = length(x[is.na(x])
x = x[!is.na(x)]
length(x) = length(x) + miss_len
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top