Tutorial EasyLanguage PowerLanguage 8211 Lição 02: Codificando uma média móvel Criando o primeiro indicador real e expandindo o básico Depois que você se familiarizar com o PowerLanguage Editor na lição 8211 do tutorial anterior do PowerLanguage, vamos construir agora sobre essa base. Caso você não tenha lido a última lição, sugiro fazer isso primeiro, pois ela pode ajudá-lo a entender essa lição também. Let8217s começam com a lição today8217s agora. Abra o Editor PowerLanguage e crie um novo estudo de indicador. Eu vou nomear o meu ABCPowerLanguage Lição 02 8211 Moving Average para que eu possa encontrá-lo facilmente dentro do meu editor mais tarde. O nome é totalmente sua e é claro que você pode até mudar depois. 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 lembra-se do termo média da matemática. O principal uso das médias é como um filtro para suavizar os dados inseridos. A imagem exibe uma média móvel simples de 200 períodos que proporciona um resultado muito suave. A desvantagem dessa suavidade é que você introduz mais lag. Isso significa que a média se torna menos sensível às mudanças no preço. Se você der uma olhada na próxima imagem, verá como é diferente o comportamento de uma média móvel simples de 200 períodos ao compará-la com a média do período de 10 verdes. O último é muito mais rápido em responder às mudanças de preço, 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 computará uma soma dos últimos 200 pontos de dados e a dividirá por 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 ambas ponderadas da mesma 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 possuem fatores de ponderação mais altos 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 diminuirá exponencialmente, daí o nome. Isso será o mais teoricamente possível para hoje. Se você quiser ler mais alguns detalhes sobre as médias, você pode começar com este artigo da Wikipedia. Para entender melhor esta lição, você não precisará desta informação adicional. Let8217s começam com a codificação da nossa média. Nosso indicador não deve apenas calcular uma média, mas deve mostrar o resultado em um gráfico. O EasyLanguage tem a palavra reservada 8220Plot8221 para isso e vamos usá-lo para fazer isso. Antes de começar a programar algo, é sempre bom dar um passo para trás e pensar sobre o que você está tentando realizar e como vai fazer. 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 ser capazes de alterar o comprimento da média com uma entrada para que seja fácil personalizar. Para a média, precisamos somar a quantidade de valores correlacionados ao comprimento de entrada. Não queremos escrever código para todas as entradas possíveis para o somatório. 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 ideia de como podemos fazer isso? A resposta é que precisamos de uma declaração de iteração que possa 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á bem simples. Usaremos o 8220 para loop8221 para esta tarefa. Esse loop repete uma ou mais instruções para um número específico de iterações definido pelo usuário. O código do 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 começo de um loop, as linhas de código dentro do loop serão executadas para o valor especificado. Somente quando o loop terminar a próxima linha de código após o loop ser executado. Um loop for parece e funciona da seguinte maneira: Uma variável numérica será incrementada (ou decrementada) com cada ciclo através do loop desde o seu valor inicial até o seu valor final. Esta imagem exibe um loop básico com uma variável de contador numérico (ii neste caso) e o valor inicial de 0. As iterações serão feitas dez vezes até que o contador atinja o valor de 9. Então o bloco de loop é executado pela última vez. tempo e saiu. Você não precisa incrementar o valor do contador, o código de loop cuida disso. O valor atual do contador 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 decrementar o contador a cada iteração. O valor inicial neste exemplo é 9, mas o loop é executado dez vezes até ser finalizado também. O contador simplesmente diminui a cada iteração em um até chegar a 0. No Easylanguage você pode facilmente referenciar palavras reservadas, variáveis e funções relacionadas a dados de uma barra anterior. Usando um número entre colchetes após a palavra reservada, o cálculo ou a variável retornará o valor para essa barra específica. O número cresce a partir da barra atual (que você faz referência com 0) em incrementos de um. Quando você quiser armazenar o valor do bar8217s anterior, feche dentro de uma variável chamada PrevCloseValue, você pode fazer 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 Close para as barras anteriores. Isso deve ser suficiente para escrever o código para a parte principal do nosso indicador. O Let8217s continua criando as seções de entrada e variável. Você pode se lembrar da última lição que usar nomes de variáveis significativos é uma boa prática de codificação e pode salvar muitos problemas mais tarde. Precisamos declarar uma entrada para podermos alterar o tamanho da nossa média no gráfico. Além disso, queremos uma variável que mantenha a soma, uma para manter o valor do contador e uma última para armazenar o valor médio. Para produzir o valor no gráfico, usaremos a palavra reservada Plot. Isto é seguido por um número para que você seja capaz de distinguir entre diferentes gráficos. O que é necessário, já que você pode usar até 999 gráficos em Multicharts. A palavra reservada da parcela pode ter vários parâmetros como cor, tamanho da parcela e outros. Vamos mantê-lo 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 gráfico. O código final será parecido com isto: Depois de compilar este código, estamos quase prontos para carregar nosso indicador em um gráfico em Multicharts. Let8217s é só dar uma olhada nas propriedades do indicador primeiro. Você pode encontrá-los em - gt File - gt Properties ou clicando no símbolo Properties no menu (deve ser o único a compilar). Na guia Estilo, você pode alterar a cor, o estilo de linha e a espessura do gráfico que você criou. Se você for para a guia de propriedades, existem várias opções para definir ou verificar, mas por enquanto você pode querer apenas certificar-se de que a opção 8220Same As Symbol8221 esteja marcada. Isso garantirá que o indicador seja aplicado diretamente no gráfico, em vez de um subcartículo. Agora você está pronto para aplicar o indicador em um gráfico de sua escolha. Quando você tem um gráfico aberto na janela principal Multicharts, basta inserir o indicador neste gráfico. Quando o indicador é aplicado, o resultado deve ser semelhante ao da captura de tela acima. No entanto, isso não parece correto, já que isso não parece uma média móvel. A série de preços é quase uma linha fixa e a parcela proveniente do nosso indicador está apenas a subir. 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 detalhe pequeno, mas muito importante que nos esquecemos de adicionar. Precisamos adicionar algo na frente do loop for. O loop simplesmente continua adicionando os valores das dez barras anteriores a cada nova barra. Isso é bom e queremos que ele faça exatamente isso, mas não queremos que ele adicione os novos valores aos valores antigos. Em outras palavras, você precisa certificar-se de que o CloseValueSum não mantenha os valores antigos quando o loop for for iniciado. 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 indicador8217s no gráfico. Usando a guia de estilo em 8220Format Study8221, podemos alterar o resultado visual, como estilo de linha, cor e espessura. Sob a aba 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 usar uma cor e um comprimento diferentes, você pode confirmar que o estudo apresenta um resultado diferente com uma entrada de comprimento diferente. Se você está tendo problemas para encontrar a correção correta, não hesite em contatar-nos com a sua solução e tentaremos ajudá-lo em tempo hábil. Eu tenho medo de apenas pedir a solução, mas você precisa pelo menos ser capaz de mostrar que também se esforçou para encontrar a solução. Como última dica, você pode dar uma olhada em outros indicadores médios ou funções e encontrar alguma inspiração para o elo perdido ali. Espero que tenham gostado desta lição tutorial do Powerlanguage e estou ansioso para trabalhar com você na próxima. Aviso de Risco: Futuros de Negociação, Opções de Futuros e transações de câmbio de varejo fora da bolsa carregam níveis substanciais de risco e não são adequados para todos os investidores. Antes de decidir investir em instrumentos financeiros ou divisas estrangeiras, você deve considerar cuidadosamente se a negociação é adequada para você em função de suas circunstâncias, conhecimento e recursos financeiros. O alto grau de alavancagem pode funcionar contra você, assim como para você, e você pode perder todo ou mais do seu investimento inicial. TradeStation, PowerEditor, EasyLanguage e o logotipo EasyLanguage Specialist são marcas comerciais da TradeStation Technologies, Inc. Nem a TradeStation Technologies nem nenhuma de suas afiliadas reviram, certificaram, endossaram, aprovaram, desaprovaram ou recomendaram, e nem revisam, certificam, endossam, aprovar, desaprovar ou recomendar qualquer produto ou serviço que ofereça treinamento, educação ou consultoria sobre o uso do EasyLanguage. Copyright 2016 ABC Trading Group Todas as marcas registradas e direitos autorais são de propriedade de seus respectivos donos. MultiCharts 10 MultiCharts é uma plataforma de negociação premiada Se você precisa de software de troca diária ou se investe por períodos mais longos, a MultiCharts possui recursos que podem ajudar a atingir suas metas comerciais . Gráficos de alta definição, indicadores e estratégias embutidos, negociação com um clique do gráfico e do DOM, backtesting de alta precisão, força bruta e otimização genética, execução automatizada e suporte para scripts EasyLanguage são todas as ferramentas-chave à sua disposição. A liberdade de escolha tem sido a ideia motriz dos nossos MultiCharts e você pode vê-los na ampla variedade de feeds e brokers de dados suportados. Escolha o seu método de negociação, teste-o e comece a negociar com qualquer corretor suportado que você goste da vantagem do MultiCharts. Negociação Automática com MultiCharts: Negociação Automatizada com MultiCharts O MultiCharts suporta negociação automatizada (veja a Figura 1), incluindo backtesting em dados históricos, otimização de estratégia e teste de caminhada. O MultiCharts vem com mais de 100 estudos pré-programados baseados em muitos conceitos comerciais populares. Os comerciantes podem acessar o código para modificar qualquer estudo para atender às suas necessidades exatas. Além disso, os traders podem escrever seu próprio código no ambiente PowerLanguage ou trabalhar com um programador qualificado para desenvolver indicadores e estratégias personalizados. Figura 1: Um exemplo de uma estratégia automatizada em MultiCharts. Estudos pré-programados Em MultiCharts, um sinal é considerado uma ferramenta de análise técnica mecânica usada para especificar os pontos de entrada e saída do mercado de acordo com um conjunto de regras comerciais. Os sinais são os blocos de construção básicos das estratégias, e mais de 100 sinais pré-construídos e personalizáveis são incluídos na plataforma MultiCharts. Uma estratégia pode ser construída aplicando um conjunto desses sinais a um gráfico sem precisar escrever nenhum código. Os sinais podem ser usados para enviar ordens diretamente para um corretor, automatizando assim o processo de negociação. Para acessar os sinais pré-construídos, no menu principal, clique em Insert gt Study e selecione a guia Signals, conforme mostrado na Figura 2. Para selecionar um sinal, destaque o sinal apropriado e clique em OK. Para selecionar vários sinais, mantenha pressionado o botão Ctrl no teclado e clique para selecionar os sinais apropriados e, em seguida, clique em OK para aplicar os sinais ao gráfico. Estude e selecione a guia Sinais para visualizar uma lista de sinais pré-construídos. srci. investopedia / inv / articles / site / AutomatedTradingWithMultichartsFigure2.gif largura475 height555 srccetempi. investopedia / inv / articles / site / AutomatedTradingWithMultichartsFigure2.gifgt Figura 2: No menu principal, clique em Insert gt Study e selecione a guia Signals para ver uma lista de sinais pré-construídos. Imagem criada com MultiCharts. A Figura 3 mostra um gráfico diário de MHP com dois sinais aplicados: o MovAvg Cross LE e o MovAvg Cross LX. As setas azuis indicam as entradas de comércio e as linhas pontilhadas verdes mostram o resultado do comércio. Figura 3: Uma estratégia simples baseada em um crossover de média móvel criado pela aplicação de dois sinais a um gráfico. Os comerciantes podem personalizar os sinais clicando com o botão direito do mouse no gráfico ativo e selecionando Formatar Sinais Isso abre a janela Formatar Objetos. Selecione a guia Sinais, destaque o sinal apropriado e clique em Formatar. Isso abre a janela de formatação específica do sinal, mostrada na Figura 4, onde os operadores podem personalizar as variáveis de entrada, propriedades e a aparência das entradas, saídas e linhas de conexão (que conectam cada entrada de negociação e pontos de saída no gráfico). Figura 4: A janela de formatação específica do sinal é usada para definir as variáveis de entrada, como as entradas e saídas comerciais aparecem no gráfico e outras propriedades. Ambiente PowerLanguage O ambiente de programação PowerLanguage, chamado PowerLanguage Editor, é uma ferramenta de desenvolvimento para criar e gerenciar estudos do PowerLanguage. O PowerLanguage Editor é usado para executar uma variedade de funções, incluindo: Importando e exportando estudosProtegendo estudos (salvando como código fechado, por exemplo) Editando o código do estudo e configuraçõesCompilando (ou verificando) estudos 13 13Existem várias maneiras de abrir o PowerLanguage Editor Clique no ícone Run PowerLanguage Editor na barra de ferramentas MultiCharts Main (veja Figura 5) ou 13 Figura 5: Na barra de ferramentas principal, clique no ícone New PowerLanguage Editor para abrir o ambiente de programação. Clique no ícone PowerLanguage Editor na barra Quick Launch ou clique no ícone PowerLanguage Editor na área de trabalho. 13 13O Editor do PowerLanguage é aberto. A Figura 6 mostra o PowerLanguage Editor com os dois sinais que aplicamos anteriormente em um gráfico. Figura 6: Código dos sinais MovAvg Cross LE e MovAvg Cross LX no PowerLanguage Editor. Para criar um novo estudo, no menu principal, clique em Arquivo gt Novo. Isso abre a nova janela, mostrada na Figura 7, onde os usuários podem selecionar uma nova função, indicador ou sinal. Figura 7: No menu principal, clique em File gt New para criar uma nova função, indicador ou sinal. Tornar-se proficiente em qualquer linguagem de programação exige tempo e esforço consideráveis. Escrever código - seja para funções, indicadores ou sinais - em MultiCharts não é exceção. Detalhes específicos e ajuda para programar no ambiente do PowerLanguage podem ser encontrados no Guia do Usuário do MultiCharts clicando em Help gt MultiCharts Help no menu principal, e visitando o fórum MultiCharts clicando em Help gt Discussion Forum. Informações adicionais podem ser encontradas no MultiCharts MCWiki. Para acessar o portal da Web na página inicial do MultiCharts, clique com o mouse sobre Suporte no menu superior e clique em Ajuda on-line e Wiki. Add-Ons Alguns traders podem ter idéias específicas para estratégias automatizadas, mas são incapazes de personalizar os sinais pré-construídos para atender às suas necessidades e não têm o conhecimento ou o desejo de aprender as habilidades de programação necessárias para escrever seu próprio código. Existem inúmeros complementos de fornecedores terceirizados que oferecem indicadores e estratégias comerciais, bem como serviços de programação personalizados para ajudar os comerciantes a desenvolver sistemas de negociação automatizados. Uma lista parcial desses fornecedores de terceiros está disponível no site do MultiCharts no mouse da página inicial sobre MultiCharts no menu superior e clique em Complementos no menu suspenso. Negociação Automatizada com MultiCharts: Conclusão
No comments:
Post a Comment