Tuesday 21 November 2017

Volume Média Móvel Afl


Ao passar por indicadores de divergência aqui no fórum, em um MACD de Volume. Eu apenas testei com o meu e não coincidiu com o meu. Verifiquei a fórmula que era muito diferente da média móvel ponderada por volume. O cálculo para MACD é EMA de períodos de 12 dias de Closing Price MINUS o EMA de 26 dias do preço de fechamento. Um MACD ponderado em volume é muito eficaz, pois inclui o componente de volume juntamente com o preço. Daí o VWMACD funciona. A EMA do Volume 12 dias de Período de Fechamento EMA de 12 dias de volume MENOS O EMA do Volume 26 dias de Período de Fechamento EMA de 26 dias de Volume Eu forneci a versão corrigida da Média de Movimento Ponderada por Volume conforme descrito no Livro Bollinger em Bandas de Bollinger. Os sinais de compra e venda permanecem os mesmos que usamos no MACD. NB. Às vezes, os volumes precedem as ações de preços, às vezes ocorrem simultaneamente e algumas vezes os preços precedem as ações de volume. Estou trabalhando na Divergência deste VWMACD, que vou publicar assim que eu concluir e testá-lo. Tags: oscillator, amibroker Enviado por prasadbrao há mais de 4 anos Formulas similaresFig 1. Open price array Qualquer outra matriz é calculada a partir dessas 6 matrizes usando fórmulas incorporadas na AFL. Esses arrays não são armazenados no banco de dados, mas são calculados quando necessário. Cada valor individual em uma matriz tem uma data associada a ele. Se você tiver a opção da ponta da ferramenta ativada (Preferências - Gt Guia Diversos - Dicas de ferramentas de dados do preço), quando você move o cursor sobre a vela em um gráfico diário de velas, aparece um pequeno retângulo amarelo. A AFL lança os valores de volume aberto, baixo, alto, fechado na matriz apropriada e os exibe dentro da ponta da ferramenta. Arrays de processamento - por que AFL é tão rápido Vejamos como a seguinte declaração é processada: MyVariable (High Low) 2 Quando AFL está avaliando uma declaração como essa (High Low) 2, não precisa re-interpretar este código para cada barra. Em vez disso, leva o High ARRAY e Low ARRAY e adiciona elementos de matriz correspondentes em um único estágio. Em outras palavras, o operador (e outros operadores também) trabalham em arrays ao mesmo tempo e são executados com velocidade de código compilado, então a matriz resultante (cada elemento dele) é dividida por 2 também em estágio único. Vamos ver os detalhes - veja fig 2. Quando o motor AFL ver o (alto baixo) 2 primeiro eleva arrays High (1) e Low (2) e produz (em passo compilado único) a matriz temporária (3). Em seguida, ele cria a matriz final (4) dividindo cada elemento de matriz temporária por dois. Este resultado é atribuído ao MyVariable Fig 2. Etapas AFL ao processar (High Low) 2 Médias móveis, declarações condicionais Vamos agora considerar o seguinte código: Cond1 Close gt MA (Close, 3) Cond2 Volume gt Ref (Volume, -1) Comprar Cond1 e Cond2 Sell High gt 1.30 Este código gera um sinal de compra quando o fechamento de hoje é maior que a média móvel de 3 dias de fechamento. O volume de hoje é maior do que o volume de ontem. Ele também gera um sinal de venda quando a alta de hoje é superior a 1,30. Se no seu código AFL você precisa ver se o preço de fechamento é maior do que dizer, uma média móvel simples de 3 dias A AFL primeiro executará a matriz fechada criando uma nova matriz chamada MA (fechar, 3) para o símbolo que está sendo analisado. Cada célula da nova matriz pode então ser comparada uma para uma na matriz próxima. No exemplo, uma matriz chamada Cond1 é criada dessa maneira. Para cada célula onde o preço de fechamento é maior do que o valor da célula correspondente em MA (fechar, 3), o valor da célula para a nova disposição Cond1 é definido como 1. Se o preço de fechamento não for maior que o preço correspondente na matriz fechada, o valor Em Cond1 é definido como 0. O AFL também pode procurar para frente ou para trás uma série de células em uma matriz usando a função Ref (veja a linha 6 onde a matriz temporária é criada segurando o volume do dia anterior) Na linha 9, uma nova matriz chamada Cond2 foi criada Comparando o valor de cada célula na matriz de volume com a configuração da célula anterior, o valor da célula Cond2 para 1 se for verdadeira e 0 se for falso. A linha 10 mostra uma matriz chamada Comprar criada comparando os valores da célula em Cond1 com os valores da célula em Cond2. Se a célula em Cond1 tiver um 1 E, então, a célula correspondente em Cond2 e a 1 é colocada na célula Comprar. A linha 11 mostra uma matriz chamada Vender criada sempre que o valor da célula na matriz fechada é maior do que 1,30. Obviamente, Buy and Sell são matrizes especiais cujos resultados podem ser exibidos na janela do Analisador ou na tela usando um valor vermelho ou verde conforme necessário. Ficando um pouco mais complexo Os exemplos acima foram muito simples. Agora vou explicar 3 coisas que parecem gerar alguma confusão entre os usuários: referenciando os valores selecionados (SelectedValue, BeginValue, EndValue, LastValue) Função IIF Função AMA Conforme escrito no Tutorial: Guia básico de gráficos, você pode selecionar qualquer citação do gráfico E você pode marcar o alcance From-To. A barra selecionada pela linha vertical é chamada de barra quotselected, enquanto as barras de início e final do intervalo são chamadas quotbeginquot e quotendquot bars. A AFL possui funções especiais que permitem referenciar o valor da matriz na barra selecionada, inicial e final, respectivamente. Essas funções são chamadas SelectedValue, BeginValue e EndValue. Existe uma função mais chamada LastValue que permite obter o valor da matriz na última barra. Essas quatro funções levam o elemento de matriz na barra dada e retornam SINGLE NUMBER representando o valor da matriz em determinado ponto. Isso permite calcular algumas estatísticas sobre os pontos selecionados. Por exemplo: EndValue (Close) - BeginValue (Close) Dá-lhe mudança de dólar entre os preços fechados em selecionados de-para o alcance. Quando o número recuperado por qualquer uma dessas funções é comparado a uma matriz ou a qualquer outra operação aritmética envolvendo número e a matriz é executada, ela funciona como o número abrangido por todos os elementos da matriz. Isto está ilustrado na tabela abaixo (linhas 2, 6, 7). A cor verde marca quotbeginquot bar e marcas de cores vermelhas quotendquot bar. A barra selecionada é marcada com azul. Agora, a função IIF (condição, truepart, falso). Isso funciona que retorna o valor do segundo argumento (truepart) ou terceiro (falso) dependendo da condição. Como você pode ver na tabela acima na linha 8, os valores vêm de Close array (truepart) para barras quando a condição é verdadeira (1) e vem da matriz aberta (falso) para as barras restantes. Nesse caso, a matriz retornada pela função IIF consiste em alguns valores de Fechar e alguns valores da matriz aberta. Observe que tanto a parte verdade quanto a falsa são matrizes e são avaliadas independentemente da condição (portanto, esta não é uma instrução IF-THEN-ELSE regular, mas a função que retorna matriz) A função AMA (matriz, fator) parece causar mais problemas com Entendendo isso. Mas na verdade é muito simples. Funciona de forma recursiva. Isso significa que ele usa seu valor anterior para o cálculo do valor atual. Ele processa a barra de matriz por barra, com cada etapa ela multiplica a célula dada do primeiro argumento (matriz) por determinada célula do segundo argumento (fator) e o adiciona ao valor anterior de AMA multiplicado por (1 fator). Vamos considerar a coluna 3. O valor de AMA na coluna 3 é dado pelo preço de multiplicação da coluna 3 (1,23) por fator (0,4). Do que adicionamos o valor anterior de AMA (1.0363) multiplicado por (1-factor 0,6). O resultado (arredondado para 4 lugares) é de 1,23 0,4 1,0363 0,6 1,1138. Se você olhar para os números na linha 12, você pode notar que esses valores se parecem com uma média móvel de fechamento. E isso é verdade. Nós realmente apresentamos como calcular a média móvel exponencial de período variável usando a função AMA. Com a versão 4.40, o AmiBroker traz a capacidade de iterar através de aspas usando para e while loops e adiciona if-else declaração de controle de fluxo. Esses aprimoramentos tornam possível trabalhar AMBAS maneiras: use o processamento ARRAY (descrito acima) para velocidade e simplicidade ou use LOOPS para fazer coisas complexas. Como exemplo, como implementar a média exponencial do período variável (descrito acima) usando looping, veja o seguinte código: Period. Algum cálculo vaexp 0 Fechar 0 inicializar primeiro valor para (i 1 i lt BarCount i) calcular o valor do fator de suavização Fator 2 (Período i 1) calcular o valor do i-ésimo elemento da matriz usando esta barra fechar (fechar i) e Valor médio anterior (vaexp i - 1) vaexp i Factor Close i (1 - Factor) vaexp i - 1 Como você pode ver o código é mais longo, mas, por outro lado, é muito semelhante a qualquer outra linguagem de programação como CPascalBasic. Assim, as pessoas com alguma experiência com a programação podem achar mais fácil de entender. Se você é iniciante, sugiro aprender o processamento da matriz primeiro antes de cavar coisas mais complexas. Se você está tendo problemas para codificar a AFL, sugiro que você gere os arrays no exemplo no Excel para si mesmo. Se esse é um problema, obtenha alguma ajuda de um amigo - especialmente se esse amigo é um contador. Uma vez que você conseguiu o jeito, você pode codificar qualquer sistema de um livro sobre negociação - ou criar um você mesmo. --- Agradecimentos especiais a Geoff Mulhall pelo artigo original no boletim informativo que foi a base deste tutorial --- volume do enredo com média móvel do volume no mesmo gráfico de preços Postado originalmente por fishmarket Quando eu simplesmente arrasto e solto o gráfico de volume no Gráfico de preço, ele tornará a escala uma bagunça. Mas estou certo de que existe alguma maneira. Algum especialista aqui ajuda obrigado. Primeiro) Saiba como não arrastar para soltar em segundo lugar. O melhor recurso para usar é inserido em vez disso. Inserir (padrão quando arrastado para baixo) e Sobreposição criará cópias do código. Por fim, aqui está o código que você deseja. É melhor mantê-lo no painel separado (não folha) talvez com o RSI que não precisa de tela cheia. CODE Plot (Volume, DEFAULTNAME (), ParamColor (quotColorquot, colorBlueGrey), ParamStyle (quotStylequot, styleHistogram styleOwnScale styleThick, maskHistogram), 2) 1) 10 Day Moving Average of Volume Plot (EMA (V, 10), quotVMAquot, ColorBlack, StyleOwnScale) CÓDIGO Postado originalmente por mastermind007 Primeiro) Saiba como não arrastar-soltar Segundo) O melhor recurso para usar é inserido em vez disso. Inserir (padrão quando arrastado para baixo) e Sobreposição criará cópias do código. Por fim, aqui está o código que você deseja. É melhor mantê-lo no painel separado (não folha) talvez com o RSI que não precisa de tela cheia. CODE Plot (Volume, DEFAULTNAME (), ParamColor (quotColorquot, colorBlueGrey), ParamStyle (quotStylequot, styleHistogram styleOwnScale styleThick, maskHistogram), 2) 1) 10 Day Moving Average of Volume Plot (EMA (V, 10), quotVMAquot, ColorBlack, StyleOwnScale) CÓDIGO Muito obrigado. O que significa inserir-se significa um painel separado Você significa separar o painel do preço do volume porque pode afetar a perspectiva ou distrai a leitura do gráfico Sim. Concordo, combine com aqueles que não precisam de tela grande como o RSI. Além disso, posso pedir mais um conselho desses indicadores RSI, OBV (volume no balanço), oscilador de volume. Estes servem funções semelhantes apenas usam um desses 3 é ok, eu usarei qualquer um destes com o indicador KDJ, todos os agradecimentos recomendados. Postado originalmente por fishmarket Muito obrigado. O que significa inserir-se significa um painel separado Você significa separar o painel do preço do volume porque pode afetar a perspectiva ou distrai a leitura do gráfico Sim. Concordo, combine com aqueles que não precisam de tela grande como o RSI. Além disso, posso pedir mais um conselho desses indicadores RSI, OBV (volume no balanço), oscilador de volume. Estes servem funções semelhantes apenas usam um desses 3 é ok, eu usarei qualquer um destes com o indicador KDJ, todos os agradecimentos recomendados. Sim, Insert-link sempre criará o novo painel, mesmo que a folha ou o gráfico estejam totalmente em branco. Se você não quer uma AFL anterior (ou se ela estivesse em branco), você precisará primeiro inserir a que deseja e, em seguida, ir para AFL indesejável antigo, clique com o botão direito do mouse sobre ele e feche seu painel. Quando você clicar com o botão direito na janela do gráfico (LHS da tela), a opção Inserir-Link estará visível. Clique nele e criará um novo painel na sua folha atual. Se você superar AFL, não criará um novo painel. Mas, como eu disse anteriormente, Overlay e Insert criam várias cópias do mesmo código. Todos os indicadores servem a mesma função, ou seja, para ajudá-lo a identificar a tendência. Indicadores diferentes são úteis em diferentes condições de mercado.

No comments:

Post a Comment