Friday 25 August 2017

Média Móvel Ponderada Vba


Média móvel Este exemplo ensina como calcular a média móvel de uma série temporal no Excel. Um avearge móvel é usado para suavizar irregularidades (picos e vales) para reconhecer facilmente as tendências. 1. Primeiro, vamos dar uma olhada em nossas séries temporais. 2. Na guia Dados, clique em Análise de dados. Nota: não consigo encontrar o botão Análise de dados Clique aqui para carregar o complemento Analysis ToolPak. 3. Selecione Média móvel e clique em OK. 4. Clique na caixa Intervalo de entrada e selecione o intervalo B2: M2. 5. Clique na caixa Intervalo e digite 6. 6. Clique na caixa Gama de saída e selecione a célula B3. 8. Traçar um gráfico desses valores. Explicação: porque definimos o intervalo para 6, a média móvel é a média dos 5 pontos de dados anteriores e o ponto de dados atual. Como resultado, picos e vales são alisados. O gráfico mostra uma tendência crescente. O Excel não pode calcular a média móvel para os primeiros 5 pontos de dados porque não há suficientes pontos de dados anteriores. 9. Repita os passos 2 a 8 para o intervalo 2 e o intervalo 4. Conclusão: quanto maior o intervalo, mais os picos e os vales são alisados. Quanto menor o intervalo, mais próximas as médias móveis são para os pontos de dados reais. Como calcular as médias móveis ponderadas no Excel Usando Suavização Exponencial Análise de Dados do Excel para Dummies, 2ª Edição A ferramenta Exponencial de Suavização no Excel calcula a média móvel. No entanto, pesos de suavização exponencial os valores incluídos nos cálculos da média móvel de modo que os valores mais recentes tenham um efeito maior no cálculo médio e os valores antigos tenham um efeito menor. Essa ponderação é realizada através de uma constante de suavização. Para ilustrar como a ferramenta Exponential Smoothing funciona, suponha que you8217re volte a olhar a informação diária média de temperatura. Para calcular as médias móveis ponderadas usando o suavização exponencial, execute as seguintes etapas: Para calcular uma média móvel suavemente exponencial, primeiro clique no botão de comando Análise de Dados tab8217s. Quando o Excel exibe a caixa de diálogo Análise de dados, selecione o item Suavização exponencial da lista e clique em OK. O Excel exibe a caixa de diálogo Suavização exponencial. Identifique os dados. Para identificar os dados para os quais deseja calcular uma média móvel suavemente exponencial, clique na caixa de texto Intervalo de entrada. Em seguida, identifique o intervalo de entrada, digitando um endereço de faixa de planilha ou selecionando o intervalo da planilha. Se o seu intervalo de entrada incluir um rótulo de texto para identificar ou descrever os dados, marque a caixa de seleção Etiquetas. Forneça a constante de suavização. Digite o valor constante de suavização na caixa de texto Fator de Damping. O arquivo de Ajuda do Excel sugere que você use uma constante de suavização entre 0,2 e 0,3. Presumivelmente, no entanto, se você estiver usando esta ferramenta, você tem suas próprias idéias sobre o que é a constante de suavização correta. (Se você não tiver dúvidas sobre a constante de suavização, talvez você não precise usar essa ferramenta). Diga ao Excel onde colocar os dados médios móveis suavemente exponencial. Use a caixa de texto do intervalo de saída para identificar o intervalo da planilha na qual deseja colocar os dados médios móveis. No exemplo da planilha, por exemplo, você coloca os dados da média móvel no intervalo da planilha B2: B10. (Opcional) Gráfico dos dados suavizados exponencialmente. Para traçar os dados exponencialmente suavizados, selecione a caixa de seleção Gráfico. (Opcional) Indique que deseja obter informações de erro padrão calculadas. Para calcular erros padrão, selecione a caixa de seleção Erros padrão. O Excel coloca os valores de erro padrão ao lado dos valores médios móveis suavemente exponencial. Depois de terminar de especificar quais informações de média móvel você deseja calcular e onde você deseja, clique em OK. O Excel calcula informações médias móveis. Aqui está um código que deve ser útil para aqueles que usam análise técnica na negociação e que desejam testar estratégias no Excel. Calcula a média móvel simples, linearmente ponderada e exponencial. Além disso, vou apresentar e explicar as etapas para criar o formulário e o código VBA. Inserir um UserForm 8211 Nome: MAForm Adicionar quatro etiquetas dos controles da caixa de ferramentas 8211 Legendas conforme a tela de impressão acima Adicione uma ComboBox para a seleção do tipo de média móvel. Foi chamado comboTypeMA. Adicione dois controles RefEdit para o intervalo de entrada e o intervalo de saída. Adicionar uma caixa de texto para selecionar o período médio móvel Adicionar dois botões: Nome: botãoSubmit, Legenda: Enviar e Nome: botãoCancelar, Legenda: Cancelar Para gerar a lista suspensa para a seleção do tipo MA e carregar o formulário do usuário, um novo módulo Será inserido com o código abaixo. Os itens da ComboBox devem ser preenchidos por tipos de médias móveis e o formulário do usuário será carregado. Option Explicit Sub loadMAForm () Com MAFormboTypeMA. RowSource. AddItem Simples. AddItem Ponderado. AddItem Exponential End Com MAForm. Show End Sub Abaixo está o código atribuído ao botão Enviar. Private Sub buttonSubmitClick () Dim inputRange, outputRange As Range O inputRange conterá a série de preços usada para computar as MAs e o outputRange será preenchido com os valores das médias móveis. Dim InputPeriod As Integer O período médio móvel é declarado. Dim inputAddress, outputAddress As String Os intervalos de entrada e saída declarados como string. Se comboTypeMA. Value ltgt Exponencial e comboTypeMA. Value ltgt Simples e comboTypeMA. Value ltgt Ponderado True então MsgBox Selecione um tipo médio móvel da lista. RefInputRange. SetFocus Exit Sub Esta parte do procedimento impõe as primeiras restrições relativas aos dados enviados. Se o tipo de média móvel não estiver contido na lista suspensa, o procedimento não procederá ao próximo passo e o usuário será solicitado a selecioná-lo novamente. ElseIf RefInputRange. Value Então MsgBox Selecione o intervalo de entrada. RefInputRange. SetFocus Exit Sub ElseIf RefOutputRange. Value Então MsgBox Selecione o intervalo de saída. RefOutputRange. SetFocus Exit Sub ElseIf RefInputPeriod. Value Então MsgBox Selecione o período médio móvel. RefInputPeriod. SetFocus Exit Sub ElseIf Not IsNumeric (RefInputPeriod. Value) Então MsgBox Moving período médio deve ser um número. RefInputPeriod. SetFocus Exit Sub End Se outras restrições forem criadas. O intervalo de entrada, o intervalo de saída eo período de entrada não devem estar em branco. Além disso, o período médio móvel deve ser um número. InputAddress RefInputRange. Value Set inputRange Range (inputAddress) outputAddress RefOutputRange. Value Set outputRange Range (outputAddress) inputPeriod RefInputPeriod. Value Os argumentos para intervalos inputRange e outputRange serão entradaAddress e outputAddress declarados como strings. Se inputRange. Columns. Count ltgt 1 Então o intervalo de entrada MsgBox pode ter apenas uma coluna. RefInputRange. SetFocus Exit Sub O inputRange deve conter apenas uma coluna. ElseIf inputRange. Rows. Count ltgt outputRange. Rows. Count Então o intervalo de saída MsgBox tem um número diferente de linhas do que o intervalo de entrada. RefInputRange. SetFocus Exit Sub End If O inputRange e outputRange devem ter um número igual de linhas. Dim RowCount As Integer RowCount inputRange. Rows. Count Dim cRow As Integer ReDim inputarray (1 para RowCount) Para cRow 1 Para RowCount inputarray (cRow) inputRange. Cells (cRow, 1).Value Next cRow inputarray é declarado como array e it8217s Corresponde aos valores de cada linha do intervalo de entrada. Se inputPeriod gt RowCount Then MsgBox O número de observações selecionadas é amplificador amp RowCount e o período é amplificador amplificador InputPeriod. O intervalo de entrada deve ter uma quantidade maior ou igual de elementos que o período selecionado. RefInputRange. SetFocus Exit Sub End If Outra restrição é adicionada 8211 O intervalo de entrada deve ter uma quantidade maior ou igual de elementos do que o período. Se inputPeriod lt 0, então o período médio de MsgBox Moving deve ser superior a 0. RefInputPeriod. SetFocus Exit Sub End If O período médio móvel deve ser superior a zero. ReDim outputarray (inputPeriod To RowCount) Como Variant Também são determinadas as dimensões da matriz do outputarray. O limite inferior da matriz é o valor inputPeriod eo limite superior é o valor de RowCount (o número de elementos na entradaRange). Abaixo parte do procedimento calculado a média móvel simples, se a seleção para comTypeMA for simples. SMA ----------------------------------------- Se comboTypeMA. Value Simples Então Dim i , J Como Inteiro Dim temp Como Duplo Para i InputPeriod Para Temp de RowCount 0 Para j (i - (inputPeriod - 1)) Para i temp temp inputarray (j) Próximo j outputarray (i) entrada de temperaturaPeriod output outputRange. Cells (i, 1).Value outputarray (i) Next i outputRange. Cells (0, 1).Value SMA (amp inputPeriod amp) Basicamente, o procedimento calcula a média móvel dos últimos números x (x é igual ao InputPeriod), começando com o elemento de O inputarray é igual ao InputPeriod. Abaixo está um exemplo simplificado, que mostra cada etapa do procedimento. Neste exemplo, existem quatro números (no01, no02, no03 e no04) da linha 1 para a linha 4 e o período médio móvel é 3. Após cada nova média móvel, cada célula do outputRange irá tirar o valor do Outputarray. E depois de todas as médias móveis são computadas, na célula acima do outputRange, um título será inserido contendo o tipo e período médio móvel. Esta próxima parte computará a média móvel exponencial. EMA ------------------------------------------ ElseIf comboTypeMA. Value Exponential Then Dim Alpha Como duplo alfa 2 (inputPeriod 1) Para j 1 Para inputPeriod temp temp temparrayar (j) Próximo j outputarray (inputPeriod) temp inputPeriod Primeiro o valor de alpha é determinado. Porque na computação, o valor da EMA é baseado no EMA anterior, o primeiro será a média móvel simples. Para i inputPeriod 1 Para RowCount outputarray (i) outputarray (i - 1) alpha (inputarray (i) - outputarray (i - 1)) Próximo i Começando com a segunda média móvel, eles serão computados com base na fórmula acima: Anterior EMA plus alpha multiplicado pela diferença entre o número atual do inputarray e o valor EMA anterior. Para i inputPeriod Para RowCount outputRange. Cells (i, 1). Outputarray de Válido (i) Próximo i outputRange. Cells (0, 1).Value EMA (amp inputPeriod amp) Assim como o código para SMA, o outputarray será preenchido e A célula acima do outputarray representará o tipo eo período da média móvel. Abaixo está o código para calcular a média móvel ponderada. WMA ------------------------------------------ ElseIf comboTypeMA. Value Weighted Then Dim Temp2 As Integer Para i inputPeriod Para RowCount temp 0 temp2 0 Para j (i - (inputPeriod - 1)) Para i temp temp inputarray (j) (j - i inputPeriod) temp2 temp2 (j - i inputPeriod) Next j outputarray (i ) Temp temp2 outputRange. Cells (i, 1).Value outputarray (i) Next i outputRange. Cells (0, 1).Value WMA (amp inputPeriod amp) End If A tabela abaixo contém as etapas para calcular cada variável usada para o Cálculo de WMA. Assim como no exemplo anterior, neste há os números na entradaRange. E o período de entrada é 3. Abaixo está o código final do procedimento, que descarrega o formulário de usuário. Descarregar o MAForm End Sub O procedimento abaixo é para o botão Cancelar. Será adicionado no mesmo módulo. Private Sub buttonCancelClick () descarregar MAForm End Sub

No comments:

Post a Comment