Cálculos de indicadores de estoque no TTR (pacote R):Melhor maneira de alinhar a saída à esquerda?

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

  •  16-11-2019
  •  | 
  •  

Pergunta

Estou usando o pacote TTR para gerar indicadores de ações.No entanto, as funções do indicador adicionam NA (quando aplicável – por exemploCMO, SMA, CMF, etc.) para o início da série em vez do final.Existe uma maneira de alinhar a saída à esquerda para que os valores NA sejam adicionados ao final da série e não ao início?

Por exemplo:

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

O pacote zoo tem uma opção de alinhamento para preencher a série com NAs no final:

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

Existe uma maneira de especificar algo assim no TTR, pois preciso gerar indicadores além das médias móveis?Acho que posso criar um wrapper em torno dessas funções e mudar manualmente os valores resultantes, mas não tenho certeza se existe uma maneira melhor de fazer isso.

Além disso, como o TTR é muito usado para adicionar indicadores aos preços das ações, estou me perguntando por que o preenchimento está no início e não no final, especialmente porque a maioria dos preços históricos está classificada em ordem decrescente (por data).No exemplo acima, se x[1] é o preço de uma ação hoje e x[10] o preço de 10 dias atrás, a média móvel (span = 2) de hoje a média de hoje + ontem?Por mais que eu queira acrescentar NAs no final, também gostaria de ter certeza de que não estou interpretando mal a forma como esses indicadores são usados.

Obrigado, -e

Foi útil?

Solução

Não consegui descobrir uma opção na chamada de função para mudar a série em uma direção diferente.No entanto, agora entendo porque o TTR desloca a série para baixo.Os preços históricos das ações obtidos por meio de getSymbols() do quantmod os retornam classificados por data em ordem crescente.Quando baixo manualmente as cotações do Yahoo!ou use ystockquote.py, a ordem é decrescente.Acabei de reclassificar meus dados por data e usei a biblioteca TTR como estão.

Havia certos vetores que eu queria que fossem deslocados (preenchidos com NAs) e apenas usei este código:

miss_len = length(x[is.na(x])
x = x[!is.na(x)]
length(x) = length(x) + miss_len
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top