Ссылки индикаторных индикаторов в TTR (R пакет): лучший способ выровнять выходной выход налево?

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

  •  16-11-2019
  •  | 
  •  

Вопрос

Я использую пакет TTR для генерации индикаторов фондовых индикатов. Тем не менее, функции индикатора добавляют Na (где применимо - например, CMO, SMA, CMF и т. Д.) К началу серии вместо конца. Есть ли способ выровнять выходные данные влево, чтобы значения 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
.

Package Package имеет опцию «Выровнять», чтобы подумать серию с 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] является ценой акции сегодня и х [10] цена 10-дн. Назад, не должна скользящая средняя (Span= 2) для сегодня в среднем сегодня + вчера? Столько, сколько я хотел бы добавить NAS в конце, я также хотел бы убедиться, что я не ошибеюсь, как используются эти индикаторы.

Спасибо, -Е

Это было полезно?

Решение

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