Indicador técnico

Oscilador de Volume: Um Guia Prático para Traders no MetaTrader 5
MetaTrader5
Oscilador de Volume: Um Guia Prático para Traders no MetaTrader 5

O Oscilador de Volume é uma ferramenta essencial que analisa a relação entre duas médias móveis calculadas com base no volume de transações. Vamos entender como esse indicador pode ajudar você a tomar decisões mais assertivas nas suas operações. Cálculo do Oscilador de Volume LongEMA = EMA(Volume, LongPeriod) ShortEMA = EMA(Volume, ShortPeriod) VolumeOsc = 100 * (ShortEMA - LongEMA) / LongEMA Quando observamos uma alta ou baixa de preço acompanhada por um aumento no volume, isso pode indicar a força de uma tendência. Se o oscilador de volume estiver acima da linha zero, isso pode confirmar a direção do preço e a tendência do mercado, seja em uma alta ou baixa. Por outro lado, uma alta ou baixa de preço com uma redução no volume pode sinalizar uma fraqueza na tendência. Nesse caso, se o oscilador de volume estiver abaixo da linha zero, isso pode sugerir que a direção do preço e a tendência geral do mercado estão fracas. É importante também ficar atento às divergências na área negativa do oscilador, que muitas vezes podem sinalizar uma possível reversão de tendência no futuro próximo. A linha do indicador oscila entre acima e abaixo da linha zero, oferecendo uma indicação clara da tendência de preços e da força do movimento. Valores positivos do oscilador indicam que há um suporte de mercado suficiente para que o preço continue na direção atual da tendência. Já valores negativos sugerem que não há suporte de mercado, indicando que o preço pode estar estagnado ou prestes a reverter sua tendência.

2025.04.14
EquiPeak Drawdown Tracker: Controle Eficiente para Seus EAs no MetaTrader 5
MetaTrader5
EquiPeak Drawdown Tracker: Controle Eficiente para Seus EAs no MetaTrader 5

Para que serve exatamente? Referência visual de desempenho dos seus EAs: Insira manualmente o Drawdown Máximo Histórico conhecido ou esperado da sua estratégia (por exemplo, obtido em backtests ou resultados anteriores). Assim, você terá sempre uma referência clara para verificar se o seu EA está dentro dos parâmetros normais ou se está passando por uma situação inesperada. Monitoramento contínuo de risco: Também é possível usar o indicador para acompanhar o drawdown atual em tempo real e conferir se você está ultrapassando níveis críticos que exigem sua atenção imediata. Notificações inteligentes e detalhadas: O indicador envia notificações push (para o seu celular via app MetaTrader) sempre que um novo recorde de drawdown é alcançado, ou periodicamente (de acordo com suas configurações), para mantê-lo informado sem sobrecarregá-lo com mensagens desnecessárias. Registro automático: Permite logar continuamente o drawdown em um arquivo externo (CSV ou TXT) para análises futuras. Quem se beneficia? Traders que operam com sistemas automáticos ou semi-automáticos e desejam saber rapidamente se seus EAs estão dentro do drawdown máximo esperado. Usuários que precisam verificar visualmente o comportamento de suas estratégias em condições reais em comparação com as expectativas baseadas em testes anteriores. Qualquer trader que deseja gerenciar seu risco de forma eficaz, sabendo imediatamente quando suas operações ultrapassam limites aceitáveis. Guia de Configuração Detalhado (Entradas) Confira todos os parâmetros personalizáveis do indicador: Magics a monitorar (-1 monitora todos): Especifica os números mágicos das posições a serem acompanhadas. Utilize  -1   para monitorar todas. Max DD Inicial (%) Aqui você insere o drawdown máximo histórico conhecido do seu EA (por exemplo, o maior resultado obtido em um backtest longo). Isso servirá como uma referência visual. Intervalo de Atualização (segundos) Frequência das atualizações de cálculos. Modo de atualização do MaxDD Define como o recorde histórico é atualizado: UPDATE_MAX_DD_IF_BIGGER: Atualiza automaticamente se o atual exceder o histórico inserido. NO_UPDATE_MAX_DD: Nunca atualiza o valor histórico inserido manualmente, mas envia notificações a cada 60 minutos sobre o status atual. Enviar notificações push? Ative ou desative as notificações push para seu celular. Referência fixa ou pico? Escolha como definir a referência de saldo: REF_FIXED_BALANCE: Saldo fixo, inserido manualmente. REF_PEAK_BALANCE: Sempre usa o saldo máximo alcançado (salvo automaticamente). Saldo fixo (0 => atual) Saldo fixo inicial. Se utilizar  0, o saldo atual é considerado ao carregar o indicador. Cor do texto do DD atual Cor do texto do drawdown atual. Cor do texto do max DD Cor do texto do drawdown histórico. Tamanho da fonte (DD atual) Tamanho da fonte do drawdown atual. Tamanho da fonte (max DD) Tamanho da fonte do drawdown histórico. Rótulos atrás do gráfico? Coloque os textos atrás do gráfico. Rótulo X (pixels) Distância horizontal da borda esquerda. Rótulo Y (pixels) Distância vertical da borda superior. Espaçamento vertical Espaço vertical entre os textos. Imprimir logs no Jornal? Habilite mensagens detalhadas no Jornal. Habilitar Log de Arquivo Registra automaticamente o drawdown atual em um arquivo externo. Extensão do arquivo (CSV ou TXT) Escolha o formato do arquivo gerado. Registro automático em arquivo Os valores de drawdown são registrados automaticamente junto com a data e hora em formato CSV ou TXT, localizados na pasta comum do MT5 (MetaTrader 5 Terminal/Common/Files/). Isso é ideal para você analisar seus resultados depois. Recomendações importantes para aproveitá-lo ao máximo Insira sempre o Drawdown Máximo Histórico esperado (resultado de backtesting, desempenho anterior, etc.) na entrada "Max DD Inicial (%)". Isso permitirá que você avalie rapidamente se o seu EA está passando por um período normal ou se precisa de ajustes. Posicione o indicador em um gráfico dedicado, monitorando todos os números mágicos, ou em cada gráfico específico se preferir dados independentes. Ajuste cuidadosamente a taxa de atualização, cores, posição e tamanho do texto para uma visualização ideal de acordo com suas preferências. Para receber notificações push no seu celular Abra o MetaTrader no celular e copie seu ID MetaQuotes (Configurações > Mensagens). No MetaTrader 5 desktop, vá em Ferramentas > Opções > Notificações. Marque Habilitar Notificações Push e cole seu ID MetaQuotes.

2025.04.14
Kuskus Starlight: O Indicador Essencial para o MetaTrader 5
MetaTrader5
Kuskus Starlight: O Indicador Essencial para o MetaTrader 5

Nome do Indicador: Kuskus Starlight Descrição: O Kuskus Starlight é um indicador técnico que atua como um oscilador, utilizando a transformação de Fisher para ajudar os traders a identificarem tendências e reversões de mercado. Ele é normalizado em um intervalo específico de períodos, com parâmetros de suavização ajustáveis, permitindo que você personalize sua sensibilidade. Este indicador é muito valorizado por seu papel como ferramenta de confirmação dentro de sistemas de trading, ajudando a validar potenciais sinais de entrada. Histórico: Conheci o indicador Kuskus Starlight através do Stonehill Forex e do canal No Nonsense Forex (NNFX) no YouTube. Ambas as plataformas destacam sua utilidade como um indicador de confirmação em seus sistemas de negociação. Segundo o Stonehill Forex, o indicador remonta a 2007, enquanto o NNFX menciona seu lançamento em 2017. Para um panorama mais detalhado e aplicação do indicador Kuskus Starlight, você pode conferir os seguintes recursos: Artigo do Stonehill Forex: Kuskus Starlight como um Indicador de Confirmação Vídeo do NNFX no YouTube: Indicador Kuskus Starlight Porque Eu O Codifiquei: Como usuário do MetaTrader 5 (MT5), percebi que não havia uma versão do indicador Kuskus Starlight compatível com a plataforma. Reconhecendo seu valor potencial para os traders que utilizam o MT5, tomei a iniciativa de codificá-lo pessoalmente, garantindo que sua funcionalidade e integridade se alinhassem ao algoritmo original. Código e Algoritmo Original do MT4: A versão original deste indicador, projetada para o MetaTrader 4 (MT4), foi postada por Scriptor e pode ser encontrada aqui. Minha adaptação para o MT5 é baseada neste código e preserva seus princípios fundamentais, enquanto a torna acessível para a comunidade MT5. Espero que esta versão do Kuskus Starlight para o MT5 se torne uma adição valiosa ao seu kit de ferramentas de trading! Configurações do Indicador: Opções de Tipo de Desenho Opções de Tipo de Desenho: Linha Opções de Tipo de Desenho: Histograma Opções de Tipo de Desenho: StaryStaryNight Opções de Tipo de Seta: Muitas opções de seta para escolher

2025.04.14
Chande Kroll Stop: O Indicador de Stop Loss para MetaTrader 5
MetaTrader5
Chande Kroll Stop: O Indicador de Stop Loss para MetaTrader 5

O indicador Chande Kroll Stop é uma ferramenta valiosa para definir o nível de stop loss nas suas operações. Ele aparece no gráfico de preços como duas linhas: uma linha vermelha e uma linha verde. A linha verde, que representa as posições longas, indica onde você deve colocar seu stop loss. Se o ativo começar a cair e atingir esse nível, pode ser um sinal para fechar suas compras. A linha vermelha, por outro lado, indica o nível de stop loss para as posições curtas. Caso o preço do ativo comece a subir e toque essa linha, é hora de considerar fechar suas vendas. O Chande Kroll Stop é calculado com base no True Range, o que o torna um indicador independente da volatilidade do instrumento. Esse conceito foi introduzido no livro The New Technical Trader, escrito por Tushar Chande e Stanley Kroll. Como um indicador de seguimento de tendência, o Chande Kroll Stop determina os níveis de stop para o trader ao calcular a média do verdadeiro alcance da tendência do mercado, considerando a volatilidade. A fórmula do indicador é baseada nos valores máximos e mínimos de preços em um determinado período, além da desvio padrão (ATR). Esses dados permitem que o indicador “sinta” o mercado e ajuste seus níveis conforme a situação atual. A volatilidade do mercado é um fator crucial no cálculo desse indicador. Em momentos de alta volatilidade, as linhas do Chande Kroll Stop estarão mais distantes do preço atual, dando ao investidor mais espaço para as flutuações do mercado. Já em baixa volatilidade, as linhas ficam mais próximas do preço, permitindo uma reação mais rápida às mudanças.

2025.04.10
Indicador de Fator de Uniformidade: Uma Análise Profunda para Traders
MetaTrader5
Indicador de Fator de Uniformidade: Uma Análise Profunda para Traders

Se você é trader e está sempre em busca de ferramentas que possam potencializar sua análise, o Indicador de Fator de Uniformidade pode ser uma adição interessante ao seu arsenal. Esse indicador é uma ferramenta analítica simples (não-sinal, calculada uma única vez) que permite testar a hipótese de que as séries temporais de preços representam um "caminhar aleatório", especificamente um "caminhar aleatório" gaussiano. Esse conceito pode ajudar a construir uma transformação paramétrica das variações de preço em séries temporais mais estáveis e previsíveis, pelo menos no que diz respeito à volatilidade. Como você deve saber, a distância que uma variável de "caminhar aleatório" é esperada para cobrir após N passos é estimada pela sua desvio padrão multiplicado pela raiz quadrada de N, ou seja, N^0.5. Como Funciona o Indicador Este indicador calcula as estatísticas da mudança média de preço (por barra) para subintervalos pré-definidos de barras. A "média" é realizada sobre a distância (número de barras até o N dado) elevada à potência de F — um fator que varia de 0.1 a 1 com incremento de 0.1. Todas as barras disponíveis no gráfico atual são utilizadas para coletar estatísticas em janelas deslizantes de até N barras. Em seguida, o indicador encontra a distribuição mais "regular" das estatísticas entre diferentes F's e exibe um histograma para esse fator (considerado ótimo), que geralmente é 0.5 ou 0.6. Cada coluna do histograma representa a "média" da variação de pontos por barra para a duração do trade correspondente (número de barras), onde a "média" é feita por N^F (quando F=1, você obtém a média padrão). Métodos de Detecção O indicador pode utilizar diferentes métodos para a detecção automática da "regularidade" (planicidade) da curva estatística: mínimo da variância; mínimo da diferença entre médias, mediana e moda, como erro quadrático; mínimo do coeficiente de Gini; Por que Conhecer o Fator Ótimo? Saber qual é o fator ótimo pode ser útil para: normalização de dados de entrada (variações de preço) para redes neurais e outros algoritmos de aprendizado de máquina; estimação do número suficiente de barras para amostras em um único vetor de entrada para análise em sistemas de trading de volatilidade; detecção de símbolos e/ou períodos com anomalias (F não padrão ou singularidade na curva de distribuição); Entradas do Indicador Período — distância máxima em barras (N) para coleta de estatísticas de faixa de preço, por padrão 200; Fator — expoente para "média" sobre distâncias, por padrão 0 - significa autodetecção, você pode inserir um valor personalizado entre 0.0 e 1.0, como 0.525; Método — um dos métodos de estimativa de uniformidade: variância, média tripla, Gini; MaxBars — um limite de barras para calcular estatísticas, por padrão 0 - significa todas as barras disponíveis; Nota: se você usar um número ilimitado ou centenas de milhares de barras no gráfico, o cálculo pode demorar. Se isso for um problema, considere limitar o número de barras para dezenas de milhares. Saídas do Indicador O indicador mostra um histograma azul da mudança média de preço por barra para cada distância na faixa de distâncias (1..Período) e para o fator de uniformidade selecionado. Além disso, um número crescente de barras (distância) é apresentado como o segundo histograma (laranja), apenas para referência. Uma tabela completa dos fatores testados e das métricas correspondentes da série temporal atual é impressa no log. Exemplos de Resultados XAGUSD.c D1, Max.Distance: 500, Bars: 2641 Fator: 0.4, Resultado: var(0.4) mmm(0.4) gini(0.4)*     [fator]  [média] [variância] [assimetria] [curtose] [mediana]  [moda] [mmmse]  [gini] [0]  0.10000 1.85217    0.21976   -0.87694    0.07751  1.95822 2.30853 0.33811 0.13930 [1]  0.20000 1.07575    0.04083   -1.12699    0.96219  1.12715 1.25786 0.13285 0.10093 [2]  0.30000 0.62887    0.00525   -1.54472    3.00927  0.64878 0.68616 0.04114 0.05943 [3]  0.40000 0.37043    0.00021   -2.90499   13.36923  0.37546 0.37502 0.00394 0.01753 [4]  0.50000 0.22015    0.00028    1.53459    1.38333  0.21532 0.21461 0.00426 0.03779 [5]  0.60000 0.13222    0.00064    1.98696    4.05157  0.12372 0.10902 0.01661 0.09162 [6]  0.70000 0.08041    0.00072    2.60714    8.60950  0.07122 0.05862 0.01551 0.15135 [7]  0.80000 0.04964    0.00065    3.39070   15.85717  0.04099 0.03149 0.01289 0.21637 [8]  0.90000 0.03119    0.00054    4.37643   27.17457  0.02359 0.01692 0.01018 0.28652 [9]  1.00000 0.02002    0.00044    5.57319   43.86448  0.01358 0.00909 0.00787 0.36126 Capturas de Tela As capturas de tela a seguir demonstram o indicador em 3 períodos: D1, H1 e M1. Cada gráfico contém 2 instâncias do indicador: a superior está configurada para autodetecção de F pelo Gini, e o valor encontrado (variou entre 0.4 uma vez e 0.5 duas vezes) é exibido no título, marcado com um asterisco; a inferior está configurada para F=0.6 predefinido; 2 indicadores Fator de Uniformidade em XAGUSD,D1 2 indicadores Fator de Uniformidade em XAGUSD,H1 2 indicadores Fator de Uniformidade em XAGUSD,M1

2025.04.07
Zigzag PSAR: O Indicador Sem Atraso Para MetaTrader 5
MetaTrader5
Zigzag PSAR: O Indicador Sem Atraso Para MetaTrader 5

Se você está buscando uma nova ferramenta para aprimorar suas análises, o indicador Zigzag PSAR pode ser exatamente o que você precisa. Diferente do zigzag tradicional que muitos já conhecem, este indicador é uma abordagem inovadora que promete eliminar os atrasos que costumam afetar as decisões de trading. O zigzag convencional tem sua utilidade, pois destaca os movimentos passados do mercado e exige um número específico de barras antes de confirmar um novo movimento. Ele se baseia na ação do preço, mas é considerado um indicador com atraso, o que significa que não serve para detectar sinais em tempo real. Por isso, seu uso é mais comum na análise de pontos de pivô históricos do que em estratégias de seguimento de tendência. O Zigzag PSAR, por outro lado, é dinâmico e se adapta em tempo real, sem atrasos até a barra atual. Ele se fundamenta no algoritmo do SAR, que é um sistema de seguimento de tendência sem lag. Embora já tenham sido desenvolvidos zigzags baseados no PSAR, muitos apresentavam atrasos que tornavam os sinais inválidos. Para mim, não faz sentido ter um zigzag que atrasa quando estamos lidando com um algoritmo que não tem esse problema. Por isso, decidi criar este indicador, que proporciona um desenho de zigzag com zero atraso. O funcionamento desse indicador é bastante interessante: ele utiliza um retrocesso para manter a validade dos movimentos. Ao buscar um topo, por exemplo, ele encontra o maior pico dentro do número de barras definidas pelo retrocesso. O mesmo se aplica ao buscar um fundo, encontrando o menor vale. Isso significa que o final de cada segmento pode oscilar entre o ponto alto ou baixo, ou ainda em níveis mais recentes de suporte ou resistência. É importante lembrar que o PSAR tem suas limitações em mercados laterais, mas, fora isso, é um indicador de seguimento de tendência bastante eficaz. A estrutura do zigzag PSAR é uma das partes mais relevantes do código, projetada para ser limpa, eficiente e fácil de manter. Espero que você consiga tirar o máximo proveito deste trabalho e das experimentações.Novas versões:v1 - O movimento conecta-se a partir do ponto alto ou baixo da vela, ou aos suportes e resistências encontrados com o retrocesso.v2 - Conecta rigorosamente os movimentos aos pontos altos e baixos das velas no ponto de oscilação (na medida do possível).v3 - Inclui lógica de avanço para dar controle total sobre o zigzag.

2025.04.01
Detector de Mercado Lateral: O Indicador Essencial para MetaTrader 5
MetaTrader5
Detector de Mercado Lateral: O Indicador Essencial para MetaTrader 5

Se você é trader, já deve ter percebido que o mercado nem sempre está em tendência. Em muitos momentos, ele fica lateralizado, e saber identificar essas fases é crucial para suas operações. É por isso que hoje vamos falar sobre um indicador que promete facilitar essa tarefa: o Detector de Mercado Lateral. Esse indicador foi desenvolvido para destacar períodos de mercado lateral utilizando um ponto âncora dinâmico. O mais interessante é que a detecção é não lagging, ou seja, você consegue perceber as mudanças em tempo real. Ele possui duas modalidades de operação: a primeira é baseada em um limite de pontos e a segunda usa o ATR (Average True Range) com um multiplicador, permitindo uma análise mais dinâmica. Por padrão, o indicador utiliza o ATR, que se mostrou bastante eficaz para esse propósito. Além disso, ele gera um gráfico pseudo separado do gráfico original, onde as velas dentro do intervalo lateral são coloridas de forma diferenciada. Isso facilita muito a visualização das oscilações. A lógica por trás da definição de um intervalo é bem simples e, o melhor, você pode personalizar as entradas para definir o período do ATR e o multiplicador. Isso significa que você pode ajustar o que um mercado lateral representa para você. Para muitos traders, a interpretação de um mercado lateral pode variar bastante; enquanto um trader de longo prazo pode ignorar a volatilidade, um scalper pode querer aproveitar até mesmo os menores movimentos.

2025.03.31
Média Móvel T3: O Indicador Avançado para MetaTrader 5
MetaTrader5
Média Móvel T3: O Indicador Avançado para MetaTrader 5

A Média Móvel T3 é um indicador avançado desenvolvido por Tim Tillson, que minimiza o atraso enquanto mantém uma curva suave, filtrando o ruído do mercado. Diferente das médias móveis tradicionais, a T3 combina várias médias móveis exponenciais (EMAs) para oferecer uma resposta superior aos movimentos reais de preço. Método de Cálculo A T3 é calculada utilizando uma cascata de seis médias móveis exponenciais com um sistema de pesos baseado no fator de volume. A fórmula utiliza coeficientes específicos para combinar essas EMAs: Primeiro, seis EMAs sequenciais são calculadas, onde cada EMA recebe a saída da EMA anterior como entrada. A fórmula da T3 combina essas EMAs com coeficientes derivados do fator de volume: T3 = c1*EMA6 + c2*EMA5 + c3*EMA4 + c4*EMA3 Onde: c1 = -factor³ c2 = 3factor² + 3factor³ c3 = -6factor² - 3factor - 3*factor³ c4 = 1 + 3factor + factor³ + 3factor² Parâmetros de Entrada T3_Length: Comprimento do período para as EMAs (padrão: 12) T3_Factor: Fator de volume que controla a suavidade em relação à responsividade (padrão: 0.7) Valores mais altos (próximos de 1) criam linhas mais suaves com mais atraso Valores mais baixos (próximos de 0) criam linhas mais responsivas com menos atraso Uso O Indicador T3 pode ser utilizado para: Identificação de tendências (direção da linha T3) Sinais de negociação (preço cruzando a linha T3) Níveis de suporte e resistência Filtragem de ruídos de mercado em curto prazo Instalação Coloque o arquivo na pasta de indicadores do seu MetaTrader 5 e anexe-o a qualquer gráfico. Ajuste os parâmetros de entrada para atender à sua estratégia de negociação e período de tempo.

2025.03.11
ZigZag de Fibonacci: O Indicador Essencial para MetaTrader 5
MetaTrader5
ZigZag de Fibonacci: O Indicador Essencial para MetaTrader 5

A Configuração Para começarmos, vamos precisar de: 1 gráfico zigzag 2 buffers de dados para os altos e baixos parâmetros de entrada um conjunto contínuo de variáveis do sistema que se reiniciam sempre que o indicador é recalculado O array upWaves armazenará os altos e o array dwWaves armazenará os baixos. Variáveis do sistema: Precisamos saber o último tipo de onda, onde começou, onde terminou, a distância em barras do início ao fim. Em seguida, precisamos de uma variável de alto local e uma de baixo local, assim como as distâncias em barras de cada ponto. //--- mantendo o controle do zigzag int wave_type=0; //--- preço da onda (preço de início) double wave_start_price=0.0; //--- preço da onda (preço de fim) double wave_end_price=0.0; //--- distância em barras do preço de início int wave_start_distance=0; //--- distância em barras do preço de fim int wave_end_distance=0; //--- acompanhamento do preço alto double high_mem=0.0; int distance_from_high=0; //--- acompanhamento do preço baixo double low_mem=0.0; int distance_from_low=0; //--- cálculo do atr double rollingAtr=0.0; int rollingAtrs=0; Por fim, o cálculo do atr em andamento e quantos já foram calculados. Agora vamos criar uma função de reinício do sistema: void resetSystem(){ ArrayFill(upWaves,0,ArraySize(upWaves),0.0); ArrayFill(dwWaves,0,ArraySize(dwWaves),0.0); wave_type=0; wave_start_price=0.0; wave_end_price=0.0; wave_start_distance=0; wake_end_distance=0; high_mem=0.0; low_mem=0.0; distance_from_high=0; distance_from_low=0; rollingAtr=0.0; rollingAtrs=0; } Com isso, reiniciamos as variáveis do sistema. No método OnInit, configuramos os buffers, o gráfico e chamamos o reset pela primeira vez: SetIndexBuffer(0,upWaves,INDICATOR_DATA); SetIndexBuffer(1,dwWaves,INDICATOR_DATA); PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_ZIGZAG); PlotIndexSetInteger(0,PLOT_LINE_COLOR,0,Color); PlotIndexSetInteger(0,PLOT_LINE_WIDTH,Width); PlotIndexSetInteger(0,PLOT_LINE_STYLE,Style); resetSystem(); Agora vamos para o cálculo. A primeira coisa que precisamos cuidar é do cálculo do atr. Até que tenhamos coletado mais barras do que o período do atr, não faremos mais nada. A parte que gerencia o atr é a seguinte: se não temos coletado mais do que o período, continuamos adicionando a faixa das barras a uma soma uma vez que chegamos ao período, fazemos a primeira divisão (média) depois, cortamos uma parte do atr em andamento, que é atr/período, e adicionamos uma nova parte que é a faixa da barra / período Colocamos a última parte primeiro porque vai acontecer mais vezes e não precisaremos acessar dois ifs. //--- gerenciando o atr rollingAtrs++; if(rollingAtrs>rollingAtrPeriod){ double new_portion=((high[i]-low[i])/_Point)/((double)rollingAtrPeriod); //--- removemos uma parte antiga e adicionamos uma nova rollingAtr=(rollingAtr)-(rollingAtr/((double)rollingAtrPeriod))+new_portion; } else if(rollingAtrshigh_mem&&low[i]>=low_mem){ double new_wave_size_in_atr_units=((high[i]-low_mem)/_Point)/rollingAtr; //--- se o novo tamanho da onda é válido if(new_wave_size_in_atr_units>=minSizeInAtrUnits){ //--- inicia uma nova onda de alta wave_type=1; //--- preço de início é o baixo mem wave_start_price=low_mem; wave_start_distance=distance_from_low; //--- o preço de fim é o novo alto wave_end_price=high[i]; wave_end_distance=0; //--- desenha a onda dwWaves[i-wave_start_distance]=low_mem; upWaves[i]=high[i]; //--- atualiza o alto high_mem=high[i]; distance_from_high=0; //--- atualiza o baixo low_mem=low[i]; distance_from_low=0; } } //--- se rompemos o baixo e não o alto else if(low[i]wave_end_price){ //--- remove o preço de fim anterior de sua posição no array (0.0= vazio) upWaves[i-wave_end_distance]=0.0; //--- coloca na nova posição upWaves[i]=high[i]; wave_end_price=high[i]; wave_end_distance=0; //--- atualiza o alto high_mem=high[i]; distance_from_high=0; //--- atualiza o baixo low_mem=low[i]; distance_from_low=0; } //--- verifica o retrocesso if(low[i]0.0){ double retraced=(size_of_retracement/size_of_wave)*100.0; double new_wave_size_in_atr_units=((wave_end_price-low_mem)/_Point)/rollingAtr; //--- se o novo tamanho da onda é válido if(new_wave_size_in_atr_units>=minSizeInAtrUnits){ //--- se o retrocesso é significativo, inicia uma onda de baixa if(retraced>=retracement){ //--- inicia uma nova onda de baixa wave_type=-1; //--- preço de início é o alto mem wave_start_price=high[i-distance_from_high]; wave_start_distance=distance_from_high; //--- o preço de fim é o novo baixo wave_end_price=low[i]; wave_end_distance=0; //--- desenha a onda upWaves[i-wave_start_distance]=high_mem; dwWaves[i]=low[i]; //--- atualiza o alto high_mem=high[i]; distance_from_high=0; //--- atualiza o baixo low_mem=low[i]; distance_from_low=0; } } } } } Fazemos o oposto quando temos uma onda de baixa. E estamos prontos! Nosso zigzag de retrocesso está finalizado. Aqui está o zigzag com 23.6% de retrocesso e 0.0 min tamanho das ondas em unidades de atr. E aqui está o mesmo zigzag com 3 min tamanho das ondas em unidades de atr.

2025.03.03
Primeiro Anterior 3 4 5 6 7 8 9 10 11 12 13 Próximo Último