Wednesday 9 August 2017

Algoritmo De Filtro De Média Móvel Exponencial


Eu tenho essencialmente uma matriz de valores como this. A matriz acima é simplificada demais, estou coletando 1 valor por milissegundo no meu código real e eu preciso processar a saída em um algoritmo que eu escrevi para encontrar o pico mais próximo antes de um ponto no tempo Meu A lógica falha porque no meu exemplo acima, 0 36 é o pico real, mas meu algoritmo olharia para trás e veria o último número 0 25 como o pico, pois há uma diminuição para 0 24 antes dele. O objetivo é tomar esses valores E aplicar um algoritmo para eles que irá suavizar-los um pouco para que eu tenha mais linear valores ou seja, eu d como meus resultados para ser curvy, não jaggedy. I foi dito para aplicar um filtro exponencial de média móvel para os meus valores Como posso Fazer isso É muito difícil para mim ler equações matemáticas, eu lidar muito melhor com o código. Como posso processar valores em minha matriz, aplicando um cálculo de média móvel exponencial para até mesmo out. asked Feb 8 12 at 20 27.To computa Uma média móvel exponencial que você precisa para manter algum estado ao redor e Você precisa de um parâmetro de ajuste Isso chama para uma pequena classe supondo que você está usando o Java 5 ou posterior. Instantiar com o parâmetro de decadência que você quer pode ter ajuste deve estar entre 0 e 1 e, em seguida, use a média para filter. When ler uma página em alguns mathmatical Recorrência, tudo o que você realmente precisa saber quando transformá-lo em código é que os matemáticos gostam de escrever índices em matrizes e seqüências com subscritos Eles ve algumas outras notações, bem como, o que doesn t ajudar No entanto, o EMA é bastante simples, como você só precisa Para lembrar um valor antigo sem arrays de estado complicado required. answered Feb 8 12 at 20 42. TKKocheran Muito bonito Isn t it nice quando as coisas podem ser simples Se começar com uma nova seqüência, obter um novo averager Note que os primeiros termos no A seqüência média saltará em torno de um bit devido a efeitos de limite, mas você obtém aqueles com outras médias móveis também No entanto, uma boa vantagem é que você pode envolver a lógica de média móvel para o averager e experimentar sem perturbar t Ele resto do seu programa muito Donal Fellows Feb 9 12 em 0 06.Eu estou tendo dificuldade em entender suas perguntas, mas vou tentar responder anyway.1 Se o algoritmo encontrado 0 25 em vez de 0 36, então é errado É errado porque ele assume um aumento ou diminuição monotônico que está sempre subindo ou sempre indo para baixo A menos que você média TODOS os seus dados, seus pontos de dados --- como você apresentá-los --- são não-lineares Se você realmente deseja encontrar o máximo Valor entre dois pontos no tempo, então corte sua matriz de tmin para tmax e encontre o máximo desse subarray.2 Agora, o conceito de médias móveis é muito simples imagine que eu tenho a seguinte lista 1 4, 1 5, 1 4, 1 5, 1 5 Eu posso suavizar isto tomando a média de dois números 1 45, 1 45, 1 45, 1 5 Observe que o primeiro número é a média de 1 5 e 1 4 segundos e primeiros números a segunda nova lista É a média de 1 4 e 1 5 terceira e segunda lista antiga a terceira lista nova a média de 1 5 e 1 4 quarto e terceiro, e assim por diante eu poderia Ter feito período de três ou quatro, ou n Observe como os dados são muito mais suave Uma boa maneira de ver as médias móveis no trabalho é ir para o Google Finance, selecione um estoque tentar Tesla Motors bastante volátil TSLA e clique em technicals na parte inferior da O gráfico Selecionar Média Móvel com um determinado período, e média móvel exponencial para comparar suas diferenças. A média móvel exponencial é apenas mais uma elaboração disto, mas pondera os dados mais antigos menos do que os novos dados esta é uma forma de polarizar o alisamento em direção à parte traseira Por favor, leia a entrada da Wikipedia. Então, isso é mais um comentário do que uma resposta, mas a pequena caixa de comentário foi apenas a pequena boa sorte. Se você está tendo problemas com a matemática, você poderia ir com uma média móvel simples em vez de exponencial Então A saída que você obtém seria o último x termos dividido por x pseudocódigo não testado. Note que você vai precisar para lidar com o início e fim partes dos dados uma vez que claramente você não pode média t os últimos 5 termos quando você está em seu ponto de dados 2 , a São formas mais eficientes de calcular esta soma média móvel - a mais antiga, mas isso é para obter o conceito do que está acontecendo em toda a linha. Respondida fevereiro 8 12 em 20 41. Estou codificação algo no momento em que eu estou tomando um monte De valores ao longo do tempo a partir de uma bússola hardware Esta bússola é muito preciso e atualizações com muita freqüência, com o resultado de que se ele jiggles ligeiramente, eu acabar com o valor ímpar que s descontroladamente inconsistente com seus vizinhos que eu quero suavizar esses valores out. Having Feito alguma leitura ao redor, pareceria que o que eu quero é um filtro high-pass, um filtro low-pass ou uma média movente que eu posso começar para baixo com, apenas manter um history dos últimos 5 valores ou o que, e usar A média desses valores a jusante no meu código onde eu estava uma vez apenas usando o valor mais recente. Isso deve, eu acho, suavizar os jiggles muito bem, mas me parece que é provavelmente muito ineficiente, e este é provavelmente um desses Problemas conhecidos para programadores adequados aos quais Eu sou, entretanto, um daqueles programadores autodidacta horríveis sem um pedaço de educação formal em qualquer coisa mesmo vagamente relacionado a CompSci ou Matemática Ler em torno de um pouco sugere que isto pode ser uma passagem alta ou baixa Filtro, mas não consigo encontrar nada que explique em termos compreensíveis a um hack como eu qual o efeito desses algoritmos seria sobre uma matriz de valores, muito menos como a matemática funciona A resposta dada aqui por exemplo, tecnicamente responde à minha pergunta , Mas apenas em termos compreensíveis para aqueles que provavelmente já sabem como resolver o problema. Seria uma pessoa muito bonita e inteligente que poderia explicar o tipo de problema que é, e como as soluções funcionam, em termos compreensíveis para um Se sua média móvel tem que ser longa para conseguir a suavização necessária, e você realmente não precisa de nenhuma forma especial de kernel, então você está melhor se você usar um exponencial Decaying moving average. where você escolher minúsculo para ser uma constante adequada, por exemplo, se você escolher minúsculo 1- 1 N, ele terá a mesma quantidade de média como uma janela de tamanho N, mas distribuídos de forma diferente sobre pontos mais antigos. Anyway, desde a próxima Valor da média móvel depende apenas do anterior e seus dados, você don t tem que manter uma fila ou qualquer coisa E você pode pensar nisso como fazendo algo como, Bem, eu tenho um novo ponto, mas eu não t realmente Confie nela, então eu vou manter 80 da minha velha estimativa da medição, e só confiar neste novo ponto de dados 20 Isso é praticamente o mesmo que dizer, Bem, eu só confio neste novo ponto 20, e eu vou usar 4 Outros pontos que eu confio na mesma quantia, exceto que em vez de tomar explicitamente os 4 outros pontos, você está supondo que a média que você fez na última vez foi sensato para que você possa usar o seu trabalho anterior. Respondido set 21 10 às 14 27.Hey, Eu sei que isso é 5 anos de atraso, mas obrigado por uma resposta incrível Eu estou trabalhando em um jogo onde o som Mudanças baseadas em sua velocidade, mas devido à execução do jogo em um computador lento ass, a velocidade iria flutuar descontroladamente, o que era bom para a direção, mas super irritante em termos de som Esta foi uma solução muito simples e barata para algo que eu pensei Seria um problema muito complexo Adam Mar 16 15 20 20.Se você está tentando remover o valor ímpar ocasional, um filtro passa-baixa é o melhor das três opções que você identificou filtros de baixa passagem permitem mudanças de baixa velocidade Tais como os causados ​​pela rotação de uma bússola à mão, ao mesmo tempo que rejeita mudanças de alta velocidade, como as causadas por solavancos na estrada, por exemplo. Uma média móvel provavelmente não será suficiente, uma vez que os efeitos de um único blip no seu Os dados afetarão diversos valores subseqüentes, dependendo do tamanho de sua janela média móvel. Se os valores estranhos forem detectados fàcilmente, você pode mesmo ser melhor fora com um algoritmo do glitch-removal que os ignore completamente. Está aqui um gráfico do guick para ilustrar. O primeiro gráfico é O sinal de entrada, com uma falha desagradável O segundo gráfico mostra o efeito de uma média móvel de 10 amostras O gráfico final é uma combinação da média de 10 amostras eo algoritmo de detecção de falhas simples mostrado acima Quando a falha é detectada, A média da amostra é usada em vez da média real de value. Moving que eu posso começar para baixo com mas me golpeia que é provavelmente completamente inefficient. There s realmente nenhuma razão uma média movente deve ser ineficiente Você mantem o número de pontos que de dados você quer em algum Buffer como uma fila circular Em cada novo ponto de dados, você pop o valor mais antigo e subtraí-lo de uma soma, e empurrar o mais novo e adicioná-lo à soma Assim, cada novo ponto de dados realmente só envolve um impulso pop, uma adição e uma subtração Sua média móvel é sempre esta soma deslocada dividida pelo número de valores em seu amortecedor. Começa um pouco mais complicado se você re que recebe dados concurrently de múltiplas linhas, mas desde que seus dados estão vindo de um dispositivo de ferragem que pareça altamente Duvidoso para mim. Oh e também programadores autodidacta terrível unite. The média móvel parecia ineficiente para mim, porque você tem que armazenar um buffer de valores - melhor para apenas fazer algumas Matemática inteligente com o seu valor de entrada e valor de trabalho atual Eu acho que s Como funciona a média móvel exponencial Uma otimização que eu vi para este tipo de média móvel envolve o uso de uma fila de comprimento fixo um ponteiro para onde você está nessa fila e apenas envolvendo o ponteiro ao redor com ou Os amadores, irmão Henry Cooke Sep 22 10 em 0 54. Henry Para uma média móvel straight-up você precisa do buffer simplesmente para que você saiba o valor obtém estalou quando o próximo valor ser empurrado Dito isto, a fila de comprimento fixo a Ponteiro que você está descrevendo é exatamente o que eu quis dizer com fila circular É por isso que eu estava dizendo que não é ineficiente O que você acha que eu quis dizer E se sua resposta é uma matriz que muda seus valores de volta em cada remoção indexada como std vector em C bem , º En, estou tão magoado Eu nem quero mais falar com você Dan Tao 22 de setembro 10 a 1 58. Henry Eu não sei sobre AS3, mas um programador Java tem coleções como CircularQueue em sua disposição Eu não sou um Desenvolvedor Java, então eu tenho certeza que existem melhores exemplos lá fora, que é apenas o que eu encontrei a partir de uma pesquisa rápida do Google, que implementa precisamente a funcionalidade estamos falando sobre eu estou bastante confiante a maioria dos idiomas de médio e baixo nível com bibliotecas padrão Tem algo semelhante, por exemplo, lá s Queue T De qualquer forma, eu era a filosofia de mim mesmo, então tudo é perdoado Dan Tao Sep 22 10 em 12 44.Uma média móvel decrescente exponencial pode ser calculado manualmente com apenas a tendência se você usar os valores adequados Veja Para uma idéia sobre como fazer isso rapidamente com uma caneta e papel, se você está procurando exponencialmente suavizada média móvel com 10 suavização Mas desde que você tem um computador, você provavelmente quer estar fazendo deslocamento binário em oposição a deslocamento decimal. Esta maneira, Tudo o que você precisa é um va Riable para seu valor atual e um para a média A média seguinte pode então ser calculada de that. answered Sep 21 10 em 14 39.There sa técnica chamada uma porta de intervalo que funciona bem com amostras espúrias de baixa ocorrência assumindo o uso de um dos As técnicas de filtro mencionadas acima média móvel, exponencial, uma vez que você tem uma história suficiente uma constante de tempo você pode testar a nova amostra de dados de entrada para a razoabilidade, antes de ser adicionado ao conhecimento computation. some da taxa de mudança máxima razoável de O sinal é necessário, a amostra bruta é comparada com o valor mais recente suavizado e se o valor absoluto dessa diferença é maior do que o intervalo permitido, essa amostra é descartada ou substituída por alguma heurística, por exemplo, uma previsão baseada no diferencial de inclinação ou O valor de predição de tendência de dupla exponencial suavização. contestada abr 30 16 em 6 56.Exponential Moving Average - EMA. BREAKING DOWN Exponencial Média Móvel - EMA. The 12 e 26 dias EMAs são th E as mais populares médias de curto prazo, e eles são usados ​​para criar indicadores como a convergência de média móvel divergência MACD e os preços oscilador PPO Em geral, os EMAs de 50 e 200 dias são usados ​​como sinais de tendências de longo prazo. Que empregam a análise técnica, encontram médias móveis muito úteis e perspicazes quando aplicadas corretamente, mas causam estragos quando usadas indevidamente ou são mal interpretadas. Todas as médias móveis normalmente usadas na análise técnica são, por sua própria natureza, indicadores atrasados. Conseqüentemente, as conclusões tiradas da aplicação de um movimento Em geral, quando uma linha de indicadores de média móvel fez uma mudança para refletir uma mudança significativa no mercado, o ponto ótimo de entrada no mercado já foi Passado Um EMA serve para aliviar este dilema em certa medida Como o cálculo EMA coloca mais peso sobre os dados mais recentes, ele abraça a ação de preço Um pouco mais apertado e, portanto, reage mais rápido Isso é desejável quando um EMA é usado para derivar um sinal de entrada de negociação. Interpretando o EMA. Like todos os indicadores de média móvel, eles são muito mais adequados para tendências mercados Quando o mercado está em uma forte e sustentada tendência de alta A linha de indicador EMA também mostrará uma tendência de alta e vice-versa para uma tendência de baixo Um comerciante vigilante não só prestar atenção à direção da linha EMA, mas também a relação da taxa de mudança de uma barra para a próxima Por exemplo, Como a ação de preço de uma forte tendência de alta começa a nivelar e reverter, a taxa de mudança da EMA s de uma barra para a próxima começará a diminuir até que o tempo que a linha de indicador aplana ea taxa de mudança é zero. Por causa do atraso Por conseguinte, a observação de uma diminuição constante da taxa de variação da EMA poderia, por si só, ser utilizada como um indicador que poderia Além disso, o EMA é comumente usado em conjunto com outros indicadores para confirmar os movimentos significativos do mercado e para avaliar a sua validade Para os comerciantes que o comércio intraday e mercados em rápido movimento, a EMA é Por exemplo, se um EMA em um gráfico diário mostra uma forte tendência ascendente, a estratégia de um comerciante intraday pode ser o comércio apenas a partir do lado comprido em um gráfico intraday.

No comments:

Post a Comment