Tuesday 5 December 2017

Multicartos em movimento média crossover


Idealmente, você gostaria que um sinal filtrado fosse liso e livre de atraso. Lag causa atrasos em seus negócios e o aumento do atraso nos seus indicadores geralmente resulta em menores lucros. Em outras palavras, os atrasados ​​chegam ao que se deixa na mesa depois que a festa já começou. É por isso que investidores, bancos e instituições em todo o mundo pedem a Jurik Research Moving Average (JMA). Você pode aplicá-lo exatamente como você faria com qualquer outra média móvel popular. No entanto, JMAs melhorou timing e suavidade irá surpreender você. A linha cinzenta irregular no gráfico simula a ação de preços que começa em um baixo intervalo de negociação, então as lacunas para uma maior faixa de negociação. Como ninguém gosta de esperar ao lado, um filtro de redução de ruído perfeito (linha verde) mover-se-á suavemente ao longo do centro do primeiro intervalo de negociação e, em seguida, pulará para o centro da nova faixa de negociação quase que de imediato. Ampère de linguagem Amiga PowerLanguage Tutorial 8211 Lição 02 : Codificação de uma média móvel Criando o primeiro indicador real e expandindo os conceitos básicos Depois de se familiarizar com o PowerLanguage Editor no tutorial anterior PowerLanguage 8211 lição 01, agora vamos construir nesta base. Caso você não tenha lido a última lição, sugiro fazer isso primeiro, pois também pode ajudá-lo a entender esta lição. Let8217s começam com a lição today8217s agora. Abra o PowerLanguage Editor e crie um novo estudo de indicadores. Eu chamarei o meu ABCPowerLanguage Lesson 02 8211 Moving Average para que eu possa encontrá-lo facilmente dentro do meu editor mais tarde. O nome é totalmente válido para você, e você pode até mesmo mudá-lo mais tarde. Como a última parte do nome do indicador sugere, vamos criar e traçar uma média móvel hoje. Você provavelmente já viu uma média móvel em um gráfico antes ou lembre-se da média do termo de matemática. O uso principal para médias é como um filtro para suavizar os dados que você inseriu. A imagem exibe uma média móvel simples de 200 períodos que dá um resultado muito suave. A desvantagem dessa suavidade é que você apresenta mais atraso. Isso significa que a média se torna menos sensível às mudanças no preço. Se você olhar para a próxima imagem, você verá o quanto o comportamento de uma média móvel simples de 200 períodos é quando você a compara com a média do período 10 verde. O último é muito mais rápido em responder às mudanças de preços, mas, por sua vez, há muito mais 8220noise8221 na média. Existem muitos tipos diferentes de médias que variam principalmente no impacto que cada ponto de dados tem no resultado da média. Uma média móvel simples de 200 períodos simplesmente calculará uma soma dos últimos 200 pontos de dados e dividirá em 200. O resultado é uma média que dá a cada ponto de dados a mesma influência (o mesmo valor) no resultado. A primeira barra e a última barra que fazem parte da média são ponderadas da mesma forma para o resultado. Duas outras médias proeminentes e comumente usadas são a média móvel exponencial e a média móvel ponderada. Ambos têm maiores fatores de ponderação para os pontos de dados mais recentes. Em uma média móvel ponderada, a ponderação diminuirá na progressão aritmética. Para a média exponencial, ele diminuirá exponencialmente, daí o nome. Isso será tão teoricamente quanto ele vai conseguir para hoje. Se você quiser ler mais detalhes sobre médias, você pode começar com este artigo da Wikipédia. Para uma maior compreensão desta lição, você não precisa mais desta informação adicional. Let8217s começam com a codificação de nossa média. Nosso indicador não deve apenas calcular uma média, mas deve produzir o resultado em um gráfico. EasyLanguage tem a palavra reservada 8220Plot8221 para isso e nós vamos usá-lo para fazer isso. Antes de começar com a programação de algo, sempre é uma boa idéia dar um passo atrás e pensar sobre o que você está tentando realizar e como você vai fazer isso. Como este estudo não é muito complexo, há apenas algumas coisas para pensar. Quando os estudos se tornam mais complexos, você pode economizar muito tempo com um bom planejamento antecipado. O objetivo é um estudo que calcula e traça uma média móvel simples. Queremos poder alterar o comprimento da média com uma entrada, portanto, é fácil de personalizar. Para a média, precisamos somar a quantidade de valores que correlacionam a entrada de comprimento. Nós não queremos escrever código para cada entrada de comprimento possível para a soma. Isso significa que o código precisa ser capaz de calcular todas as entradas de comprimento possíveis por conta própria. Você já tem uma idéia de como podemos conseguir isso. A resposta é que precisamos de uma declaração de iteração que pode ser executada repetidamente em cada barra por um número específico de vezes (nossa entrada de comprimento). Eu sei que isso parece complicado, mas será bastante simples. Usaremos o 8220for loop8221 para esta tarefa. Este loop repete uma ou mais instruções para um número específico de iterações definido pelo usuário. O código EasyLanguage é executado de cima para baixo e geralmente da esquerda para a direita. Uma vez que uma linha de código é executada, a próxima linha é executada e assim por diante. Caso a linha de código seja o início de um loop, as linhas de código dentro do loop serão executadas pelo valor especificado. Somente quando o loop terminar a próxima linha de código após o loop ser executado. A for loop parece e funciona da seguinte maneira: Uma variável numérica será incrementada (ou diminuída) com cada ciclo do loop a partir do seu valor de início até seu valor final. Esta imagem exibe um loop básico para uma variável de contador numérico (ii neste caso) e o valor inicial de 0. As iterações serão realizadas dez vezes até que o contador tenha atingido o valor de 9. Então o bloco de loop é executado o último Tempo e saída. Você não precisa incrementar o valor do contador, o código do loop cuida disso. O valor do contador atual será armazenado na variável do contador. Então, você pode acessá-lo para cada ciclo de loop e usá-lo para seus cálculos. Isso será útil para calcular nossa média. O loop for também pode diminuir o contador com cada iteração. O valor inicial neste exemplo é 9, mas o loop é executado dez vezes até que seja encerrado, também. O contador simplesmente diminui com cada iteração por um até atingir 0. Na Easylanguage, você pode referenciar palavras reservadas, variáveis ​​e funções reservadas a dados de uma barra anterior muito fácil. Usando um número entre colchetes seguindo a palavra reservada, cálculo ou variável retornará o valor para esta barra particular. O número cresce a partir da barra atual (que você faz referência com 0) em incrementos de um. Quando você deseja armazenar o valor do anterior bar8217s próximo a uma variável chamada PrevCloseValue você pode fazê-lo assim: queremos construir nossa média usando o Close para as últimas barras X. Onde X é uma entrada para permitir mais flexibilidade. Você já sabe que queremos usar um loop para isso e acabamos de descobrir como podemos referenciar os valores de Close para as barras anteriores. Isso deve ser suficiente para escrever o código para a parte principal do nosso indicador. Let8217s continuam criando as seções de entrada e variável. Você pode lembrar da última lição que o uso de nomes variáveis ​​de variáveis ​​é uma boa prática de codificação e pode salvar muitos problemas mais tarde. Precisamos declarar uma entrada para que possamos alterar o tamanho da nossa média no gráfico. Além disso, queremos uma variável que contenha o somatório, um para manter o valor do contador e um último para armazenar o valor médio. Para exibir o valor no gráfico, usaremos a palavra reservada Plot. Isto é seguido por um número para que você possa distinguir entre lotes diferentes. O que é necessário, pois você pode usar até 999 parcelas em Multicartas. A palavra reservada reservada pode ter vários parâmetros como cor, tamanho do gráfico e alguns mais. Vamos manter isso simples aqui e usar Plot1 com apenas dois parâmetros 8211 o primeiro para a expressão numérica a ser plotada e um segundo para o nome que queremos atribuir ao enredo. O código final será algo assim: depois de compilar este código, estamos quase prontos para carregar nosso indicador em um gráfico em Multicartas. Let8217s apenas dê uma olhada nas propriedades do indicador primeiro. Você pode encontrá-los sob - gt File - gt Properties ou clicando no símbolo Properties no menu (deve ser o único para Compile). Sob a guia Estilo, você pode alterar a cor, o estilo da linha e a espessura para o gráfico que você criou. Se você for para a guia de propriedades, há várias opções para configurar ou verificar, mas, por enquanto, você só pode querer certificar-se de que a opção 8220Same como Symbol8221 esteja marcada. Isso assegurará que o indicador seja aplicado diretamente em seu gráfico em vez de um subchart. Agora você está pronto para aplicar o indicador a um gráfico de sua escolha. Quando você tem um gráfico aberto na janela principal Multicartas, você pode simplesmente inserir o indicador neste gráfico. Quando o indicador é aplicado, o resultado deve ser semelhante à captura de tela acima. No entanto, isso não parece certo, pois isso não parece uma média móvel. A série de preços é quase uma linha plana e o gráfico que vem do nosso indicador está aumentando apenas. Com o E-Mini SampP 500 na área de 18217800, um valor médio móvel de 10 bar para este mercado de 182179528217647 obviamente não está correto. Isso aponta para um problema em nossos cálculos. Você tem uma idéia do que o código está faltando. Na verdade, é apenas um pouco, mas um detalhe muito importante que nós esquecemos de adicionar. Precisamos adicionar algo na frente do loop for. O loop simplesmente continua adicionando os valores das dez barras anteriores com cada nova barra. Isso está bem e nós queremos que ele faça exatamente isso, mas nós não queremos que ele adicione os novos valores aos valores antigos. Em outras palavras, você precisa se certificar de que CloseValueSum doesn8217t ainda mantenha os valores antigos quando o loop for inicia. Com a adição de uma linha ao código, o resultado é exatamente o que queríamos alcançar. Também podemos alterar a aparência do indicador8217 na tabela. Usando a aba estilo sob 8220Format Study8221, podemos alterar o resultado visual como estilo de linha, cor e espessura. Sob a guia 8220Inputs8221 você encontrará a entrada que você criou e a configuração padrão para o comprimento. Ao carregar uma segunda instância do estudo e usando uma cor e comprimento diferentes, você pode confirmar que o estudo dá um resultado diferente com uma entrada de comprimento diferente. Se você está tendo problemas para encontrar a correção, sinta-se à vontade para nos contatar com sua solução e tentaremos ajudá-lo em tempo hábil. Tenho medo de pedir apenas a solução, mas, pelo menos, você pode mostrar que você também envolveu algum esforço para encontrar a solução. Como última sugestão, você pode dar uma olhada em outros indicadores ou funções comuns e encontrar alguma inspiração para o link perdido. Espero que tenha gostado desta lição do tutorial Powerlanguage e estou ansioso para trabalhar com você no próximo.

No comments:

Post a Comment