Расчеты индикатора запаса в TTR (пакет R): Лучший способ выровнять выход влево? - PullRequest
1 голос
/ 21 февраля 2011

Я использую пакет 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

пакет зоопарка имеет опцию выравнивания, чтобы дополнить серию NA в конце:

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 дней назад, не должно ли скользящее среднее значение (span = 2) для сегодня среднегосегодня + вчера?Как бы я ни хотел добавить NA в конце, я также хотел бы удостовериться, что я не неправильно понимаю, как используются эти индикаторы.

Спасибо, -e

1 Ответ

1 голос
/ 02 марта 2011

Я не смог найти опцию в вызове функции для смещения ряда в другом направлении.Однако теперь я понимаю, почему TTR сдвигает серию вниз.Исторические цены акций, полученные с помощью getSymbols () от Quantmod, возвращают их отсортированные по дате в порядке возрастания.Когда я вручную загружаю цитаты из Yahoo!или используйте ystockquote.py, порядок по убыванию.Я просто пересортировал свои данные по дате и использовал библиотеку TTR как есть.

Были определенные векторы, которые я хотел сдвинуть вверх (дополненные NA), и я просто использовал этот код:

miss_len = length(x[is.na(x])
x = x[!is.na(x)]
length(x) = length(x) + miss_len
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...