Eu sei que isso é viável com o impulso de acordo com: Mas eu realmente gostaria de evitar o uso de impulso. Eu mencionei e não encontrei nenhum exemplo adequado ou legível. Basicamente eu quero acompanhar a média móvel de um fluxo contínuo de um fluxo de números de ponto flutuante usando os números 1000 mais recentes como uma amostra de dados. Qual é a maneira mais fácil de conseguir isso, experimentei usar uma matriz circular, uma média móvel exponencial e uma média móvel mais simples e descobriu que os resultados da matriz circular correspondiam melhor às minhas necessidades. 12 de junho 12 às 4:38 Se suas necessidades são simples, você pode tentar usar uma média móvel exponencial. Simplificando, você faz uma variável de acumulador e, conforme seu código examina cada amostra, o código atualiza o acumulador com o novo valor. Você escolhe um alfa constante que está entre 0 e 1, e calcula isso: Você só precisa encontrar um valor de alfa onde o efeito de uma determinada amostra dura apenas cerca de 1000 amostras. Hmmm, na verdade, não tenho certeza de que isso é adequado para você, agora que eu coloquei aqui. O problema é que 1000 é uma janela bastante longa para uma média móvel exponencial. Não tenho certeza se houver um alfa que espalhe a média nos últimos 1000 números, sem fluxo inferior no cálculo do ponto flutuante. Mas se você quisesse uma média menor, como 30 números ou mais, esta é uma maneira muito fácil e rápida de fazê-lo. Respondeu 12 de junho 12 às 4:44 1 na sua postagem. A média móvel exponencial pode permitir que o alfa seja variável. Então isso permite que ele seja usado para calcular médias base de tempo (por exemplo, bytes por segundo). Se o tempo decorrido desde a última atualização do acumulador for superior a 1 segundo, você deixa alfa ser 1.0. Caso contrário, você pode deixar o alfa ser (usecs desde a última atualização1000000). Ndash jxh 12 de junho 12 às 6:21 Basicamente eu quero acompanhar a média móvel de um fluxo contínuo de um fluxo de números de ponto flutuante usando os 1000 números mais recentes como amostra de dados. Observe que as atualizações abaixo atualizam o total como elementos como adicionados substituídos, evitando a passagem O (N) dispendiosa para calcular a soma - necessária para a demanda média. Total é feito um parâmetro diferente de T para suportar, e. Usando um longo tempo quando totalizando 1000 long s, um int para char s, ou um duplo para float total s. Isso é um pouco falho em que numsamples poderia ultrapassar o INTMAX - se você se importar, você poderia usar um sinal não assinado por muito tempo. Ou use um membro adicional de dados do bool para gravar quando o recipiente é preenchido pela primeira vez ao andar de bicicleta numsamples em torno da matriz (o melhor que renomeou algo inócuo como pos). Respondeu 12 de junho 12 às 5:19 um assume que quotvoid operator (T sample) quot é realmente quotvoid operatorltlt (T sample) quot. Ndash oPless Jun 8 14 às 11:52 oPless ahhh. Bem visto. Na verdade, eu quis dizer que ele seria um operador vazio () (amostra T), mas é claro que você poderia usar qualquer notação que você gostasse. Vou consertar, obrigado. Ndash Tony D 8 de junho 14 às 14: 27 Média móvel móvel (EMA) A fórmula EMA clássica é: ao contrário da média móvel simples. Onde o peso de todas as barras anteriores é igual, a Média de Movimento Exponencial torna mais importante a barra mais recente. O peso de cada barra mais antiga diminui exponencialmente. Abaixo está um gráfico de peso para N 10 (1 é o preço atual, 2 o anterior e assim por diante): A fórmula de peso é onde eu estou a uma distância da barra mais recente. 0 significa o mais recente, 1 a barra anterior e assim por diante. Primeiro valor A fórmula faz referência ao valor anterior e não existe um acordo padrão, qual é o primeiro valor (mais antigo). Implementação diferente de EMA usa: o primeiro preço (MT4, Marketscope) ou a média móvel simples dos primeiros preços N (Stockcharts). No lugar da média móvel simples A média móvel exponencial pode ser usada exatamente como a média móvel simples. Especialmente na situação em que a inércia da Média de Movimento Simples não pode ser ignorada. Basta comparar EMA (10) e MVA (10) aplicadas nos mesmos preços: Limitações A Média de Movimento Exponencial baseia-se em todos os seus valores anteriores, então o resultado do indicador para uma barra específica depende da quantidade de dados históricos. Então, na situação em que mais dados históricos são carregados, o valor do indicador pode ser diferente do calculado anteriormente. Indicadores deste artigo em outros idiomas
No comments:
Post a Comment