Compute Moving Average Python
Digamos que eu tenho uma lista: eu quero criar uma função que calcula a média móvel do n-dia. Então, se n fosse 5, eu gostaria que meu código calculasse os primeiros 1-5, adicione-o e ache a média, que seria 3.0, então vá para 2-6, calcule a média, que seria 4,0 e depois 3 -7, 4-8, 5-9, 6-10. Eu não quero calcular os primeiros n-1 dias, então a partir do nono dia, isso vai contar os dias anteriores. Isso parece imprimir o que eu quero: no entanto, não sei como calcular os números dentro dessas listas. Todas as idéias foram feitas 14 de fevereiro às 21:05 Enquanto eu gosto da resposta de Martijns sobre isso, como george, eu queria saber se isso não seria mais rápido, usando uma soma em execução ao invés de aplicar a soma () repetidamente na maioria dos mesmos números . Também é interessante a idéia de ter valores Nenhum como padrão durante a fase de aceleração. Na verdade, pode haver muitos cenários diferentes que se poderia imaginar para as médias móveis. Permite dividir o cálculo das médias em três fases: Ramp Up: Iniciando iterações onde a contagem de iteração atual é o tamanho da janela Progresso constante: Temos exatamente tamanho de janela de elementos disponíveis para calcular uma média normal: soma (xiterationcounter-windowsize: iterationcounter) windowsize Ramp Down: No final dos dados de entrada, podemos retornar outro windowsize - 1 números médios. Heres uma função que aceita Iteráveis arbitrários (geradores são finos) como entrada para dados Tamanho de janela arbitrária 1 Parâmetros para ligar fora a produção de valores durante as fases para Ramp Up Down Callback funções para essas fases para controlar como os valores são produzidos. Isso pode ser usado para fornecer constantemente um padrão (por exemplo, Nenhum) ou para fornecer médias parciais. Parece ser um pouco mais rápido que a versão de Martijns - o que é muito mais elegante, no entanto. Heres o código de teste: A questão original agora pode ser resolvida com esta chamada de função: respondida 18 de fevereiro às 18:15 Use as funções de soma e mapa. A função de mapa no Python 3 é basicamente uma versão preguiçosa disso: Tenho certeza de que você pode adivinhar o que a função de soma faz. Respondeu 14 de fevereiro às 21:07 Uma abordagem que evita recomputar somas intermediárias ... faça isso executado (int (v)). então. Retal (runsumlistk - runsumlistk-5) 5) se você forçar para carregar números em uma corda .. Alt sem o global: certifique-se de fazer matemática flutuante mesmo se você inserir valores são inteiros atendidos 14 de fevereiro às 22:04 De fato, uma corrida O algoritmo de soma é mais rápido. Eu já postei uma resposta que comprovava o seu ponto. Não há necessidade de uma variável global aqui. Ndash cfi 18 de fevereiro às 18:16 certo você estava, eu estava tentando muito difícil aviod um explícito para loop. Ndash agentp 19 de fevereiro às 18:37 Há outra solução estendendo uma receita itertools pairwise (). Você pode estender isso para nwise (). O que lhe dá a janela deslizante (e funciona se o iterável é um gerador): Enquanto um custo de instalação relativamente alto para curtos iteráveis, esse custo reduz em impacto, mais longo o conjunto de dados. Isso usa a soma (), mas o código é razoavelmente elegante: respondido 26 de novembro às 14: 59 Médias migratórias: quais são eles, entre os indicadores técnicos mais populares, as médias móveis são usadas para avaliar a direção da tendência atual. Todo o tipo de média móvel (comumente escrito neste tutorial como MA) é um resultado matemático que é calculado pela média de um número de pontos de dados passados. Uma vez determinado, a média resultante é então plotada em um gráfico para permitir que os comerciantes vejam os dados suavizados, em vez de se concentrar nas flutuações de preços do dia a dia que são inerentes a todos os mercados financeiros. A forma mais simples de uma média móvel, apropriadamente conhecida como média móvel simples (SMA), é calculada tomando a média aritmética de um determinado conjunto de valores. Por exemplo, para calcular uma média móvel básica de 10 dias, você adicionaria os preços de fechamento dos últimos 10 dias e depois dividiria o resultado em 10. Na Figura 1, a soma dos preços nos últimos 10 dias (110) é Dividido pelo número de dias (10) para chegar à média de 10 dias. Se um comerciante deseja ver uma média de 50 dias, o mesmo tipo de cálculo seria feito, mas incluiria os preços nos últimos 50 dias. A média resultante abaixo (11) leva em conta os últimos 10 pontos de dados para dar aos comerciantes uma idéia de como um recurso tem um preço relativo aos últimos 10 dias. Talvez você esteja se perguntando por que os comerciantes técnicos chamam essa ferramenta de uma média móvel e não apenas de uma média regular. A resposta é que, à medida que novos valores se tornam disponíveis, os pontos de dados mais antigos devem ser descartados do conjunto e novos pontos de dados devem vir para substituí-los. Assim, o conjunto de dados está constantemente em movimento para contabilizar os novos dados à medida que ele se torna disponível. Este método de cálculo garante que apenas as informações atuais estão sendo contabilizadas. Na Figura 2, uma vez que o novo valor de 5 é adicionado ao conjunto, a caixa vermelha (representando os últimos 10 pontos de dados) se move para a direita e o último valor de 15 é descartado do cálculo. Uma vez que o valor relativamente pequeno de 5 substitui o valor elevado de 15, você esperaria ver a diminuição da média do conjunto de dados, o que faz, neste caso, de 11 a 10. O que as médias móveis parecem Uma vez que os valores da MA foi calculado, eles são plotados em um gráfico e depois conectados para criar uma linha média móvel. Essas linhas curvas são comuns nos gráficos dos comerciantes técnicos, mas como eles são usados podem variar drasticamente (mais sobre isso mais tarde). Como você pode ver na Figura 3, é possível adicionar mais de uma média móvel a qualquer gráfico, ajustando o número de períodos de tempo usados no cálculo. Essas linhas curvas podem parecer distrativas ou confusas no início, mas você se acostumará a elas com o passar do tempo. A linha vermelha é simplesmente o preço médio nos últimos 50 dias, enquanto a linha azul é o preço médio nos últimos 100 dias. Agora que você entende o que é uma média móvel e o que parece, bem, introduza um tipo diferente de média móvel e examine como isso difere da média móvel simples anteriormente mencionada. A média móvel simples é extremamente popular entre os comerciantes, mas, como todos os indicadores técnicos, tem seus críticos. Muitos indivíduos argumentam que a utilidade do SMA é limitada porque cada ponto na série de dados é ponderado o mesmo, independentemente de onde ele ocorre na seqüência. Os críticos argumentam que os dados mais recentes são mais significativos do que os dados mais antigos e devem ter uma maior influência no resultado final. Em resposta a esta crítica, os comerciantes começaram a dar mais peso aos dados recentes, que desde então levaram à invenção de vários tipos de novas médias, sendo a mais popular a média móvel exponencial (EMA). (Para leitura adicional, veja Noções básicas de médias móveis ponderadas e qual a diferença entre uma SMA e uma EMA) Média móvel exponencial A média móvel exponencial é um tipo de média móvel que dá mais peso aos preços recentes na tentativa de torná-lo mais responsivo Para novas informações. Aprender a equação um tanto complicada para calcular uma EMA pode ser desnecessária para muitos comerciantes, já que quase todos os pacotes de gráficos fazem os cálculos para você. No entanto, para você geeks de matemática lá fora, aqui está a equação EMA: Ao usar a fórmula para calcular o primeiro ponto da EMA, você pode notar que não há nenhum valor disponível para usar como EMA anterior. Este pequeno problema pode ser resolvido iniciando o cálculo com uma média móvel simples e continuando com a fórmula acima a partir daí. Nós fornecemos uma amostra de planilha que inclui exemplos da vida real de como calcular uma média móvel simples e uma média móvel exponencial. A Diferença entre o EMA e o SMA Agora que você tem uma melhor compreensão de como o SMA e o EMA são calculados, vamos dar uma olhada em como essas médias diferem. Ao analisar o cálculo da EMA, você notará que é dada mais ênfase aos pontos de dados recentes, tornando-se um tipo de média ponderada. Na Figura 5, o número de períodos de tempo utilizados em cada média é idêntico (15), mas a EMA responde mais rapidamente aos preços em mudança. Observe como o EMA tem um valor maior quando o preço está subindo e cai mais rápido do que o SMA quando o preço está em declínio. Essa capacidade de resposta é a principal razão pela qual muitos comerciantes preferem usar o EMA sobre o SMA. O que os dias diferentes significam As médias em movimento são um indicador totalmente personalizável, o que significa que o usuário pode escolher livremente o período de tempo que deseja ao criar a média. Os períodos de tempo mais comuns utilizados nas médias móveis são 15, 20, 30, 50, 100 e 200 dias. Quanto menor o intervalo de tempo usado para criar a média, mais sensível será para as mudanças de preços. Quanto maior o período de tempo, menos sensível ou mais suavizado, a média será. Não há um marco de tempo certo para usar ao configurar suas médias móveis. A melhor maneira de descobrir qual é o melhor para você é experimentar vários períodos de tempo diferentes até encontrar um que se encaixa na sua estratégia. Médias móveis: como usá-los
Comments
Post a Comment