Saturday 25 November 2017

Moving Average Max Msp


Médias móveis: 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 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 dados suavizados em vez de se concentrar nas flutuações de preços do dia-a-dia 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 um meio 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. Como o valor relativamente pequeno de 5 substitui o valor alto de 15, você esperaria ver a reduçã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 foram calculados, 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 mencionada anteriormente. 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 ocorre na sequê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 um EMA pode ser desnecessário 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, dê 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 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 usados ​​em 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 usar ThemDAX inclui algumas funções de agregação estatística, como média, variância e desvio padrão. Outros cálculos estatísticos típicos exigem que você escreva expressões DAX mais longas. Excel, deste ponto de vista, tem uma linguagem muito mais rica. Os padrões estatísticos são uma coleção de cálculos estatísticos comuns: mediana, modo, média móvel, percentil e quartil. Gostaríamos de agradecer a Colin Banfield, Gerard Brueckl e Javier Guilln, cujos blogs inspiraram alguns dos seguintes padrões. Exemplo de padrão básico As fórmulas neste padrão são as soluções para cálculos estatísticos específicos. Você pode usar as funções DAX padrão para calcular a média (média aritmética) de um conjunto de valores. MÉDIA . Retorna a média de todos os números em uma coluna numérica. AVERAGEA. Retorna a média de todos os números em uma coluna, manipulando texto e valores não-numéricos (valores de texto não-numéricos e vazios como 0). AVERAGEX. Calcule a média em uma expressão avaliada em uma tabela. Média móvel A média móvel é um cálculo para analisar pontos de dados criando uma série de médias de diferentes subconjuntos do conjunto de dados completo. Você pode usar muitas técnicas DAX para implementar esse cálculo. A técnica mais simples é usar AVERAGEX, iterando uma tabela da granularidade desejada e calculando para cada iteração a expressão que gera o único ponto de dados para usar na média. Por exemplo, a seguinte fórmula calcula a média móvel nos últimos 7 dias, assumindo que você está usando uma tabela de data em seu modelo de dados. Usando AVERAGEX, você calcula automaticamente a medida em cada nível de granularidade. Ao usar uma medida que pode ser agregada (como SUM), então outra abordagem baseada em CALCULATE pode ser mais rápida. Você pode encontrar essa abordagem alternativa no padrão completo de média móvel. Você pode usar as funções DAX padrão para calcular a variância de um conjunto de valores. VAR. S. Retorna a variância de valores em uma coluna que representa uma amostra de população. VAR. P. Retorna a variância dos valores em uma coluna que representa a população inteira. VARX. S. Retorna a variância de uma expressão avaliada em uma tabela que representa uma amostra de população. VARX. P. Retorna a variância de uma expressão avaliada em uma tabela que representa toda a população. Desvio padrão Você pode usar as funções DAX padrão para calcular o desvio padrão de um conjunto de valores. STDEV. S. Retorna o desvio padrão de valores em uma coluna que representa uma amostra de população. STDEV. P. Retorna o desvio padrão de valores em uma coluna que representa toda a população. STDEVX. S. Retorna o desvio padrão de uma expressão avaliada em uma tabela que representa uma amostra de população. STDEVX. P. Retorna o desvio padrão de uma expressão avaliada em uma tabela que representa toda a população. A mediana é o valor numérico que separa a metade mais alta de uma população da metade inferior. Se houver um número ímpar de linhas, a mediana é o valor do meio (classificando as linhas do valor mais baixo para o valor mais alto). Se houver um número par de linhas, é a média dos dois valores médios. A fórmula ignora os valores em branco, que não são considerados parte da população. O resultado é idêntico à função MEDIAN no Excel. A Figura 1 mostra uma comparação entre o resultado retornado pelo Excel e a fórmula DAX correspondente para o cálculo médio. Figura 1 Exemplo de cálculo mediano no Excel e DAX. O modo é o valor que aparece mais frequentemente em um conjunto de dados. A fórmula ignora os valores em branco, que não são considerados parte da população. O resultado é idêntico às funções MODE e MODE. SNGL no Excel, que retornam apenas o valor mínimo quando existem vários modos no conjunto de valores considerados. A função Excel MODE. MULT retornaria todos os modos, mas você não pode implementá-lo como uma medida no DAX. A Figura 2 compara o resultado retornado pelo Excel com a fórmula DAX correspondente para o cálculo do modo. Figura 2 Exemplo de cálculo de modo no Excel e no DAX. Percentile O percentil é o valor abaixo do qual uma determinada porcentagem de valores em um grupo cai. A fórmula ignora os valores em branco, que não são considerados parte da população. O cálculo no DAX requer várias etapas, descritas na seção Padrão Completo, que mostra como obter os mesmos resultados das funções do Excel PERCENTILE, PERCENTILE. INC e PERCENTILE. EXC. Os quartis são três pontos que dividem um conjunto de valores em quatro grupos iguais, cada grupo que compreende uma quarta parte dos dados. Você pode calcular os quartis usando o padrão de Percentile, seguindo estas correspondências: Primeiro quartil quartil inferior 25º percentil Segunda quartil mediana 50º percentil Terceiro quartil quartil superior 75º percentil Padrão completo Alguns cálculos estatísticos têm uma descrição mais longa do padrão completo, porque Você pode ter implementações diferentes dependendo de modelos de dados e outros requisitos. Média móvel Normalmente, você avalia a média móvel fazendo referência ao nível de granularidade do dia. O modelo geral da seguinte fórmula possui esses marcadores: ltnumberofdaysgt é o número de dias para a média móvel. Ltdatecolumngt é a coluna de data da tabela de datas se você tiver uma ou a coluna de data da tabela contendo valores se não houver uma tabela de datas separada. Ltmeasuregt é a medida para calcular como a média móvel. O padrão mais simples usa a função AVERAGEX no DAX, que automaticamente considera apenas os dias para os quais há um valor. Como alternativa, você pode usar o seguinte modelo em modelos de dados sem uma tabela de datas e com uma medida que pode ser agregada (como SUM) durante todo o período considerado. A fórmula anterior considera um dia sem dados correspondentes como uma medida que possui 0 valor. Isso pode acontecer apenas quando você possui uma tabela de datas separada, que pode conter dias para os quais não há transações correspondentes. Você pode corrigir o denominador para a média usando apenas o número de dias para os quais há transações usando o seguinte padrão, onde: ltfacttablegt é a tabela relacionada à tabela de datas e contendo valores calculados pela medida. Você pode usar as funções DATESBETWEEN ou DATESINPERIOD em vez de FILTER, mas elas funcionam apenas em uma tabela de data normal, enquanto você pode aplicar o padrão descrito acima também a tabelas de datas não regulares e a modelos que não possuem tabela de data. Por exemplo, considere os diferentes resultados produzidos pelas duas medidas a seguir. Na Figura 3, você pode ver que não há vendas em 11 de setembro de 2005. No entanto, esta data está incluída na tabela de datas, portanto, há 7 dias (de 11 de setembro a 17 de setembro) com apenas 6 dias com dados. Figura 3 Exemplo de um cálculo da Média Mover considerando e ignorando datas sem vendas. A medida Média móvel 7 dias tem um número menor entre 11 de setembro e 17 de setembro, porque considera o 11 de setembro como um dia com 0 vendas. Se quiser ignorar dias sem vendas, use a medida Média móvel 7 dias sem zero. Esta pode ser a abordagem certa quando você possui uma tabela de data completa, mas deseja ignorar dias sem transações. Usando a fórmula Mover média 7 dias, o resultado é correto porque AVERAGEX considera automaticamente apenas valores não em branco. Tenha em mente que você pode melhorar o desempenho de uma média móvel, persistiendo o valor em uma coluna calculada de uma tabela com a granularidade desejada, como data, data ou produto. No entanto, a abordagem de cálculo dinâmico com uma medida oferece a capacidade de usar um parâmetro para o número de dias da média móvel (por exemplo, substituir ltnumberofdaysgt por uma medida que implementa o padrão da Tabela de Parâmetros). A mediana corresponde ao percentil 50, que você pode calcular usando o padrão Percentile. No entanto, o padrão Mediano permite otimizar e simplificar o cálculo mediano usando uma única medida, em vez das diversas medidas exigidas pelo padrão Percentile. Você pode usar essa abordagem quando você calcula a mediana para os valores incluídos no ltvaluecolumngt, conforme mostrado abaixo: Para melhorar o desempenho, você pode querer persistir o valor de uma medida em uma coluna calculada, se desejar obter a mediana para os resultados de Uma medida no modelo de dados. No entanto, antes de fazer essa otimização, você deve implementar o cálculo MedianX com base no seguinte modelo, usando esses marcadores: ltgranularitytablegt é a tabela que define a granularidade do cálculo. Por exemplo, pode ser a tabela Data se você deseja calcular a mediana de uma medida calculada no nível do dia, ou pode ser VALORES (8216DateYearMonth) se você deseja calcular a mediana de uma medida calculada no nível do mês. Ltmeasuregt é a medida para calcular para cada linha de ltgranularitytablegt para o cálculo mediano. Ltmeasuretablegt é a tabela contendo dados usados ​​pelo ltmeasuregt. Por exemplo, se o ltgranularitytablegt for uma dimensão como 8216Date8217, então o ltmeasuretablegt será 8216Internet Sales8217 contendo a coluna de Quantidade de Vendas da Internet somada pela medida Internet Total Sales. Por exemplo, você pode escrever a mediana de Internet Total Sales para todos os Clientes em Adventure Works da seguinte maneira: Dica O seguinte padrão: é usado para remover linhas do ltgranularitytablegt que não possuem dados correspondentes na seleção atual. É uma maneira mais rápida do que usar a seguinte expressão: No entanto, você pode substituir toda a expressão CALCULATETÁVEL com apenas ltgranularitytablegt se você quiser considerar os valores em branco do ltmeasuregt como 0. O desempenho da fórmula MedianX depende do número de linhas no Mesa iterada e sobre a complexidade da medida. Se o desempenho for ruim, você pode persistir o resultado do ltmeasuregt em uma coluna calculada do lttablegt, mas isso eliminará a capacidade de aplicar filtros ao cálculo mediano no horário da consulta. O Percentile Excel possui duas implementações diferentes do cálculo percentil com três funções: PERCENTILE, PERCENTILE. INC e PERCENTILE. EXC. Todos retornam o percentil K dos valores, onde K está no intervalo de 0 a 1. A diferença é que PERCENTILE e PERCENTILE. INC consideram K como um intervalo inclusivo, enquanto o PERCENTILE. EXC considera o intervalo K de 0 a 1 como exclusivo . Todas essas funções e suas implementações DAX recebem um valor percentil como parâmetro, que chamamos de valor do percentil K. ltKgt está no intervalo 0 a 1. As duas implementações DAX do percentil requerem algumas medidas semelhantes, mas diferentes o suficiente para exigir Dois conjuntos diferentes de fórmulas. As medidas definidas em cada padrão são: KPerc. O valor percentil corresponde a ltKgt. PercPos. A posição do percentil no conjunto de valores ordenados. ValueLow. O valor abaixo da posição percentil. ValueHigh. O valor acima da posição percentil. Percentile. O cálculo final do percentil. Você precisa das medidas ValueLow e ValueHigh caso o PercPos contenha uma parte decimal, pois então você deve interpolar entre ValueLow e ValueHigh para retornar o valor do percentil correto. A Figura 4 mostra um exemplo dos cálculos feitos com fórmulas de Excel e DAX, usando ambos os algoritmos do percentil (inclusivo e exclusivo). Figura 4 Cálculos de percentil usando fórmulas do Excel e o cálculo equivalente do DAX. Nas seções a seguir, as fórmulas Percentile executam o cálculo em valores armazenados em uma coluna de tabela, DataValue, enquanto as fórmulas PercentileX executam o cálculo em valores retornados por uma medida calculada em uma granularidade dada. Percentile Inclusive The Percentile A implementação inclusiva é a seguinte. Percentile Exclusive The Percentile A implementação exclusiva é a seguinte. PercentileX Inclusive A implementação PercentileX Inclusive é baseada no seguinte modelo, usando estes marcadores: ltgranularitytablegt é a tabela que define a granularidade do cálculo. Por exemplo, pode ser a tabela Data se você deseja calcular o percentil de uma medida no nível do dia, ou pode ser VALORES (8216DateYearMonth) se você deseja calcular o percentil de uma medida no nível do mês. Ltmeasuregt é a medida para calcular para cada linha de ltgranularitytablegt para cálculos percentis. Ltmeasuretablegt é a tabela contendo dados usados ​​pelo ltmeasuregt. Por exemplo, se o ltgranularitytablegt for uma dimensão tal como 8216Date, 8217, o ltmeasuretablegt será 8216Sales8217 contendo a coluna Montante somada pela medida Total Montante. Por exemplo, você pode escrever o PercentileXInc da quantidade total de vendas para todas as datas na tabela de data da seguinte forma: PercentileX Exclusive A implementação exclusiva do PercentileX é baseada no modelo a seguir, usando os mesmos marcadores usados ​​no PercentileX Inclusive: por exemplo, você Pode escrever o PercentileXExc do valor total das vendas para todas as datas na tabela de data da seguinte forma: Mantenha-me informado sobre os próximos padrões (boletim informativo). Desmarque para baixar livremente o arquivo. Publicado em 17 de março de 2014 por Implementação de software com Arduino e PureData - O MaxMSP Touch é uma tecnologia de detecção capacitiva desenvolvida pela Walt Disney Research, que é capaz de fornecer detecção de toque e gesto praticamente qualquer tipo de objeto ou superfície. Ao contrário do sensor capacitivo comum, que detecta a carga capacitiva de um circuito ressonante em uma única freqüência, o Touch usa um oscilador de freqüência variável, levando muitas leituras em muitas freqüências diferentes. A atividade externa do mundo com o objeto pode ser inferida pelo perfil de dados resultante. O documento original está aqui. DZL e Mads Hobye são dois incríveis personagens Illutron, que descobriram uma maneira muito inteligente de implementar este dispositivo limpo usando um Arduino e um monte de componentes passivos muito baratos e comuns. Eles foram gentis o suficiente para compartilhar seus esforços para o mundo aqui e aqui. E para fazer esta instrução maravilhosa. Então, decidimos tentar construir o pequeno thingie sozinho e conectá-lo com dois ambientes que amamos: PureData e MaxMSP. Lista de componentes para a placa de toque: Resistores: 10k, 1M, 3,3k Capacitores: 100pf, 10nf Diodo: 1N4148 Bobina indutor: 10mH Decidimos construir uma placa separada com PCB padrão em vez de um escudo Arduino, possivelmente torná-lo portátil Outros microcontroladores ou layouts diferentes da placa Arduino (micro, mega e assim por diante). Estes são os esquemas: e isso é o que construímos: o fio VERMELHO à esquerda está conectado ao pino 9, que atuará como um oscilador de freqüência variável. O fio YELLOW carrega o sinal de saída e está conectado ao pino analógico 0. O fio AZUL à esquerda é conectado à terra. No lado direito, o fio VERMELHO é anexado ao objeto, enquanto o fio AZUL pode ser conectado à terra ou a outro objeto, dependendo das aplicações. A implementação original pela Disney usa um gerador de onda sinusoidal muito preciso, enquanto temos que viver com uma onda quadrada muito menos elegante com muitos harmônicos indesejados. Como DZL descobriu que este não é um grande problema, já que o sinal escolhido APÓS a bobina é estável o suficiente para ser usado e processado. O processador ATMEL do Arduino fornece três relógios de hardware programáveis, que podem operar nas freqüências necessárias pelo Touch e, portanto, fornecer o sinal oscilante necessário. Programar os relógios de hardware de um Arduino é um pouco mais complicado do que escrever seu esboço médio porque temos que mexer diretamente com os registradores do ATMEL. Por favor, veja este tutorial muito bem feito se precisar de mais informações. Basicamente, o que fizemos foi configurar o modo CTC para Timer1 e aumentar o registro de comparação dentro de um loop for, a fim de deslizar progressivamente da maior freqüência gerável (8MHz) para os mais baixos. O projeto original da DZL e Mads Hobye envia as medidas digitalizadas provenientes do pino analógico 0 através da porta serial em formato binário. Nós decidimos tornar as coisas um pouco menos eficientes, mas mais humanas (e patcher) legíveis usando a codificação ASCII. Cada linha de dados é feita pelo índice de freqüência, um caractere espacial, o valor medido para essa freqüência e um caractere de nova linha. Os patches PureData e MaxMSP são muito semelhantes entre eles: eles lêem as linhas de dados provenientes da porta serial, armazenam os valores em uma matriz e encontram o índice do maior valor na matriz. Para detectar um novo gesto, o usuário deve executá-lo no objeto e gravar o índice de pico como referência. A referência mais próxima ao novo pico corresponderá ao gesto detectado. Decidimos adicionar uma média móvel exponencial nas leituras de sinal, a fim de reduzir o ruído e melhorar a consistência de detecção. Para cada índice de frequência i. O novo valor y no tempo n é calculado da seguinte forma: onde xi, n é a leitura atual e a é um fator que varia de 0 a 1. Poucos valores de um pouco de suavização e atualizações rápidas, enquanto grandes valores de uma média de lotes de Suavizando, mas muito lentas atualizações. Tanto o algoritmo de detecção quanto o algoritmo de suavização são muito simples e difíceis de escrever dentro de uma linguagem patcher, como PureData ou MaxMSP. Descobrimos muito mais fácil fazer todo o processamento de dados dentro do Arduino, produzindo apenas índice e valor do máximo para cada iteração. Torna-se impossível traçar o gráfico extravagante, mas os remendos tornam-se muito mais limpos e não obstruímos a lenta transmissão em série Arduino para PC com muitos dados indesejados. Você pode baixar o código para ambas as versões (touchgraph e touchepeak, respectivamente) em nosso repositório github.

No comments:

Post a Comment