Wednesday 7 November 2018

Python médio móvel ponderado


Eu tenho dados amostrados em intervalos essencialmente aleatórios. Gostaria de calcular uma média móvel ponderada usando numpy (ou outro pacote de python). Eu tenho uma implementação grosseira de uma média móvel, mas estou tendo problemas para encontrar uma boa maneira de fazer uma média móvel ponderada, de modo que os valores para o centro da lixeira sejam mais ponderados do que os valores para as bordas. Aqui eu gerar alguns dados de amostra e, em seguida, tomar uma média móvel. Como posso implementar mais facilmente uma média móvel ponderada Obrigado Usando o conselho da crs17 para usar pesos na função np. average, eu encontrei uma função média ponderada, que usa uma função gaussiana para pesar os dados: eu tenho um intervalo de datas e Uma medida em cada uma dessas datas. Eu gosto de calcular uma média móvel exponencial para cada uma das datas. Alguém sabe como fazer isso, eu sou novo no python. Não parece que as médias estejam incorporadas na biblioteca padrão de python, o que me parece um pouco estranho. Talvez eu não esteja olhando no lugar certo. Assim, dado o código a seguir, como eu poderia calcular a média ponderada em movimento de pontos de QI para datas de calendário (provavelmente há uma maneira melhor de estruturar os dados, todos os conselhos seriam apreciados) perguntou janeiro 28 09 às 18:01 Meu python é um Um pouco enferrujado (qualquer pessoa pode se sentir livre para editar este código para fazer correções, se Ive estragar a sintaxe de alguma forma), mas aqui vai. Esta função move-se para trás, do final da lista para o início, calculando a média móvel exponencial para cada valor, trabalhando para trás até que o coeficiente de peso de um elemento seja menor do que o dado epsilon. No final da função, inverte os valores antes de retornar a lista (para que eles estejam na ordem correta para o chamador). (NOTA LATERAL: se eu estivesse usando um idioma diferente de Python, Id crie uma matriz vazia de tamanho completo primeiro e depois preencha-a para trás, de modo que eu não precisaria reverter no final. Mas eu não acho que você possa declarar Uma grande disposição vazia no python. E nas listas de python, acrescentar é muito menos dispendioso do que prepender, razão pela qual eu construí a lista na ordem inversa. Por favor, corrija-me se eu estiver errado.) O argumento alfa é o fator de decaimento em cada iteração. Por exemplo, se você usou um alfa de 0,5, o valor médio móvel de hoje seria composto pelos seguintes valores ponderados: Claro, se você tiver uma enorme variedade de valores, os valores de dez ou quinze dias não contribuirão muito para Média ponderada de hoje. O argumento epsilon permite que você defina um ponto de corte, abaixo do qual você deixará de se preocupar com valores antigos (já que sua contribuição para o valor de hoje será insignificante). Você invocou a função algo assim: respondeu Jan 28 09 às 18:46 Eu não conheço o Python, mas para a parte de média, você quer dizer um filtro de passagem baixa exponencialmente decadente da forma em que o dttau alfa, o tempo do filtro , Tau a constante de tempo do filtro (a forma variável-timestep é a seguinte, basta digitar o dttau para não ser superior a 1,0) Se você deseja filtrar algo como uma data, certifique-se de converter uma quantidade de ponto flutuante Como de segundos desde 1 de janeiro de 1970. respondeu Jan 28 09 às 18:10 Achei o trecho de código acima por earino muito útil - mas eu precisava de algo que poderia suavizar continuamente um fluxo de valores - então eu refatorei isso para isso: e eu uso Como isto: (onde pin. read () produz o próximo valor que a Id gostaria de consumir). Respondeu 12 de fevereiro às 20:35 Estou sempre calculando EMAs com Pandas: Aqui está um exemplo de como fazê-lo: Mais informações sobre Pandas EWMA: respondidas em 4 de outubro às 12:42 Don39t versões mais recentes de pandas têm novas e melhores funções. Ndash Cristian Ciupitu 11 de maio 16 às 14:10 Note que, ao contrário de sua planilha, não calculo o SMA, e não espero para gerar o EMA após 10 amostras. Isso significa que meus valores diferem um pouco, mas se você apresentá-lo, segue exatamente após 10 amostras. Durante as primeiras 10 amostras, o EMA I calculado é adequadamente suavizado. Indicadores técnicos 0.0.15 Este módulo fornece alguns indicadores técnicos para analisar estoques. Este módulo fornece alguns indicadores técnicos para analisar estoques. Quando puder, vou adicionar mais. Se alguém quiser contribuir com novos códigos ou sugestões de correções, sinta-se livre. Índice de Força Relativa (RSI), ROC, Envelopes MA Média de Movimento Simples (SMA), Média de Movimento Ponderada (WMA), Bandas de Bollinger da Média Mover Exponencial (EMA) (BB), Largura de Banda de Bollinger, B requer numpy. Este módulo foi feito e testado no Windows com o Python 2.7.3 e numpy 1.6.1.

No comments:

Post a Comment