Calculs de l'indicateur de stock en TTR (Package R): meilleur moyen d'aligner la sortie à gauche?

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

  •  16-11-2019
  •  | 
  •  

Question

J'utilise le paquet TTR pour générer des indicateurs de stock. Cependant, les fonctions indicatrices ajoutent NA (le cas échéant - par exemple cmo, SMA, CMF, etc.) au début de la série au lieu de la fin. Existe-t-il un moyen d'aligner la sortie à gauche afin que les valeurs NA soient ajoutées à la fin de la série par opposition au début?

Par exemple:

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

Le paquet de zoo a une option d'alignement de la série avec NAS à la fin:

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

Y a-t-il un moyen de spécifier quelque chose comme celui-ci dans TTR, car je dois générer des indicateurs au-delà des moyennes mobiles? Je suppose que je peux créer une enveloppe autour de ces fonctions et déplacer manuellement les valeurs résultantes, mais pas sûr que s'il y a un meilleur moyen de le faire.

En outre, puisque TTR est fortement utilisé pour ajouter des indicateurs aux prix des actions, je me demande pourquoi le rembourrage est au début par opposition à la fin, notamment depuis la plupart des prix historiques comme triés par ordre décroissant (par date)? Dans l'exemple ci-dessus, si x [1] est le prix d'un stock d'aujourd'hui et x [10] Le prix il y a 10 jours, ne devriez pas la moyenne mobile (span= 2) pour aujourd'hui le moyenne d'aujourd'hui + hier? Autant que je voudrais ajouter NAS à la fin, je voudrais également m'assurer que je ne suis pas interprété par la manière dont ces indicateurs sont utilisés.

merci, -e

Était-ce utile?

La solution

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top