Thursday, 29 June 2017

Meio Médio Fácil Idioma Centrado Movente


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 PowerLanguage anterior 8211 lição 01, vamos agora construir sobre esta fundação. No caso de você não ter lido a última lição, eu sugeriria fazer isso primeiro, pois pode ajudá-lo a entender esta lição também. Começam com a lição de hoje. Abra o Editor de PowerLanguage e crie um novo estudo de Indicador. Vou chamar o meu ABCowerLanguage Lesson 02 8211 Moving Average para que eu possa encontrá-lo facilmente dentro do meu editor mais tarde. O nome é totalmente até você, é claro, e você poderia 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 principal uso de médias é como um filtro para suavizar os dados que você inseriu. A imagem exibe uma média móvel de 200 períodos simples que dá um resultado muito suave. A desvantagem desta suavidade é que você introduz mais atraso. Isso significa que a média torna-se menos responsiva a mudanças de preço. Se você der uma olhada na próxima imagem você verá como diferente o comportamento de um período 200 simples média móvel é quando você compará-lo com a média de período de verde 10. 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 sobre o resultado da média. Uma média móvel simples de 200 períodos calculará simplesmente uma soma dos últimos 200 pontos de dados e dividi-la 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 utilizadas 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. Numa média móvel ponderada, a ponderação diminuirá na progressão aritmética. Para a média exponencial diminuirá exponencialmente, daí o nome. Isto será como teoricamente como ele vai ficar para hoje. Se você quiser ler mais alguns detalhes sobre médias, você pode começar com este artigo da Wikipedia. Para maior compreensão desta lição, você não precisará dessas informações adicionais. Let8217s começar com a codificação da 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 8220Plot8221 reservada para isso e vamos usá-lo para fazer isso. Antes de começar com algo de programação, sempre é uma boa idéia dar um passo para trás e pensar sobre o que você está tentando realizar e como você vai fazê-lo. Como este estudo não é muito complexo, há apenas algumas coisas para refletir. Quando os estudos ficam 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. Nós queremos poder mudar o comprimento para a média com uma entrada assim que it8217s fácil personalizar. Para a média, precisamos somar a quantidade de valores que se correlacionam com a entrada de comprimento. Nós don8217t quer escrever o código para cada entrada de comprimento possível 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 idéia de como poderíamos conseguir isso? A resposta é que precisamos de uma instrução de iteração que pode ser executada repetidamente cada barra por um número específico de vezes (nossa entrada de comprimento). Eu sei que isso soa complicado, mas será bastante simples. Usaremos o 8220for loop8221 para esta tarefa. Este loop repete uma ou mais instruções para um número de iterações definido pelo usuário. O código EasyLanguage é executado de cima para baixo e normalmente da esquerda para a direita. Uma vez que uma linha de código é executada, a próxima linha é executada e assim por diante. No caso de a linha de código ser o começo de um loop, as linhas de código dentro do loop serão executadas para a quantidade especificada. Somente quando o loop for concluído a próxima linha de código após o loop ser executado. Um loop for olha e funciona da seguinte maneira: Uma variável numérica será incrementada (ou diminuída) com cada ciclo através do loop de seu valor inicial para seu valor final. Esta imagem exibe um loop básico com uma variável de contador numérico (ii neste caso) eo valor inicial de 0. As iterações serão feitas dez vezes até que o contador tenha atingido o valor de 9. Então o bloco de laço é executado o último Tempo e saiu. 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 contador. Então você pode acessá-lo para cada ciclo de ciclo e usá-lo para seus cálculos. Isto será útil para calcular a 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 ele é encerrado, também. O contador simplesmente diminui com cada iteração por um até atingir 0. Em Easylanguage você pode referenciar as palavras reservadas relacionadas a dados, variáveis ​​e funções de uma barra anterior muito fácil. Usando um número entre colchetes após a palavra reservada, cálculo ou variável retornará o valor para essa barra em particular. O número cresce a partir da barra atual (que você referência com 0) em incrementos de um. Quando você deseja armazenar o valor do bar8217s anterior fechar dentro de uma variável chamada PrevCloseValue você pode fazê-lo assim: Queremos construir nossa média usando o Close para as últimas X barras. Onde X é uma entrada para permitir mais flexibilidade. Você já sabe que queremos usar um loop para isso e acabamos de descobrir como podemos fazer referência a valores de fechamento para as barras anteriores. Isso deve ser suficiente para escrever o código para a parte principal do nosso indicador. Let8217s continuar criando a entrada e as seções variáveis. Você pode lembrar da última lição de que usar nomes de variáveis ​​significativas é uma boa prática de codificação e pode poupar muitos problemas mais tarde. Precisamos declarar uma entrada para que possamos alterar o comprimento da nossa média no gráfico. Além disso, queremos uma variável que contenha o somatório, uma para armazenar 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 assim que você é capaz de distinguir entre diferentes parcelas. Que é necessário como você pode usar até 999 parcelas em Multicharts. A palavra parcela reservada pode ter vários parâmetros como cor, tamanho do enredo e alguns mais. 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 uma segunda para o nome que queremos atribuir ao gráfico. O código final será algo como isto: Depois de compilar este código, estamos quase prontos para carregar o nosso indicador para um gráfico em Multicharts. Let8217s basta dar uma olhada nas propriedades do indicador em primeiro lugar. Você pode encontrá-los em - gt Arquivo - gt Propriedades ou clicando no símbolo Propriedades no menu (que deve ser a esquerda para Compilar). No separador Estilo, pode alterar a cor, o estilo da linha ea espessura do gráfico que criou. Se você for para a guia de propriedades, há várias opções para definir ou verificar, mas por agora você só pode querer certificar-se de que a opção 8220Same As Symbol8221 está marcada. Isso garantirá que o indicador seja aplicado diretamente em seu gráfico, em vez de um sub-quadro. 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 Multicharts você pode simplesmente inserir o indicador para este gráfico. Quando o indicador é aplicado o resultado deve ser semelhante à imagem acima. No entanto, este doesn8217t parece certo como este doesn8217t olhar como uma média móvel em tudo. A série de preços é quase uma linha lisa eo gráfico que vem de nosso indicador está aumentando somente. Com o E-Mini SampP 500 sendo na área de 18217800 um valor médio móvel de 10 bar para este mercado de 182179528217647 não é obviamente 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 em frente ao 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 se certificar de que o CloseValueSum doesn8217t ainda 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 indicador no gráfico. Usando a guia de estilo sob 8220Format Study8221 podemos alterar o resultado visual como estilo de linha, cor e espessura. Na guia 8220Inputs8221 você encontrará a entrada que você criou ea configuração padrão para o comprimento. Ao carregar uma segunda instância do estudo e usando uma cor diferente e comprimento 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 correta sinta-se livre para entrar em contato conosco com sua solução e vamos tentar ajudá-lo em tempo hábil. Eu tenho medo de apenas pedir a solução de trabalho won8217t embora, você precisa, pelo menos, ser capaz de mostrar que você colocar algum esforço para encontrar a solução, também. Como última dica você pode dar uma olhada em outros indicadores ou funções médias e encontrar alguma inspiração para o elo perdido lá. Espero que tenha gostado desta lição de tutorial de Powerlanguage e estou ansioso para trabalhar com você na próxima. Aprendizagem EasyLanguage amplificador PowerLanguage 8211 Lição 05: Texto e linhas de tendência Rastreamento extremos diários com um indicador O objetivo desta lição é fazer mais programação E criar um estudo que acompanha os extremos diários de um símbolo. Se você não leu as lições anteriores, sugiro que comece no início com a lição 01, pois esta lição usará os conceitos básicos abordados nas sessões anteriores. Como eu escrevi o objetivo é um estudo que é capaz de rastrear os extremos diários e exibi-los no gráfico. Queremos ser capazes de ver os extremos atuais para o dia e também mostram extremos de ontem em dados de hoje. Vamos ter um momento para considerar o que precisamos para este estudo e como queremos lidar com os melhores objetivos: precisamos ser capazes de encontrar o mais alto mais baixo e mais baixo para cada dia o estudo deve usar linhas de tendência para mostrar os extremos de ontem que queremos Ser capaz de alterar a aparência no gráfico via entradas o estudo deve exibir texto no gráfico que rótulos as linhas Isso já lhe dá uma idéia sobre o que temos de olhar hoje. Além de ser um estudo ou estrutura útil para futuras modificações, o desenho de texto e linhas de tendência e sua atualização serão o ponto focal deste estudo. Multicharts e Tradestation fornecem funções que retornam o diário alto e baixo, mas por várias razões isso não é o que queremos usar aqui. Em vez disso, criaremos duas variáveis ​​de rastreamento que armazenam as mais altas e baixas mais altas atuais. Em um novo dia, essas variáveis ​​precisam ser redefinidas e seu valor será armazenado em um segundo conjunto de variáveis. Precisamos fazer isso para ser capaz de rastrear os novos extremos e desenhar as linhas de tendência exibindo os valores de ontem. Lógica simples do programa Nós esboçamos o que o programa deve fazer, vamos criar uma lista curta com as etapas que nós precisamos de fazer para uma referência mais fácil: trilhar diário altamente e mais baixo com uma variável durante todo o dia armazene os extremos diários precedentes em um dia novo e restaure As variáveis ​​de rastreamento desenhar texto e linhas de tendência para os extremos anteriores em today8217s dados e atualizá-lo com cada nova barra adicionar entradas para ser capaz de convenientemente mudar o texto e trendline olha (cor, tamanho etc.) Isso doesn8217t olhar como muito trabalho, por isso Let8217s começar com ele, criando um novo indicador no editor PowerLanguage. Dê-lhe um nome significativo, para que você possa encontrá-lo facilmente mais tarde. Vou começar com o código básico para o desenho de texto e linhas de tendência e vou ter certeza de que o código irá funcionar em ambos os Multicharts e Tradestation. Isso significa que omitirei algumas palavras reservadas para manipulação de texto e de tendência que especificamente oferece Multicharts, mas podemos dar uma olhada nestas mais tarde, uma vez que elas não são necessárias para produzir os resultados desejados aqui. Let8217s dê uma olhada no código para criar linhas de tendência e texto agora. Linhas de Tendência Cada linha de tendência que você cria por código tem um ID exclusivo de tendência específica que você pode usar para modificar a linha de tendência mais tarde. Você não precisa se preocupar com a criação de IDs, pois o software fará isso por você. A única coisa que precisamos fazer é armazenar o ID da linha de tendência em uma variável, para que possamos recuperá-la mais tarde no código. As linhas de tendência são desenhadas com a palavra reservada 8220TLNew8221, seguida por seis parâmetros de linha de tendência entre colchetes. Quando você quer desenhar uma linha de tendência em vivo real ou em um código de programação você precisa ter pelo menos dois pontos de ancoragem 8211 um ponto inicial e um ponto final. No entanto, você não está confinado para manter a linha de tendência dentro desses dois pontos, mas pode estendê-los à esquerda e à direita para o infinito. Por que o 8220TLNew8221 requer seis parâmetros? Os seis parâmetros de linha de tendência são necessários para especificar esses dois pontos de ancoragem em um gráfico. Quando você olha em um gráfico, a localização de cada valor pode ser descrita usando três parâmetros - a data, a hora e o preço desse valor. Como você precisa de dois pontos de ancoragem, a 8220TLNew8221 palavra reservada, portanto, tem seis parâmetros. 8220TLID8221 é uma variável que contém o ID específico da linha de tendência, as outras seis variáveis ​​são nomeadas corretamente para mostrar qual parâmetro representa o quê. Let8217s criar um código simples desenho de uma linha de tendência e olhar para o resultado no gráfico. Eu coloquei o código da linha de tendência dentro de uma declaração uma vez para ter certeza de que o código só cria uma linha de tendência. Isto é o que o código acima desenha no meu gráfico: Você precisa ir para o início do gráfico e você deve encontrar a linha de tendência lá. A cor será provavelmente laranja como esta é a cor padrão que o programa usará, mas don8217t se preocupe se você deve ver uma cor diferente em sua extremidade. Com um par de palavras reservadas adicionais nós vamos mudar a cor, tamanho e estilo da linha de tendência. O primeiro parâmetro para qualquer uma das palavras reservadas que alteram a linha de tendência é sempre a ID 8211 específica da linha de tendência, caso contrário o programa não saberia qual linha de tendência você deseja alterar. 8220TLSetColor8221 irá alterar a cor da linha de tendência, 8220TLSetSize8221 é usado para alterar a largura da linha de tendência de 0 para 6 e 8220TLSetStyle8221 define o estilo de acordo com a lista a seguir. Embora não importa se você usar os números ou as palavras reservadas como 8220ToolSolid8221, 8220ToolDashed8221 e assim por diante para alterar o estilo, vou usar os números durante esta lição. Adicionando as três palavras reservadas e seus parâmetros para o código de linha de tendência básica será alterá-lo para isso: As linhas de código de acima produzir este resultado, mas por favor brincar com o código um pouco, modificando a cor, tamanho e estilo da linha de tendência. Tente também alterar o valor inicial ou final para produzir uma linha de tendência descendente e ascendente. Semelhante ao texto das linhas de tendência precisa de um ponto de ancoragem, mas você só precisa de um para um texto em vez de dois para uma linha de tendência. Além dos três parâmetros para Data, Hora e Preço da localização do texto, a palavra reservada 8220TextNew8221 tem um quarto parâmetro para a seqüência de texto que deve ser criada no gráfico. Outra semelhança é que cada objeto de texto tem um ID específico de texto que você pode usar para alterar a aparência do texto, sua localização ou alterar a seqüência de caracteres de texto. Em seu formulário básico, o código EasyLanguage para criar um novo objeto de texto em um gráfico tem esta aparência: Let8217s adiciona um texto simples ao lado da linha de tendência básica que criamos acima. Isto é como ele pode olhar em seu fim: O primeiro resultado não é muito atraente, como o texto é colocado no meio da barra e, portanto, it8217s em cima da linha de tendência. Usando algumas palavras reservadas para manipulação de texto, podemos alterar o resultado e aumentar a visibilidade. Além de mudar a cor eo tamanho também podemos alterar a colocação de texto em relação à barra e preço it8217s colocado. Isso é feito usando a palavra reservada 8220TextSetStyle8221, que tem três parâmetros 8211 a identificação específica do texto e a colocação horizontal e vertical do texto que você deseja que ele tenha. O parâmetro de posicionamento horizontal pode ter três valores: 0 8211 colocará o texto à direita da barra 1 8211 colocará o texto à esquerda da barra 2 8211 o texto será centrado na barra O parâmetro de posicionamento vertical pode ter três Diferentes valores, também: 0 8211 colocará o texto sob o valor de preço especificado 1 8211 o texto será acima do valor de preço 2 8211 irá centrar o texto sobre o preço Adicionar as palavras reservadas para alterar a cor, tamanho e estilo irá alterar a aparência E permitir um resultado mais claro. Quando você estiver trabalhando no Tradestation, você verá que 8220TextSetSize8221 não é suportado. O estudo no entanto vai funcionar bem sem ele, tão simples don8217t incluí-lo em seu código. O código acima irá alinhar o texto à direita da linha de tendência, alterar sua cor para vermelho e torná-lo melhor visível, ampliando o tamanho do texto. Criando o indicador Agora que sabemos como formatar corretamente texto e linhas de tendência em um gráfico, podemos voltar a construir o indicador que rastreia os extremos diários. De acordo com a lógica acima descrita, precisamos ser capazes de encontrar o mais alto mais baixo e mais baixo no gráfico. Uma boa maneira de fazer isso é usar duas variáveis ​​que são atualizadas sempre que o gráfico faz um novo alto ou baixo. O truque é que em declaração e reset simplesmente definimos o valor da variável para 8220High8221 e 8220Low8221 da barra. Para a parte de reinicialização estamos usando uma declaração 8220if8230then simples begin8230end8221. A condição de avaliação se tornará verdadeira quando a data nessa barra for diferente da data da barra anterior. Este é o caso para a primeira barra de cada dia. Quando uma nova barra vem em que tem um 8220High8221 que é maior do que o valor de 8220DayHigh8221, a variável 8220DayHigh8221 será atualizada com o novo valor. Desta forma, podemos facilmente acompanhar o mais alto mais baixo e mais baixo como o dia se desenvolve. Adicionar dois gráficos para saída o valor para as duas variáveis ​​de rastreamento irá mostrar se o código funciona conforme pretendido. De acordo com a imagem acima o rastreamento diário parece funcionar bem. Let8217s terminar este estudo, removendo as parcelas e criando duas linhas de tendência que exibem os extremos diários anteriores em today8217s dados. Além disso, queremos criar dois objetos de texto que rotulam as duas linhas de tendência e alinham-nos corretamente no gráfico. Criei um par de entradas que podem ser usadas para alterar o texto ea aparência da linha de tendência em um gráfico. Desta forma, o resultado é mais fácil de alterar e você don8217t sempre tem que fazer alterações no código diretamente. Iremos simplesmente referenciar as entradas mais tarde no código quando criarmos o texto e as linhas de tendência. Além das variáveis ​​que usamos antes e você já sabe, eu adicionei quatro variáveis ​​para o texto e os identificadores da linha de tendência. As duas variáveis ​​denominadas 8220PrevDayHigh8221 e 8220PrevDayLow8221 que serão usadas para armazenar o valor das variáveis ​​de acompanhamento diárias extremas, antes de serem redefinidas. Os nomes que eu usei são arbitrariamente e você pode usar diferentes, é claro. Eu só usei-los porque o nome me dá uma idéia sobre o propósito da variável já e me ajuda com a legibilidade do meu código. A variável booleana 8220HaveTextAndLines8221 será usada no código para verificar se há pelo menos um conjunto de texto e linhas de tendência presentes no gráfico. Ele será definido como true com a primeira mudança de data e este é também o ponto quando as linhas de tendência e o primeiro são criados. Tendo as entradas e as variáveis ​​no lugar nós podemos começar com a parte da condição da restauração. Quando a condição de redefinição se torna verdadeira na primeira barra de cada dia, precisamos armazenar as variáveis ​​de rastreamento de ontem em 8220PrevDayHigh8221 e 8220PrevDayLow8221, para que possamos usá-las para nossas linhas de tendência. O código irá definir o boolean 8220HaveTextAndLines8221 para true e criar duas linhas de tendência e dois objetos de texto usando as entradas de cima. Cada texto e linha de tendência tem seu próprio ID específico que podemos usar mais tarde no código para atualizar os nós de extremidade ea localização da barra atual. A parte final do código controla o rastreamento extremo diário e a atualização do local de texto e dos pontos finais da linha de tendência. A atualização do nó de extremidade da linha de tendência é feita via 8220TLSetEnd8221. Essa palavra reservada tem quatro entradas: uma para a ID específica da linha de tendência que você deseja atualizar, seguida pela data, hora e preço para o nó de extremidade. O novo local de texto é definido via 8220TextSetLocation8221. Esta palavra reservada vem com quatro parâmetros, também. O primeiro parâmetro é o ID específico do texto. Os três restantes são a data ea hora da barra onde você deseja colocar o texto eo preço onde o texto deve ser localizado. Usaremos a variável booleana 8220HaveTextAndLines8221 para certificar-se de que apenas tentamos atualizar um texto ou uma linha de tendência quando ele8217s assegurou que pelo menos um conjunto de texto e linhas de tendência existam. Tentando atualizar texto não existente ou linhas de tendência pode criar problemas, por isso é melhor criar uma rede de segurança aqui. Verifique se o código está fazendo o que pretendemos que ele faça. Carregue o indicador em um gráfico e verifique se você está vendo duas linhas de tendência e objetos de texto para cada dia (exceto o primeiro dia no gráfico), que exibem corretamente os extremos do dia anterior. Conclusão e trabalhos de casa De acordo com a imagem acima do código parece fazer o que tínhamos em mente. Há duas linhas de tendência e objetos de texto para cada dia e eles estão exibindo corretamente os extremos do dia anterior. Isso conclui esta lição sobre texto e linhas de tendência e espero que você tenha gostado e aprendido algo que você pode usar em sua própria programação. Como uma adição a esta lição e como um bom exercício alterar este código para que o extremo atual diária é exibido corretamente com o texto e linhas de tendência. Como uma dica you8217ll tem que usar o 8220TLSetBegin8221 palavra reservada para isso. Isso funciona de forma semelhante à 8220TLSetEnd8221 palavra reservada, somente que você especificar o ponto de início da linha de tendência com esta palavra reservada. Outra dica é que talvez seja necessário armazenar a data e a hora de início das linhas de tendência atuais do day8217s com variáveis. Você também precisa alterar algumas posições dentro do código para que o texto e linhas de tendência usar o valor adequado para os extremos e don8217t sofrer por um atraso de uma barra. O resultado das alterações pode parecer algo como isto: Caso você esteja tendo problemas para obter as modificações para trabalhar, você pode postar aqui ou me enviar seu código e eu vou lhe dar uma dica. Como sempre, estou ansioso para feedback ou impressões dos indicadores que você criou. Vejo você na próxima lição. Eu tentei isso no tradesation 9.1, mas não woking. Por favor, informe o que está faltando HighTLColor (darkgreen), LOwTLColor (vermelho), TLStyle (1), HighTextColor (darkgreen), LowtextColor (vermelho), TextSize (10) Variáveis: VertTxtP1 (2), 0-below. 1-acima, 2-center de valor especificado HorizTxtPl (0), 0-direito. 1 - esquerda. 2 8211 centro na barra especificada TxtID (-1), TLID (-1) desenha uma linha de tendência que ultrapassa 11 barras. HaveTextAndLines (false), DayHigh (alto), DayLow (baixo), PrevDayHigh (0), PrevDayLow (0) (1), HiTxt (-1), LoTxt (-1), HiTL (-1), LoTL (-1) Se Date Data 1 e então Comece a guardar os anteriores extremos daus antes de os reposicionar PrevDayHigh DayHigh PrevDayLow DayLow DayHigh high DiaLow low HiTL Tlnew (Date, Time, PrevDayHigh) Tlsetcolor (HiTL, HighTLColor) Tlsetstyle (HiTL, TLStyle) LoTL Tlnew (Data, Hora. PrevDayLow. Data, Hora, PrevDayLow) Tlsetcolor (LoTL, LOwTLColor) TexTextNew (date, time, PrevDayLow. Date, time, PrevDayLow) Textsetcolor (TexText) Textsetcolor (TexText) TexTextNow (data, hora, PrevDayHigh. Date, time, PrevDayLow) Textsetcolor (HiTxt. HighTextColor) Textsetstyle LoTxt HorizTxtPl. VertTxtP1 Se HaveTextAndLines então Tlsetend (HiTL, date, time, PrevDayHigh) Tlset Fim (LoTL, data, hora, PrevDayLow) Textsetlocation (HiTxt. Data, hora, PrevDayHigh) Textsetlocation (LoTxt, date, time, PrevDayHigh) Se Alto gt DayHIgh então DayHigh alto Se baixo lt DayLow então DayLow baixo eu acho que eu tenho it..please ver corrigido. 9.1 HighTLColor (verde escuro), LOwTLColor (vermelho), TLStyle (1), HighTextColor (darkgreen), LowtextColor (vermelho), TextSize (10) Variáveis: VertTxtP1 (2), 0-below. 1-acima, 2-center de valor especificado HorizTxtPl (0), 0-direito. 1 - esquerda. 2 8211 center na barra especificada HaveTextAndLines (false), DayHigh (alto), DayLow (baixo), PrevDayHigh (0), PrevDayLow (0), HiTxt (-1), LoTxt (-1), HiTL (-1) LoTL (-1) Se Date Date 1 then Begin salvar anteriores daus extremos antes de descansá-los PrevDayHigh DayHigh PrevDayLow DayLow DayHigh alto DayLow baixo HiTL Tlnew (Date, Time. PrevDayHigh. Date, Time, PrevDayHigh) Tlsetcolor (HiTL, HighTLColor) Tlsetstyle (HiTL , TLStyle) LoTL Tlnew (Data, Hora. PrevDayLow. Date, Time, PrevDayLow) Tlsetcolor (LoTL, LOwTLColor) Tlsetstyle (LoTL, TLStyle) HiTxt Textnew (date, time, PrevDayHigh. 8220PrevDayHi8221) Data, hora, PrevDayLow) Textsetcolor (LoTxt. LowtextColor) Se HaveTextAndLines então Tlsetend (HiTL, data, hora, PrevDayHigh) Tlsetend (LoTL, data, hora, PrevDayLow) Textsetlocation (HiTxt. Date, time, PrevDayHigh) Textsetlocation (LoTxt , Data, hora, PrevDayLow) Se Alto gt DayHIgh então Dia High High Se Low lt DayLow então DayLow Baixo Phanu, em seu primeiro código há vários erros de digitação que irão levantar mensagens de erro no compilador. O segundo código só tem um problema, a linha 8220If Data Data 1 then8221 em seu código deve ser 8220If Data Data 1 then8221. Mas isso poderia simplesmente ser cortado durante a cópia e colagem. Regards, ABC Tole Sag 18 de novembro de 2014 at 9:50 pm - Responder Thx para o info8230.just querendo saber se alguém quer desenhar a linha de tendência longe da localização exata (atualmente) como highlow 8211, por exemplo, para exibir linhas de tendência 2 ou 3 pontos (Uma distância específica) o que os parâmetros devem olhar então, por favor me avise. Ansioso para ouvir de você. Sim, você pode obter o preço atual de uma linha de tendência específica com TLGetValue (TLID, Date, Time). Onde TLID é o ID para a linha de tendência e data e hora são os valores para a barra que você deseja verificar. Se você estiver trabalhando com Multicharts você também pode usar TLGetValueBN (TLID, CurrentBar) para obter o preço de sua linha de tendência na barra mais recente. Agora tudo o que você precisa fazer é verificar se o fechamento está dentro de X ticks ticks (o que você define como próximo) do seu valor trendline para acionar um alerta usando a palavra reservada Alert (8220You mensagem de alerta iria dentro das aspas marks8221). Tole Sag 26 de novembro de 2014 às 5:07 - Responder Eu tenho uma pergunta sobre TLNew (TrendLine). I8217m perguntando o que a outra opção é (disponível) para usar em vez de TL MultiCharts, a fim de exibir uma linha (em uma janela de gráfico via PowerLanguage) que ele doesn8217t get removeddeleted se alguém usa 8220Remover All Drawings8221 no gráfico. Por favor deixe-me saber. Responder Oi, I8217m perguntando como eu posso especificar feriados ou SaturdayDaysays (escrevê-lo em PL) então quando o mercado fica aberto após o dia de encerramento, ele entende como plotar HighLow corretamente Descobrir se o dia anterior era uma sessão de trabalho regular ou não. Ou seja, Thanksgiving). Por favor deixe-me saber. Thx, Mais uma vez, eu gostaria de agradecer a todos os seus ensinamentos aconselhamento amp durante este ano Boas festas para você amp family8230. Olá Tole, obrigado pelos desejos e boas festas para você e sua família, também. DayOfWeek é a palavra reservada que permitirá que você detecte sábados ou domingos. Para os feriados torna-se mais complexo como você provavelmente irá criar código complexo para lidar com todos os feriados em potencial (ou código rígido as datas ou as regras para cada feriado). Atenciosamente, ABC I8217m apenas querendo saber se você poderia você por favor deixe-me saber como exibir um TEXTO ou LABEL que está associado a uma linha PLOT a ser exibido no lado esquerdo da PLOT. Thx Nota 8211 Eu don8217t quero usar TEXTNEW. Tole, este pode ser feito sem um rótulo de texto e TextNew. A menos que você queira mostrar o nome apenas na linha de status. Para que olhar para cima como traçar seqüências de caracteres na ajuda Multicharts. Olá, em primeiro lugar, obrigado pelas aulas gratuitas que estou usando Powerlanguage MC e copiado o seguinte: Value1 TLNEW (Data 10, Tempo 10, Fechar, Data, Hora, Close) plot1 (Value1) No entanto, Recebo 3 linhas horizontais a partir de barras diferentes, e outra 4a que age como uma linha de média móvel. Você saberia o que poderia ser o problema Obrigado antecipadamente :), Olá Wouter, você é bem-vindo. O código que você postou desenharia uma nova linha de tendência em cada barra e you8217d também traçaria o ID da última linha de tendência desenhada. Então, o enredo provavelmente irá avançar por um com cada bar. Se você pudesse elaborar o que você está tentando realizar, eu poderia ser capaz de apontá-lo na direção certa. Atenciosamente, ABC Oi ABC, muito obrigado pela resposta Minha principal coisa é entender linhas de tendência de desenho, para obter o conceito inteiro. Parece complicado estar desenhando uma boa linha de tendência. Copiei mais de seus exemplos de código nesta lição acima, mas nada acontece no meu MC. Para o código no meu exemplo, vamos dizer se há um surto prazo mais longo desejo para uma linha horizontal do tamanho da função mais alta alta. TLSetcolor (Valor1, vermelho) TLSetsize (Valor1, 2) TLSetstyle (Valor1, 2) IF C gt Maior (Alto, 10) 1 THEN Plot1 (Valor1) Ps O acima compila bom em meu editor do powerlanguage mas não dá nenhum resultado em meus gráficos. Obrigado much muchh novamente por me ajudar, Plot1 e TLNew não são correlacionados, eles são duas palavras reservadas independentes para duas coisas totalmente diferentes. De seu código, parece que você está tentando desenhar a linha de tendência usando Plot1, mas isso não é possível. No entanto, você pode modificar seu código para desenhar a linha de tendência quando a condição 8220if c mais alta (Alta, 10) 18221 é atendida usando uma instrução 8220if8230 então begin8230end8221 explicada aqui na Lição 4 do PowerLanguage. Quando eu uso o seu código sem a última linha ele vai desenhar linhas de tendência em cada barra (mesmo incluindo a última linha que vai fazer isso, mas então ele também irá traçar uma linha), então não estou certo o que você quer dizer com 8220doesn8217t dar qualquer resultado8221 . Leave A Comment Cancel replyImproving the Moving Average Crossover Let8217s take a look at a simple moving average crossover system and see if we can improve it. Specifically, can we improve the moving average system8217s performance by reducing the number of whipsaws during those dreaded range bound markets Whipsaws occur when a market moves from a trending mode to a consolidation mode. During this consolidation mode the system gets whipsawed from long to short creating a string of losing trades. Long trades suddenly reverse hitting your stop. Likewise for short trades. These 8216false signals8217 can destroy your equity curve. In this article I8217m going to present two simple methods to improve the simple moving average crossover system. These ideas can easily be implemented into your trading systems and may provide a great starting point for a trend following system. Baseline System Our baseline system will consist of two simple moving averages (SMA) executed on a daily chart of the Euro futures. I8217m picking the Euro because it has demonstrated solid trending characteristics as opposed to the stock index markets which tend to be mean reverting. If you will recall, signals are generated when a faster moving average (trigger SMA or trigger line) crosses a slower moving average (slow SMA or slow line). Slow SMA 50 period Trigger SMA 3 period Go Long when trigger crosses above Slow SMA Go Short when trigger crosses under Slow SMA Dates Tested: May 2001 8211 September 30, 2013 Commissions amp Slippage: 30 deducted per trade Number of Contracts: 1 For those using TradeStation the Baseline System was created by inserting two strategies into the chart that were provided by TradeStation. Below are the two strategies. The first one controls the long entry (LE) rules and the second one controls the short entry (SE) rules. You can see the input fields contain the three and the fifty for the two different periods for our moving averages. Buy using these provided strategies you can build a moving average crossover strategy within seconds without any coding skills. Baseline System Equity Curve These two simple rules produce a trading system that is actually profitable over the long term. This is a testimate to the trending characteristics of the Euro futures market. However, there are periods of large drawdowns and long periods where no new equity highs are created. It8217s not likely anyone would actually trade this with real money. The image below shows a recent period from 2011 when the Euro entered a consolidation phase during the summer months of June through August. During this time our Baseline System produced a string of eight consecutive losing trades. Whipsaw Summer 2011 Improvement 1: Delayed Entry With this entry method we are going to delay our entry into the market after the trigger line crosses the slow SMA. So, when the trigger line crosses the slow SMA we do not open our position right away. We delay for several bars. Let8217s say we wait for 15 bars after the cross occurs. On the tenth bar after the signal we see if price is still above the slow SMA (for a long entry) and enter at the open of the 11th. If price is below our slow SMA we don8217t open a new position. By doing this we eliminate some whipsaws at the expense of entering the trade later than the original SMA cross. The idea behind this method is if a new bull market is about to start, price should not fall back below the slow SMA. In short, it8217s another way to measure the amount of conviction for the next market phase. However, we will keep the exit the same. When an EMA cross occurs we always close our open position. We only apply the delay when opening a new position. The equity curve with our delayed entry actually moves the entire equity curve above the zero line. Fewer trades are taken and we reduce the total net profit. The equity curve also appears a little less jagged implying a slightly more smoother climb up. Below is an image showing the whipsaw summer time period in 2011. You will notice we have reduced the number of whipsaws from eight to zero. Whipsaw Summer 2011 Improvement 2: Trading Bands Unlike the standard moving average crossover where the trigger line must simply cross the slow SMA, our trigger line must now demonstrate conviction by crossing beyond the slow SMA. Por exemplo, imagine outra banda acima da SMA lenta que é 1 ATR acima da SMA lenta. In order to open a new long position we require the trigger line to penetrate that ATR band above the slow line. Now picture another band that is one ATR below the SMA. This band represents our short trigger when we open a short position. We hope to eliminate some whipsaws by delaying our entry and forcing the market to show us some strength. Some of you may have already noticed that what we have is a Keltner Channel. A Keltner Channel is nothing more than a moving average (slow SMA) with an upper band X number of ATRs above and below the slow SMA. The upper and lower bands act as the trigger to enter either a long position or a short position. The bands adapt to expanding volatility requiring more price conviction to initiate a new position. Likewise, these bands contract during lower volatility times. Thus, the entry and exit rules are more dynamic to a changing market than a simple moving average crossover. The equity graph does not look too much different than our baseline system. The entire equity curve spends less time near the zero line and there are fewer trades. Below is the same time period showing the Band System has reduced the number of false signals from eight to two. This is a great improvement over the Baseline System. Whipsaw Summer 2011 Each of the two methods improved the results of the original Baseline System. Looking at the table below we can see performance statistics such as profit factor, percent winners and average trade net profit all increased. The Keltner produced the best overall statistics. We certainly don8217t have a trading system that is tradable with real money, but we accomplished our mission. We reduced the number of whipsaws with our Delayed Entry System and Band Entry System. You can see this by looking at the number of trades taken by each system and the percent winning trades. More Ideas You can take this research in all types of directions. Here two more ideas. Delay With Time Decay 8211 Markets switch between trending and non-trending as we all know. Often you will notice a string of whipsaws on a moving average crossover system right after a great winning trade was closed. The market apparently is now morphing to a range bound market and will likely do this for sometime. However, as the days or weeks wear on the likelihood of a breakout probably increases. Thus maybe we can reduce the delay amount as time goes by. After the close of a successful trade we begin looking for the next cross with our default X bar delay. The market remains range bound and produces several false signals over the weeks but our system does not take any new signals. During these false signals our delay counter is reset but let8217s not always reset it to X. Every day or every week we reduce our X day delay by one. We do this because we believe as time goes by a breakout becomes more likely. However, we never reduce X to reach zero or lower. In fact, we may never want to go much lower than 5 or so. Trend Filter 8211 In a previous article I used rsRank or a 200-period SMA as a trend indicator to help determine the bigger picture for the Euro. In other words, are we within a bullish or bearish market Maybe only taking long trades during a bull market or taking short trades during a bear market would improve results. This would be an interesting and simple test to perform. I would love to hear your results. Be sure to leave a comment below. I would love to hear any ideas or results from your own testing Leave a Reply Cancel reply Featured Product Build adaptive indicators in your TradeStation strategies. The adaptive indicator library automatically tunes its indicators to half of the current dominant cycle based on use of the Hilbert transform. Learn More Free TradeStation Code Get free, simplified versions of the the tools that the TradeStation experts use in their daily research and system building. These tools help you learn EasyLanguage as they are entirely open source and let you build complex systems without needing to know how to code. All you need to provide is a name and e-mail address. No credit card or address required About Murray Ruggiero Jr. Murray Ruggiero is the chief systems designer, and market analyst at TTM. He is one of the worlds foremost experts on the use of inter-market and trend analysis in locating and confirming developing price moves in the markets. Murray is often referred to in the industry as the Einstein of Wall Street. Read more. Important legal information about the email you will be sending. Ao usar este serviço, você concorda em inserir seu endereço de e-mail real e enviá-lo apenas para pessoas que você conhece. É uma violação da lei em algumas jurisdições falsamente identificar-se em um e-mail. Todas as informações que você fornece serão usadas pela Fidelity exclusivamente para o propósito de enviar o e-mail em seu nome. A linha de assunto do e-mail que você enviar será Fidelity: Seu e-mail foi enviado. Fundos Mútuos e Investimentos em Fundos Mútuos - Fidelity Investments Clicando em um link, será aberta uma nova janela. Negociar em movimento com médias móveis Liberte esta ferramenta simples contudo poderosa para destravar uma riqueza da informação dentro de suas cartas. Fidelity Active Trader Notícias ndash 11212016 Análise Técnica Active Trader Pro Corretagem Stocks Entre todas as ferramentas de análise técnica à sua disposiçãoDow teoria. MACD. Índice de Força Relativa. Castiçais japoneses. E as médias moremoving são uma das mais simples de entender e usar em sua estratégia. No entanto, eles também podem ser um dos indicadores mais significativos das tendências do mercado, sendo particularmente útil em tendências ascendentes (ou descendentes) como a tendência de alta de longo prazo que temos experimentado desde 2009. Aqui você pode incorporar médias móveis para potencializar sua negociação proficiência. O que são médias móveis Uma média é simplesmente a média de um conjunto de números. Uma média móvel é uma série (tempo) de meios sua média móvel porque como novos preços são feitos, os dados mais antigos são descartados e os dados mais recentes substitui-lo. Um estoque ou outras garantias financeiras movimentos normais às vezes pode ser volátil, girando para cima ou para baixo, o que pode tornar um pouco difícil avaliar sua direção geral. O objetivo principal de mover médias é suavizar os dados que você está revendo para ajudar a obter um sentido mais claro da tendência (veja o gráfico abaixo). Uma média móvel suaviza o preço. Fonte: Active Trader Pro, a partir de 15 de novembro de 2016. Existem alguns tipos diferentes de médias móveis que os investidores costumam usar. Média móvel simples (SMA). Um SMA é calculado adicionando todos os dados para um período de tempo específico e dividindo o total pelo número de dias. Se as ações da XYZ fecharem aos 30, 31, 30, 29 e 30 nos últimos cinco dias, a média móvel simples de 5 dias seria 30. Média móvel exponencial (EMA). Também conhecida como média móvel ponderada, uma EMA atribui maior peso aos dados mais recentes. Muitos comerciantes preferem usar EMAs para colocar mais ênfase nos desenvolvimentos mais recentes. Média móvel centrada. Também conhecida como média móvel triangular, uma média móvel centrada leva em consideração o preço eo tempo, colocando o maior peso no meio da série. Este é o tipo menos comum de média móvel. As médias móveis podem ser implementadas em todos os tipos de gráficos de preços (por exemplo, linha, barra e castiçal). Eles também são um componente importante de outros indicadores como Bollinger Bands. Configurando médias móveis Ao configurar seus gráficos, a adição de médias móveis é muito fácil. No Fidelitys Active Trader Pro. Por exemplo, basta abrir um gráfico e selecionar indicadores no menu principal. Procure ou navegue para médias móveis e selecione a que você gostaria de adicionar ao gráfico. Você pode escolher entre diferentes indicadores de média móvel, incluindo uma média móvel simples ou exponencial. Você também pode escolher o período de tempo para a média móvel. Uma configuração comumente usada é aplicar uma média móvel exponencial de 50 dias e uma média móvel exponencial de 200 dias a um gráfico de preços. Como as médias móveis são usadas As médias móveis com períodos diferentes podem fornecer uma variedade de informações. Uma média móvel mais longa (como uma EMA de 200 dias) pode servir como um dispositivo de suavização valioso quando você está tentando avaliar tendências de longo prazo. Uma média móvel mais curta, como uma média móvel de 50 dias, acompanhará mais de perto a ação de preço e, portanto, é freqüentemente usada para avaliar padrões de curto prazo. Cada média móvel pode servir como um indicador de suporte e resistência e é freqüentemente usado como um alvo de preço de curto prazo ou nível-chave. Como exatamente as médias móveis geram sinais de negociação As médias móveis são amplamente reconhecidas por muitos comerciantes como níveis potencialmente significativos de preços de suporte e resistência. Se o preço está acima de uma média móvel, pode servir como um nível de apoio forte, quer dizer, se o estoque não cair, o preço pode ter um tempo mais difícil, ficando abaixo do nível de preço médio móvel. Alternativamente, se o preço está abaixo de uma média móvel, pode servir como um nível de resistência forte significando se o estoque estava a aumentar, o preço poderia lutar para subir acima da média móvel. A cruz dourada ea cruz da morte Duas médias móveis também podem ser usadas em combinação para gerar um poderoso crossover trading sinal. O método crossover envolve a compra ou venda quando uma média móvel mais curta atravessa uma média móvel mais longa. Um sinal de compra é gerado quando uma média de movimento rápido cruza acima de uma média móvel lenta. Por exemplo, a cruz dourada ocorre quando uma média móvel, como a EMA de 50 dias, cruza acima de uma média móvel de 200 dias. Esse sinal pode ser gerado em um estoque individual ou em um índice de mercado amplo, como o SP 500. Usando o gráfico do SP 500 acima, o crossover mais recente foi uma cruz de ouro em abril de 2016 (veja gráfico acima). O SP 500 ganhou cerca de 7 desde então, a partir de meados de novembro. Alternativamente, um sinal de venda é gerado quando uma média de movimento rápido cruza abaixo de uma média de movimento lento. Essa cruz de morte ocorreria se uma média móvel de 50 dias, por exemplo, cruzasse abaixo de uma média móvel de 200 dias. A última cruz de morte aconteceu no início de 2016. O próximo sinal de cruzamento possível, dado que o último era uma cruz de ouro, é uma cruz de morte. Médias móveis em ação e algumas dicas finais Como regra geral, lembre-se que as médias móveis são normalmente mais úteis quando usadas durante tendências de alta ou baixa, e geralmente são menos úteis quando usadas em mercados laterais. De um modo geral, as ações foram em uma escalada-como tendência de alta para a maioria dos mais de sete anos bull rally, de modo teoria sugere que as médias móveis podem ser particularmente poderosas ferramentas no ambiente de mercado atual. Olhando novamente para o gráfico SP 500 (acima), você pode ver que a tendência de longo prazo é para cima. Além disso, o preço está acima da média móvel de curto prazo e da média móvel de longo prazo. Se o preço fosse diminuir a partir do nível atual, ambas as médias móveis seriam consideradas como níveis de suporte significativos. Como demonstra o gráfico, é possível que o preço permaneça acima (ou abaixo) de uma média móvel por um longo período de tempo. Naturalmente, você não gostaria de negociar exclusivamente com base nos sinais gerados pelas médias móveis. No entanto, eles podem ser usados ​​em combinação com outros pontos de dados técnicos e fundamentais para ajudar a formar o seu outlook. Saiba mais A análise técnica concentra-se nas ações do mercado especificamente, volume e preço. Análise técnica é apenas uma abordagem para analisar ações. Ao considerar quais ações comprar ou vender, você deve usar a abordagem que você está mais confortável com. Como com todos os seus investimentos, você deve fazer sua própria determinação sobre se um investimento em um determinado título ou valores mobiliários é adequado para você com base em seus objetivos de investimento, tolerância ao risco e situação financeira. O desempenho passado não é garantia de resultados futuros. Os mercados de ações são voláteis e podem diminuir significativamente em resposta a desenvolvimentos adversos do emissor, político, regulatório, de mercado ou econômico. Os votos são enviados voluntariamente por indivíduos e refletem sua própria opinião sobre a utilidade dos artigos. Um valor percentual de utilidade aparecerá uma vez que um número suficiente de votos tenha sido enviado. Fidelity Brokerage Services LLC, Membro NYSE, SIPC. 900 Salem Street, Smithfield, RI 02917 Informações legais importantes sobre o e-mail que você enviará. Ao usar este serviço, você concorda em inserir seu endereço de e-mail real e enviá-lo somente para pessoas que você conhece. É uma violação da lei em algumas jurisdições falsamente identificar-se em um e-mail. Todas as informações que você fornecer serão usadas pela Fidelity exclusivamente para o propósito de enviar o e-mail em seu nome. A linha de assunto do e-mail que você enviar será Fidelity: Seu e-mail foi enviado.

No comments:

Post a Comment