Wednesday 9 August 2017

Movendo Média Com Labview


Médias móveis: quais são eles Entre os mais populares indicadores técnicos, médias móveis são usados ​​para medir a direção da tendência atual. Cada 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 determinada, a média resultante é então plotada em um gráfico, a fim de permitir que os comerciantes olhar para os dados suavizados, em vez de se concentrar nas flutuações do preço 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-se a média aritmética de um dado 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 dividiria o resultado por 10. Na Figura 1, a soma dos preços dos ú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, em vez disso, 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, a fim de dar aos comerciantes uma idéia de como um activo é fixado o preço em relação aos últimos 10 dias. Talvez você está se perguntando por que os comerciantes técnicos chamam essa ferramenta de uma média móvel e não apenas uma média regular. A resposta é que, à medida que novos valores se tornam disponíveis, os pontos de dados mais antigos devem ser eliminados do conjunto e novos pontos de dados devem entrar para substituí-los. Assim, o conjunto de dados está em constante movimento para contabilizar novos dados à medida que fica 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) move-se para a direita eo último valor de 15 é eliminado do cálculo. Como o valor relativamente pequeno de 5 substitui o valor alto de 15, você esperaria ver a média da diminuição do conjunto de dados, o que faz, nesse caso de 11 para 10. O que as médias móveis parecem uma vez MA foram calculados, eles são plotados em um gráfico e, em seguida, conectado para criar uma linha média móvel. Estas linhas de curvas são comuns nos gráficos de 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ê vai crescer acostumado com eles como o tempo passa. 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 introduzir um tipo diferente de média móvel e analisar como ele difere da mencionada média móvel simples. A média móvel simples é extremamente popular entre os comerciantes, mas como todos os indicadores técnicos, ele 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 essa crítica, os comerciantes começaram a dar mais peso aos dados recentes, o que desde então levou à invenção de vários tipos de novas médias, a mais popular das quais é a média móvel exponencial (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 (média móvel ponderada, média móvel ponderada e qual é a diferença entre um SMA e um EMA) Novas informações. Aprender a equação um pouco complicada para o cálculo de um EMA pode ser desnecessário para muitos comerciantes, uma vez que quase todos os pacotes gráficos fazer os cálculos para você. No entanto, para você geeks 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á valor disponível para usar como o 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í. Fornecemos uma planilha de exemplo que inclui exemplos reais de como calcular uma média móvel simples e uma média móvel exponencial. A diferença entre a EMA ea SMA Agora que você tem uma melhor compreensão de como a SMA ea EMA são calculadas, vamos dar uma olhada em como essas médias são diferentes. Ao olhar para o cálculo da EMA, você vai notar que mais ênfase é colocada sobre os pontos de dados recentes, tornando-se um tipo de média ponderada. Na Figura 5, o número de períodos utilizados em cada média é idêntico (15), mas a EMA responde mais rapidamente aos preços em mudança. Observe como a 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. Esta responsividade é a principal razão pela qual muitos comerciantes preferem usar o EMA sobre o SMA. O que significam os diferentes dias As médias móveis são um indicador totalmente personalizável, o que significa que o usuário pode escolher livremente o período de tempo que desejar 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á às mudanças de preços. Quanto mais tempo o intervalo de tempo, menos sensível ou mais suavizado, a média será. Não há um frame de tempo certo para usar ao configurar suas médias móveis. A melhor maneira de descobrir qual funciona melhor para você é experimentar com uma série de diferentes períodos de tempo até encontrar um que se adapta à sua estratégia. Médias móveis: Como usar ThemCalculating Moving Average Este VI calcula e exibe a média móvel, usando um número pré-selecionado. Primeiro, o VI inicializa dois registradores de deslocamento. O registro de deslocamento superior é inicializado com um elemento e, em seguida, adiciona continuamente o valor anterior com o novo valor. Esse registrador de deslocamento mantém o total das últimas medidas x. Depois de dividir os resultados da função de adição com o valor pré-selecionado, o VI calcula o valor da média móvel. O registro de deslocamento inferior contém uma matriz com a dimensão Média. Este registo de deslocamento mantém todos os valores da medição. A função de substituição substitui o novo valor após cada loop. Este VI é muito eficiente e rápido porque usa a função replace element dentro do loop while e inicializa a matriz antes de entrar no loop. Este VI foi criado no LabVIEW 6.1. Bookmark Ampliar ShareSimple Moving Average VI Normalmente, quando as pessoas falam de uma média móvel, eles significam Replace Point N com a média de M pontos em torno do ponto N. Suponha que eu tenho 100 pontos cujos valores são 1, 2, 3. 100 e eu quero Fazer uma média móvel de 5 pontos. A média móvel do terceiro ponto é a média de 1, 2, 3, 4, 5 3. A média do quarto ponto é a média de 2, 3, 4, 5, 6 4. No entanto, este é talvez um exemplo muito simples. Como sobre a média de uma função de etapa, 0 de 1 a 10, então 20 em seguida. Novamente, jogue fora os pontos 1 e 2. A média dos pontos 1-5 (para entrar no ponto 3) 0 (uma vez que todos os pontos são 0). Da mesma forma, com os pontos 4, 5, 6, 7 e 8. No entanto, o ponto 9 é a média de 0, 0, 0, 0, 20 4. Como sobre o Ponto 10 Bem, deve ser a média de 0, 0, 0 , 20, 20 8, mas você se lembrou de não substituir Ponto 9 Hmm, parece que precisamos manter duas cópias do Array (que é, em geral, caro). Existem várias maneiras que você pode evitar fazer isso. Você entende onde o problema surge no parágrafo anterior Se não, tente fazer isso com lápis e papel (ou tente codificá-lo no LabVIEW). Eu lhe darei a resposta para que você possa verificar - a média móvel da Função de Passo é -, -, 0, 0, 0, 0, 0, 0, 4, 8, 12, 16, 20, 20 , 20. -, - (onde - são os valores vazios nas extremidades da matriz, os pontos que você não tem vizinhos suficientes). P. S. - não me surpreenderia se não houvesse uma função LabVIEW que faz isso para você. Mas se você está aprendendo o LabVIEW e quer ter uma melhor compreensão de como os algoritmos que você está conectando no trabalho, nunca dói jogar e experimentá-lo sozinho. Você pôde mesmo vir acima com uma melhoria (diversos de nós fizeram assim.). Obrigado por sensibilizar sobre os pontos mais finos do método de média móvel. Este afterall é uma ferramenta estatística que ajuda a ver o que você quer ver abstraindo os distractores. Portanto, o método é obrigado a ter algumas falhas em algumas situações ou contexto. Mas eu acho que é perfeitamente adequado para o meu tipo de registro de dados do dof - é uma pressão ou temperatura ou sinal de fluxo - e eu adquirir em algo como 400 amostras sec e, em seguida, usar uma média de amostra única. E o processo é bastante lento como meu código principal é executado em não mais de 20 Hz. Então, quando eu faço uma média de 5 amostra maving, minha primeira amostra chega 5 x 50ms mais tarde, então para cada 50ms eu obter uma amostra válida. Basicamente, estou mais preocupado com as tendências e não valores spot. Nisso, há pouca preocupação com amostras perdidas ou valores desonestos. Claro que eu não ousaria usar isso para uma função Step. Isso seria cruel. Raghunathan LV2012 para automatizar equipamentos de teste hidráulico. Mensagem 4 de 15 (1,014 Visualizações) Re: Simple Moving Average VI 03-30-2016 11:58 PM Há ptbypt média que faz o mesmo. Você pode inspecionar o código se você quiser. Uma grande falha no seu código é o fato de que você constantemente crescer e encolher uma matriz existente. Você deve tentar encontrar uma solução que funciona no local em uma matriz de tamanho fixo. Maio exemplos foram postados no fórum ao longo dos anos (olha hee, por exemplo). A média não se importa se os elementos estão fora de ordem, então você pode simplesmente substituir o elemento mais antigo, não importa onde ele está localizado. Você também está prepending o novo elemento para o início de uma matriz existente, que é sempre muito mais caro do que acrescentando ao final. O tamanho da amostra não pode ser alterado assim que o VI estiver em execução. Seu registro de deslocamento deve ser inicializado com uma matriz vazia, não uma matriz que já contém um único elemento que é zero. (Este zero extra dará médias erradas) Seu código deve ser feito em um subVI para que ele possa ser reutilizado (semelhante à versão ptbypt). Seu VI nunca pode ser interrompido, apenas abortado. Boas dicas de otimização. O ponto em inicializar com Zero me faltou. E sim o usuário não deve mudar o tamanho da amostra, uma vez que ele começa a correr. Finalmente vou fazer um SubVI e lidar com coisas como parar, etc .. Quanto ao ponto de prepending do que acrescentando o novo valor para matriz, talvez haja uma pena de desempenho, mas dado o tamanho da minha matriz estou certo de que a CPU não se preocupa anwyay . Mas para mim tem que ser desta forma como eu uso os dados finais para traçar uma tendência de um parâmetro físico. Obrigado pelo seu tempo. Raghunathan LV2012 para automatizar equipamentos de teste hidráulico. Obrigado por sensibilizar sobre os pontos mais finos do método de média móvel. Este afterall é uma ferramenta estatística que ajuda a ver o que você quer ver abstraindo os distractores. Portanto, o método é obrigado a ter algumas falhas em algumas situações ou contexto. Mas eu acho que é perfeitamente adequado para o meu tipo de registro de dados do dof - é uma pressão ou temperatura ou sinal de fluxo - e eu adquirir em algo como 400 amostras sec e, em seguida, usar uma média de amostra única. E o processo é bastante lento como meu código principal é executado em não mais de 20 Hz. Então, quando eu faço uma média de 5 amostra maving, minha primeira amostra chega 5 x 50ms mais tarde, então para cada 50ms eu obter uma amostra válida. Aha Então você não quer uma média móvel, mas apenas uma média simples. Isso é muito mais fácil. Heres a idéia (que trabalha muito melhor com um ProdutorConsumer Design) - Digamos que você está amostragem em 400Hz, quer salvar os dados em 400 Hz (ou seja, salvar todos os dados para o disco), mas deseja exibir a 20 Hz (porque você Quer ver tendências, uma base de tempo mais longa, etc.). Configure o seu sistema AD para coletar 20 amostras a 400Hz (observe que você pode coletar N canais ao mesmo tempo, dando-lhe uma matriz 2D de amostras. Como você obter os dados (a 20 Hz) a partir da AD (tornando-se o produtor) , Enqueue-lo para o consumidor. O consumidor começa escrevendo os dados para o disco (não deve demorar muito tempo.) Agora você tem uma matriz 2D - em um Loop, em um canal por canal, a média dos 20 pontos. Note que este esquema (a) usa todos os dados, (b) lida com dados multicanais com aplomo (e, se você estiver Do Oriente Médio onde eles crescem, você também pode manipular seus dados com uma ameixa suculenta), e (c) permite que você colete seus dados do equipamento AD, salve seus dados no disco mantendo todos os pontos e mostre seus dados em A tela usando todos os seus pontos, mas também a média para melhorar a relação sinal-ruído visual, tudo sem perder nenhum dado (eu fiz exatamente isso com 24 canais em 1KHz, com Os dados sendo tomados em um sistema remoto e enviados para o PC via TCPIP, por isso também temos o processamento TCP no loop). Bem-vindo ao mundo emocionante de aquisição e processamento de dados com o LabVIEW. Confie em mim, este é um sistema maravilhoso para fazer este tipo de trabalho Com base no feedback que recebi no meu VI original tenho refinado o código de média móvel em um subVI. Em seguida, usei-o para a média de uma simulação 10Channel dados - apenas para manter as coisas simples eu me certifiquei todos os canais tinham dados idênticos. Seria então esperar obter a mesma média móvel para todos os 10 canais. Estou surpreso com a pequena variação i aviso entre canais - geralmente eles estão perto, mas não exata. E apenas para explicar o processo que eu estou tentando eu também tenho enclsoed um XLS. Então, de onde vem a variação. O registro de deslocamento unitialized dentro do Sub VI. Raghunathan LV2012 para automatizar equipamentos de teste hidráulico. Mensagem 9 de 15 (917 Visualizações) Re: Simple Moving Average VI altenbach 04-01-2016 10:25 AM Seu código ainda não faz sentido. Desde que você está chamando o subVI um escalar por vez, você não está recebendo o que você quer porque o registro de deslocamento só rememebers os últimos N scalars, não importa de qual canal é. Seu código ainda é muito ineficiente e complicado. (Por exemplo, por que você ainda está usando inserir em matriz para acrescentar (tanto no mani nad no sub). (Você poderia usar um subVI reenetrant e um loop paralelo FOR mais interno, mas que parece demasiado complicado também) Se você quiser fazer um A média de execução em cada canal, o subVI precisa manter uma matriz 2D no subVI .. Tudo isso foi feito antes Mensagem 10 de 15 (901 Exibições)

No comments:

Post a Comment