Indicatori stock Calcoli in TTR (pacchetto R): miglior modo per allineare l'uscita a sinistra?

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

  •  16-11-2019
  •  | 
  •  

Domanda

Sto usando il pacchetto TTR per generare indicatori azionari. Tuttavia, le funzioni dell'indicatore aggiungono NA (ove applicabile - E.G. CMO, SMA, CMF, ecc.) All'inizio della serie anziché della fine. C'è un modo per allineare l'uscita a sinistra in modo che i valori NA siano aggiunti alla fine della serie anziché all'inizio?

Ad esempio:

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
.

Il pacchetto Zoo ha un'opzione di allineamento per rimuovere la serie con NAS alla fine:

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
.

C'è un modo per specificare qualcosa come questo in TTR come ho bisogno di generare indicatori oltre le medie mobili? Immagino di poter creare un wrapper attorno a queste funzioni e spostare manualmente i valori risultanti ma non sono sicuro se c'è un modo migliore per farlo.

Inoltre, poiché il TTR è fortemente utilizzato per aggiungere indicatori ai prezzi delle azioni, mi chiedo perché l'imbottitura è all'inizio contrariamente alla fine soprattutto dal momento che la maggior parte dei prezzi storici ordinata in ordine decrescente (per data)? Nell'esempio sopra, se x [1] è il prezzo di un magazzino oggi e x [10] il prezzo 10 giorni fa, non dovrebbe la media mobile (span= 2) per oggi il media di oggi + ieri? Per quanto mi piacerebbe aggiungere Nas alla fine, vorrei anche assicurarmi di non interpretare male come vengono utilizzati questi indicatori.

Grazie, -e

È stato utile?

Soluzione

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top