Python 3 Line Break Forex
MetaTrader 4 - Indicadores Indicador de três linhas de quebra para MetaTrader 4 Os gráficos de quebras de três linhas representam um retângulo de retângulo, cuja altura é determinada pelo valor das mudanças de preço. Esses gráficos - como Kagi, PampF, Renko - não consideram fator de tempo. Este método gráfico é nomeado após o número de linhas geralmente usadas para registrar uma quebra. Os gráficos de divisão de três linhas foram trazidos pela primeira vez para os Estados Unidos por Steven Nison quando publicou seu livro, Beyond Candlesticks. As regras básicas de negociação usando um gráfico de interrupção de três linhas são dadas abaixo: Compre quando depois de três linhas vermelhas consecutivas, uma linha azul aparece (a linha de reversão azul). Vender quando depois de três linhas azuis consecutivas, aparece uma linha vermelha (a linha de reversão vermelha). Não troque quando não há uma tendência estável, ou seja, quando as linhas azul e vermelha alternam. A vantagem dos gráficos de ruptura de três linhas não é um critério de reversão definido aleatoriamente. A própria dinâmica de preços denota a reversão. Uma desvantagem de tais gráficos pode ser a aparência de sinais de reversão após a nova tendência ter sido formada. Mas muitos comerciantes estão prontos para ter paciência e entrar no mercado mais tarde em troca de uma oportunidade para cobrir a parte principal de uma grande tendência. A sensibilidade dos sinais de reversão pode ser variada alterando a quantidade de linhas usadas para registrar a quebra. Assim, os comerciantes que praticam operações de curto prazo podem usar uma quebra de duas linhas, o que dá mais sinais de inversão. Para os investidores que estão interessados em perspectivas de longo prazo, as quebras de quatro linhas ou mesmo dez podem ser mais preferíveis, pois diminuem a quantidade de sinais. No Japão, o intervalo de três linhas é o mais usado. S. Nison recomenda usar gráficos de ruptura de três linhas juntamente com castiçais. Ao fazê-lo, é suposto detectar a direção da tendência principal usando o método anterior e determinar pontos específicos de entrada e sair do mercado. LB - count of break lines Baixar MetaTrader 5 Copyright 2000-2017, MQL5 Ltd. MetaTrader 5 - Exemplos Indicador para a construção de um gráfico de três linhas de divisão Introdução Artigos anteriores considerados Point and Figure. Kagi e Renko gráficos. Continuando a série de artigos sobre gráficos do século 20, desta vez vamos falar sobre o gráfico Three Line Break ou, para ser preciso, sobre sua implementação através de um código de programa. Há muito poucas informações sobre a origem deste gráfico. Suponho que tenha começado no Japão. Nos EUA, eles aprenderam sobre Beyond Candlesticks por Steve Nison, publicado em 1994. Além dos gráficos mencionados acima, o intervalo de tempo não é levado em consideração ao construir o gráfico Three Line Break. Baseia-se nos preços de fechamento recém-formados de um determinado período de tempo, o que permite filtrar pequenas flutuações de um preço em relação ao movimento anterior. Steve Nison em seu livro Beyond Candlesticks descreveu onze princípios de traçar esse gráfico (p. 185). Eu os consoliei em três. Princípio 1. Para construção, selecione um preço inicial e depois, dependendo se o mercado se move para cima ou para baixo, desenhe uma linha ascendente ou descendente. Ele marcará um novo mínimo ou máximo. Princípio 2. Quando um novo preço cai abaixo do mínimo ou excede o máximo, podemos desenhar uma linha descendente ou ascendente. Princípio 3. Para desenhar uma linha na direção oposta ao movimento anterior, o mínimo ou o máximo devem ser passados. Ao mesmo tempo, se houver mais de uma linha idêntica, o mínimo ou o máximo é calculado com base em dois (se houver duas linhas idênticas consecutivas) ou três (se houver três ou mais linhas idênticas consecutivas) delas. Vamos dar uma olhada no exemplo de uma construção de gráfico clássico com base em dados históricos (figura 1). Fig.1 Exemplo de construção de um gráfico de três linhas de divisão (EURUSD H1 27.06.2014) Fig. 1 representa um gráfico de castiçal no lado esquerdo e um gráfico de três linhas de intervalo no lado direito. Este é um gráfico do EURUSD, horário H1. A data de início do gráfico é 27.06.2014 ao preço 1.3613 (o tempo de encerramento da vela é 00:00), então a vela (01:00) fecha em 1.3614, formando a primeira linha ascendente do gráfico Three Line Break. A seguinte vela da direção descendente (02:00) forma uma linha ascendente, fechando em 1.3612 (o preço de fechamento é menor do que o mínimo anterior). Em seguida, candelabros bullish estão movendo o preço para a marca 1.3619 (03:00), formando um novo máximo e uma linha. A vela às 04:00 não caiu abaixo do mínimo e não afetou a construção. A vela às 05:00 fecha em 1.3623, marcando um novo máximo (nova linha ascendente). Agora, para estender a tendência de baixa, precisamos passar dois mínimos (1.3613), mas os touros não vão desistir de sua posição e formar um novo máximo de 1.3626 (06:00). Então, os touros estão tentando reverter a tendência de alta por duas horas, mas a mesma tendência continua com um novo máximo alcançado em 1.3634 (09:00). Os touros estão liderando. Agora, para desenhar uma linha ascendente, três mínimos devem ser passados (1.3626 1.3623 e 1.3619). Como podemos ver, nas três horas seguintes os ursos estão assumindo o mercado, derrubando-o até o ponto 1.3612 (12:00). Isso se reflete em uma nova linha ascendente. No entanto, as cinco horas seguintes mostram que os touros estão ganhando sua posição e trazem o mercado de volta ao 1.3641, passando o máximo anterior em 1.3626 e formando uma nova linha ascendente às 17:00. Os ursos não conseguem passar o mínimo anterior às 18:00 e, durante as seguintes cinco horas, os touros estão trazendo o mercado até o ponto 1.3649, formando uma nova linha ascendente a cada hora. Fundamentos da construção do gráfico Antes de chegar ao código, vamos falar sobre o próprio indicador e descobrir o que o torna diferente dos outros e como. É óbvio que o Three Line Break, como outros indicadores, foi projetado para facilitar a análise eficiente de mercado e a busca de novas estratégias. Estou certo de que quer saber se há novidades. Na verdade, existem alguns deles. O indicador permite alterar o tipo de preço para o cálculo. Abrange os quatro preços de barras padrão. O tipo clássico é projetado para a construção de gráficos apenas para um tipo de preço quando o modernizado atende ao uso dos quatro tipos de preço (aberto, alto e baixo). Ele modifica o aspecto da construção do gráfico clássico, adicionando sombras às linhas e fazendo com que elas pareçam castiçais japoneses, o que aumenta a percepção visual do gráfico. A versão modernizada também possui configurações para sincronizar os dados de preços no tempo com a substituição dos preços faltantes pelos prioritários. O tipo de construção do gráfico modernizado é apresentado na fig. 2: Fig.2 Gráfico modificado com base em quatro tipos de preços Como a construção modernizada combina quatro gráficos de três linhas de divisão de diferentes tipos de preços, é natural encontrar discrepâncias entre os preços. Para evitar isso, a sincronização de dados no tempo é necessária. A sincronização de preços foi realizada em duas variações: completa (figura 2 à direita) e parcial (figura 2 à esquerda). A sincronização completa representa uma parte parcial filtrada, onde todos os dados são desenhados no gráfico e os dados ausentes são substituídos pelos preços prioritários especificados nas configurações. No modo de sincronização completa, os dados que faltam simplesmente são omitidos e apenas os castiçais com um conjunto completo de dados são desenhados. Outra inovação é um separador de período, introduzido para a conveniência de separar sinais. Como você sabe, o separador de período pode ser ativado nas configurações do gráfico. No indicador eles mudam dependendo do prazo, especificado nas configurações. Ao contrário dos gráficos no MetaTrader 5. onde os períodos são separados por uma linha tracejada vertical, neste indicador um novo período é representado pela alteração de uma cor de linha (velas, fig. 3): Fig.3 Separadores de períodos no indicador Outra adição é a Implementação de um indicador iMA técnico. Que é construído com base nos preços do gráfico principal, mas está sincronizado com os dados do indicador no tempo. Assim, os dados são filtrados pela média móvel (figura 4): Fig.4 Média móvel interna O indicador também possui uma característica para configurar um movimento mínimo em pontos para desenhar uma linha e o número de linhas necessárias para uma inversão. Também tem um papel de filtro. Código do indicador O algoritmo do indicador é bastante simples e tem três etapas: dados de cópia, cálculo baseado nos dados copiados e tampões de preenchimento do indicador (construindo um gráfico com base nos dados recebidos). O código é dividido em funções que estão interligadas entre si ou com os dados de entrada. Vamos dar uma olhada no código. 1. Parâmetros de entrada do indicador O preâmbulo do indicador contém uma declaração de construções gráficas. Existem dois deles no indicador: gráfico ABCTB (DRAWCOLORCANDLES) e média móvel adicional LINETLB (DRAWLINE). Conseqüentemente, existem seis buffers. Em seguida, segue os dados do tipo enum para melhorar as configurações da interface e as configurações em si: magicnumb - O número mágico tem o tipo longo. É um número único para denotar o indicador. Se a necessidade surgir, pode ser convertida em cadeia de caracteres com um prazo de poucas alterações - intervalo de tempo de cálculo, digite ENUMTIMEFRAMES. É o parâmetro principal (o período do indicador) timeredraw - Período de atualizações do gráfico, digite ENUMTIMEFRAMES. É o prazo durante o qual ocorre um recálculo do gráfico. Para um redimensionamento rápido do gráfico, pressione a tecla R no teclado - um controle integrado do indicador firstdatestart - Data de início, digite datetime. É o parâmetro principal que é o ponto de partida para copiar dados e gráficos de gráficos - Tipo de preço para o cálculo (0-Fechar, 1-Abrir, 2-Alto, 3-Baixo). Para uma construção de gráfico clássico, um tipo de preço deve ser selecionado. Como já mencionado, este parâmetro é ignorado quando a construção modificada é habilitada stepminf - Etapa mínima para uma nova coluna (gt0, tipo int) ou um salto necessário para desenhar uma linha linetobackf - Número de linhas para exibir uma inversão (gt0, tipo int) . O tipo clássico sugere três linhas para mostrar um tipo de gráfico de reversão - Tipo de construção do gráfico (0-clássico, 1-modificado), tipo selecione. É um alternar entre os tipos de construção chartcolorperiod - Alterar a cor ao iniciar um novo período (tipo booleano). Usado para alterar a cor da linha no início de um novo período de sincronização de gráficos - Construir um gráfico somente após a sincronização completa (tipo booleano, se verdadeiro, então ocorre uma sincronização completa com queda de todos os valores faltantes antes de construir um gráfico) graphicpriorityclose - Prioridade do preço de fechamento (Tipo selecionado tem quatro variações. Ele aponta na prioridade do preço de fechamento na sincronização parcial e é ignorado no primeiro gráfico completo aberto - Prioridade do preço de abertura. O mesmo se aplica aqui gráficopriorityhigh - Prioridade do preço máximo. O mesmo se aplica Aqui chartprioritylow - Prioridade do preço mínimo. O mesmo se aplica aqui madraw - Desenhe a média (tipo booleano, se for verdade, então tire média móvel) maprice - Tipo de preço para a construção da média, pode ser um de ENUMAPPLIEDPRICE mamethod - Tipo de construção, lata Seja um de ENUMMAMETHOD maperiod - Período de média da média móvel Então declaramos conjuntos de buffer, variáveis e estrutura Necessárias para o cálculo. 2. Função OnInit Todos os buffers de indicadores são declarados na função OnInit e a indicação da matriz está configurada como em um timeseries. Em seguida, definimos valores do indicador que não serão refletidos no gráfico, configure o nome. Especifique a precisão e remova os valores atuais à medida que sobrecarregam o gráfico. Aqui também definimos o identificador do indicador iMA e verificamos a correção dos dados inseridos. Em caso de erro, uma mensagem apropriada é impressa e o valor é alterado pelo mínimo. 3. Função de cópia de dados Como o indicador é projetado para funcionar com os quatro tipos de preços, é essencial copiar todos os dados, incluindo o tempo. No MQL5 existe uma estrutura chamada MqlRates. Ele é usado para armazenar informações sobre o tempo do início de uma sessão de negociação, preços, volumes e spread. Os parâmetros de entrada da função são o início e a data de término, o período e a matriz de destino do tipo MqlRates. A função retorna verdadeira se a cópia for bem-sucedida. Os dados são copiados para uma matriz intermediária. Os dados perdidos calculados mais uma sessão são copiados lá e os dados estão permanentemente renovados. Se a cópia na matriz intermediária tiver sido bem sucedida, os dados são copiados na matriz, passados para garantir o trabalho correto da função. 4. Função de cálculo de dados Esta função é um protótipo de cálculo de dados para uma construção clássica do gráfico Three Line Break. Como já mencionado, a função apenas calcula dados e o forma em uma matriz especial do tipo de estrutura lineinfo, declarada no início do código. Esta função contém duas outras funções: funcregrouping (função de reagrupamento) e funcinsert (função de inserção). Vamos dar uma olhada neles para começar: 4.1. Função de reagrupamento Esta função está reagrupando informações sobre linhas consecutivas da mesma direção. É limitado pelo tamanho da matriz passada para ele ou, para ser preciso, pelo parâmetro linetobackf (número de linhas para exibir uma inversão) a partir das configurações do indicador. Portanto, toda vez que o controle é passado para a função, todos os dados recebidos sobre linhas idênticas movem um ponto para baixo para o final eo índice 0 é preenchido por um novo valor. É assim que a informação sobre as linhas necessárias para uma pausa é armazenada (no caso da construção clássica, a quebra tem três linhas). 4.2. Função de inserção A função realiza a inserção dos valores na matriz de resposta. O código é simples e não requer explicação detalhada. A função de cálculo de dados foi convencionalmente dividida em três partes. A primeira parte copia os dados em análise para uma matriz intermediária com a ajuda do interruptor do operador. Somente o preço relacionado é copiado. A segunda parte faz uma execução de teste para calcular o espaço necessário na matriz de dados. Em seguida, a matriz de dados linemainarray, inicialmente passada para a função de resposta, sofre uma alteração. A terceira parte, por sua vez, preenche a matriz de dados ajustada. 5. Função da construção do gráfico O objetivo desta função é calcular os dados para um gráfico com base no parâmetro de construção selecionado (clássico ou modificado) e preencher o buffer do indicador com dados para exibição. Além da função anterior, a função da construção do gráfico possui três funções adicionais. Eles são a função de cor, função de sincronização e a função da média móvel. Deixe-nos discuti-los com mais detalhes. 5.1. Função de cor Esta função possui apenas um parâmetro de entrada - tempo. A resposta da função é uma variável booleana. Se os dados passados forem a borda do período, a função retornará verdadeira. À medida que os períodos dependem do período de tempo selecionado, a função possui uma separação de período incorporada pelo operador condicional se. Depois que o período foi selecionado, ele é submetido a um cheque se um novo período já começou. É feito através da conversão de uma data na estrutura MqlDateTime e comparação. Para o período de até e inclusive H2, as mudanças no valor da data indicam o início de um novo período. Os prazos de H12 a D1 inclusive indicam mudanças em meses e entre W1 e MN verificamos a mudança no ano. Infelizmente, a estrutura MqlDateTime não possui informações sobre a semana atual. Esta questão foi resolvida criando um ponto inicial representado pela variável timevariable. Além disso, ao longo da linha, um número de segundos em uma semana é deduzido desta data. 5.2. Função de sincronização A função de sincronização tem seis parâmetros de entrada: quatro deles são a prioridade dos preços, o parâmetro booleano de sincronização completa ou parcial e a matriz em análise. A função é dividida em duas partes: um caso de sincronização completa e parcial. A sincronização completa é realizada em três etapas: Cálculo dos elementos da matriz, satisfazendo a condição de conter dados nos quatro tipos de preços. Copiando elementos em uma matriz intermediária na mesma condição. Copiando da matriz intermediária para a que passou por parâmetros. A sincronização parcial é mais complexa. A matriz de estrutura de uma dimensão passada está sendo convertida em duas dimensões, onde o primeiro índice denota a ordem e a segunda - o tipo de preço. Em seguida, introduzido é uma matriz unidimensional com quatro elementos. Os níveis de prioridade de preço são copiados para esta matriz e, em seguida, a matriz é ordenada para identificar a ordem de prioridade. Depois disso, realizamos a distribuição de acordo com as prioridades usando o loop for e o operador condicional se. Ao mesmo tempo, se as prioridades forem iguais, a seqüência de preços é a seguinte: fechar, abrir, alto, baixo. Assim que o operador encontrar o primeiro valor priorizado, o loop para substituir todos os dados zero na matriz bidimensional criada anteriormente para as prioridades, etc. 5.3. Função da média móvel É a função mais simples. Usando o identificador do indicador, recebido na função OnInit, copiamos o valor, correspondente à data passada nos parâmetros da função. Então este valor é retornado como uma resposta a esta função. A função de traçar um gráfico é convencionalmente dividida em duas partes: traçado clássico e modificado. A função possui dois parâmetros de entrada: tipo de preço para construção (ignorado durante a construção modificada) e tipo de construção (clássico e modificado). No início, os buffers de indicadores são limpos e depois, dependendo do tipo de construção, divididos em duas partes. A primeira parte (estamos falando sobre a construção modificada) começa com a chamada da função para calcular os quatro tipos de preços. Em seguida, criamos uma matriz de dados comum para onde copiamos os dados em uso, recebidos ao chamar a função de cálculo de dados. Então a matriz de dados recebida é ordenada e desmarcada a partir de dados replicados. Depois disso, os dados do arrayforbuffer, declarados no nível global, são preenchidos com base em datas consecutivas com a seguinte sincronização de dados. O buffers indicadores de preenchimento é o estágio final da construção modificada. A segunda parte (construção clássica) é muito mais simples. No início, a função de cálculo de dados é chamada e, em seguida, os buffers de indicadores são preenchidos. 6. Função de consolidação Esta função une todos os elementos indicadores de controle. Em primeiro lugar, a data atual é definida, então a função de copiar dados e a função de construção do gráfico são chamados. 7. Função de construção controlada por chave e controlada automaticamente. Essas funções foram projetadas para redessinar o indicador pressionando a tecla R (OnChartEvent) no teclado ou fazê-lo automaticamente de acordo com o intervalo de tempo selecionado (OnCalculate). O último é analisado pela nova função de barra (funcnewbar), que é uma versão simplificada da função descrita em IsNewBar. Neste ponto, vamos terminar de descrever o código do indicador e falar sobre as formas de usá-lo. Exemplos de uso do indicador e uma estratégia de negociação Vamos começar com as principais estratégias de análise baseadas na construção de gráficos clássicos. 1. Linhas brancas e pretas como sinais para comprar e vender. Aproximadamente podemos falar sobre duas regras: Regra 1. Compre, quando houver três linhas ascendentes consecutivas e venda, quando houver três linhas descendentes consecutivas. Três linhas consecutivas indicam uma tendência aparente. Regra 2. Vender, quando a linha de reversão cair abaixo de três linhas ascendentes consecutivas, compre, quando a linha de reversão for superior a três linhas descendentes consecutivas. Vejamos a fig.6, representando uma construção clássica para o EURUSD H1 desde o início de 2013 (o intervalo de tempo analisado é retratado na figura 5). Fig.5 Intervalo de tempo analisado EURUSD H1 Fig.6 Construção clássica do gráfico de três linhas de divisão para EURUSD H1, início de 2013, preços de fechamento No gráfico (figura 6) podemos ver claramente o sinal (regra 1) entre os pontos 1 E 2, que é um ponto de partida para a venda. Nesse caso, o ganho é superior a 200 pontos por quatro dígitos decimais. O seguinte ponto 4 indica uma situação favorável para a compra (como na regra 2). No final do ponto 5, o lucro foi de 40 pontos e estamos no ponto de equilíbrio no encerramento do ponto 6. No ponto 6, podemos ver um sinal de venda (regra 2). Recebemos 10 pontos de lucro quando fechamos no ponto 7 e fechamos no ponto 8. Os pontos 8 e 9 não podem ser considerados como sinais, pois não satisfazem a regra 1, nenhuma regra 2. Podemos comprar no ponto 10 (regra 1) nós Também pode obter lucro de 20 pontos no encerramento no ponto 11 ou ponto de equilíbrio no ponto 12. Todos os números foram arredondados. No melhor dos casos, usando essa estratégia, poderíamos gerar lucro de 270 pontos, o que é impressionante. Ao mesmo tempo, no intervalo de tempo especificado há um movimento intenso que afeta o lucro. No pior dos casos, a negociação pode resultar em breakeven, o que também não é ruim. Vale ressaltar que, quando uma situação atende à regra 1 ou à regra 2, precisamos esperar uma confirmação da inversão da tendência representada por uma linha na mesma direção que a tendência. 2. Linhas equidistantes de canal, suporte e resistências Outra estratégia comercial é a aplicação de análise técnica ao gráfico Three Line Break. Vejamos o fig. 7: Fig. 7 Linhas equidistantes de canal, suporte e resistências, GBPUSD H1, intervalo de tempo de 01.03.2014 a 01.05.2014 Na Fig. 7 você pode ver que o canal equidistante descendente é desenhado em linhas vermelhas, o canal ascendente é desenhado em azul e as linhas de suporte e a resistência são desenhadas em preto. É claro que a primeira linha de resistência está se transformando na linha de suporte. 3. Padrões de castiçal Um gráfico modificado (intervalo de duas linhas) no prazo M30 para o par USDCAD no início de 2013 parece bastante interessante. Podemos distinguir padrões japoneses de castiçal que justificam seus sinais (figura 8). FIG. 8 Gráfico modificado de três linhas de divisão, USDCAD M30, início de 2013, intervalo de duas linhas No início do gráfico, podemos ver um padrão de inversão de Engulfing em 1. Ele consiste em duas velas: vermelho e azul anterior. Após a linha de tendência ascendente, o mercado passa para o número 2, que é um martelo de reversão de uma vela. Neste ponto, o mercado muda de direção. O mesmo ocorre no padrão 3 (Spinning Top). O seguinte padrão de reversão Kharami (4) é mostrado pelo candelabro 4 e o grande ascendente ao lado dele. O padrão 6 também consiste em dois candelabros (padrão Engulfing), mas ao contrário do primeiro modelo similar, ele gira o mercado na direção oposta. Assim, pode-se concluir que o uso do indicador neste tipo de análise é aceitável, mas tem desvantagens como raramente a ocorrência de sinais e a possibilidade de uma redução significativa. Esta estratégia certamente precisa de um maior desenvolvimento. 4. Mover a média A modificação parcial, como a adição de uma média móvel apenas às linhas desenhadas, oferece novas oportunidades de análise. Vejamos o fig. 9: Fig. 9 Análise da média móvel, EURUSD H4, o gráfico de três linhas de divisão, construção clássica, de 01.01.2014 a 01.07.2014 A parte superior da fig. 9 ilustra uma construção clássica baseada nos preços altos com uma média móvel (o período médio é de 90, preço baixo, média lisa). A parte inferior mostra uma construção clássica baseada em preços baixos com uma média móvel (o período médio é de 90, alto preço, média lisa). Assim, na parte superior da fig. 9 a média móvel pode ser considerada uma linha de suporte e na parte inferior, pelo contrário, uma linha de resistência. Se o preço em ambos os gráficos cai abaixo da média, então há tendência de queda no mercado e é melhor vender. Quando o preço sobe acima da média, é hora de comprar. A desvantagem desta estratégia é que ela se destina a uma negociação de longo prazo. Conclusão Em conclusão, posso dizer que o Three Line Break dá sinais consistentemente bons ou, em pior caso, leva ao ponto de equilíbrio. A prática mostra que é melhor aplicada em uma tendência de longo prazo e, portanto, não recomendo usar este gráfico para uma negociação de curto prazo. Se alguém tiver novas ideias de como usá-lo na negociação, ficaria feliz em discutir isso. Como de costume, tentei explorar o código em detalhes. Novamente, se houver idéias de como se estender, retrabalhar ou otimizar, por favor escreva os comentários para o artigo.
Comments
Post a Comment