Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Telegram!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Indicadores

Swing Detector by Pullback (Smart Money Concepts) - indicador para MetaTrader 5

Sandro Begashvili
Sandro Begashvili
Sandro Begashvili - desenvolvedor de MQL5, MQL4, Python e Pine Script
Desenvolvo programas de trading para MetaTrader 4 e MetaTrader 5: robôs (EA), indicadores personalizados e painéis gráficos de negociação. Descreva a sua ideia e eu a transformo em código funcional e documentado.
| Portuguese English Русский 中文 Español Deutsch 日本語 한국어 Français Italiano Türkçe
Visualizações:
6
Avaliação:
(1)
Publicado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Quase todo método baseado em estrutura começa com a mesma pergunta: quais picos e vales realmente importam? Tudo o que vem a seguir — estrutura de mercado, BOS e CHoCH, blocos de ordens, níveis de liquidez — se baseia nessa única resposta; portanto, a definição que você escolher determina o que o restante da sua análise irá considerar.


Existem várias maneiras comuns de responder a essa pergunta. A mais conhecida é o padrão de 3 velas (o fractal): uma vela cuja alta está acima das duas vizinhas é uma alta de oscilação. É simétrica, fácil de calcular e é o que a maioria dos indicadores de oscilação utiliza. Outros ampliam a janela para 5 ou 7 velas, ou filtram os candidatos por um movimento mínimo em pontos ou ATR.

Este indicador usa uma definição diferente — a definição de pullback utilizada no Trading Hub 3.0. Em vez de perguntar se uma vela é mais alta que suas vizinhas, ele pergunta se o preço voltou e rejeitou essa vela. Uma alta só se torna um swing quando o mercado volta a negociar abaixo da mínima da vela que a formou. Nada é decidido pela forma; tudo é decidido pelo que o preço faz depois.


A diferença prática: um fractal descreve geometria, enquanto um pullback descreve um evento. Como um pullback é um evento, ele também indica quando a oscilação se tornou válida — e esse registro de tempo é o que torna possível uma implementação sem repintura.

Como a regra funciona

O detector nunca procura os dois lados ao mesmo tempo. Ele procura um lado de cada vez e mantém exatamente três informações:

Estado Significado
Direção qual lado está sendo procurado no momento — alto ou baixo
Extremo rastreado a máxima mais alta (ou a mínima mais baixa) observada até o momento no movimento atual
Nível de referência a extremidade oposta da vela que formou esse extremo

A referência é a parte importante. Quando uma vela estabelece uma nova alta máxima, essa mesma vela também fornece o nível que mais tarde a confirmará: sua própria baixa. O preço deve voltar a passar por essa baixa para que a alta seja válida.


Interpretação da figura:

  • A — uma fase se inicia. A máxima acompanhada e a mínima de referência provêm ambas de uma única vela.
  • B — cada nova alta substitui ambos os valores. A alta ainda é provisória; nada é traçado.
  • C — uma vela finalmente é negociada abaixo da mínima de referência. Esse é o recuo, e ele confirma a máxima rastreada como uma máxima de oscilação.
  • D — a vela de confirmação imediatamente inicia a busca por uma mínima, de forma espelhada: acompanhe a mínima mais baixa; a referência é sua máxima; uma quebra acima dela a confirma.

Como a confirmação de um lado sempre inverte a busca para o outro, as máximas e mínimas de oscilação se alternam automaticamente. Não há regra separada que imponha isso nem comparação com oscilações anteriores.

As regras, vela por vela

A cada vela fechada, o detector faz duas perguntas independentes: essa vela atingiu um novo extremo? E ela rompeu a referência? São possíveis quatro combinações por direção.


# Tendência atual Vela atual Ação 1 Ação 2
1 Buscando uma MÁXIMA Barra interna — sem nova alta, mínima de referência intacta nada nada
2 Procurando uma MÁXIMA Nova alta, mínima de referência intacta máxima rastreada = máxima desta vela mínima de referência = mínima desta vela
3 Procurando uma MÁXIMA Rompimento — sem nova alta, mas as negociações ocorrem abaixo da baixa de referência confirmar a máxima rastreada como uma máxima de oscilação mudar para MÍNIMO: mínimo rastreado = mínimo desta vela, máximo de referência = máximo desta vela
4 Procurando uma MÁXIMA Barra externa — nova alta e rompe a mínima de referência confirme a própria alta desta vela como uma alta de oscilação mudança para MÍNIMO: mínimo rastreado = mínimo desta vela, máximo de referência = máximo desta vela
5 Procurando por uma MÍNIMA Barra interna — sem nova mínima, máxima de referência intacta nada nada
6 Procurando por uma MÍNIMA Nova mínima, máxima de referência intacta mínima registrada = mínima desta vela máxima de referência = a máxima desta vela
7 Procurando por uma MÍNIMA Quebra — sem nova mínima, mas sendo negociada acima da máxima de referência confirme a mínima rastreada como uma mínima de oscilação mudar para MÁXIMO: máxima rastreada = máxima desta vela, mínima de referência = mínima desta vela
8 Procurando por uma MÍNIMA Barra externa — nova mínima e rompe a máxima de referência confirme a própria mínima desta vela como uma mínima de oscilação mudar para ALTA: alta rastreada = alta desta vela, baixa de referência = baixa desta vela

As linhas 1–4 e 5–8 são espelhos exatos, e é por isso que todo o mecanismo tem apenas algumas dezenas de linhas.

O caso raro: uma vela que rompe em ambas as direções

As linhas 4 e 8 merecem uma explicação à parte. Normalmente, uma vela ou estende a tendência ou rompe a referência. Uma barra externa pode fazer as duas coisas ao mesmo tempo — ela atinge uma nova alta e é negociada abaixo da mínima de referência na mesma vela.

Ambas as regras, então, reivindicam esse caso, e elas se contradizem. Tratá-la como uma extensão desconsidera uma quebra real; tratá-la como uma quebra confirmaria uma máxima que essa mesma vela já ultrapassou.


A solução é deixar que a vela seja a própria oscilação:

  1. Sua própria alta é confirmada como a alta da oscilação — não a alta anterior rastreada, que ela acabou de superar.
  2. A mesma vela, então, inicia a perna oposta: a mínima rastreada torna-se sua mínima e a de referência torna-se sua máxima.

Assim, uma única vela carrega tanto a alta da oscilação quanto o início da perna de baixa. No gráfico, isso aparece como um marcador acima e abaixo da mesma barra, com uma perna vertical entre elas — que é exatamente o que aconteceu dentro dessa vela.

This is also why the legs are drawn as trend-line objects rather than a DRAW_SECTION buffer. A section plot stores one value per bar and could not hold two points on the same candle.

Ela não é repintada

O extremo rastreado é provisório e nunca é desenhado. Uma oscilação é registrada no gráfico apenas na vela que a confirma e, uma vez registrada, nunca é movida, recolorida ou removida. Apenas velas fechadas são avaliadas; a vela em formação é totalmente ignorada.

A contrapartida é clara e vale a pena ser mencionada: o atraso na confirmação. A oscilação mais recente aparece somente após o rompimento que a valida. Se você deseja um marcador no instante em que uma nova alta é registrada, esta não é a ferramenta certa — esse marcador teria que se mover posteriormente, o que seria repintura.

Entradas

Detecção

Entrada Padrão O que faz
Comece procurando Procurando uma alta de oscilação Qual lado a primeira etapa procura. Isso afeta apenas as barras mais antigas do gráfico; após a primeira confirmação, a direção é determinada inteiramente pelas quebras. Não altere essa configuração, a menos que o primeiro swing em seu histórico pareça errado.
Romperdura confirmada por Pavilhão A opção “Wick” usa a máxima/mínima da vela — a regra literal do Trading Hub e a configuração mais sensível. A opção “Close” exige que a vela feche ultrapassando a referência, o que ignora os toques de uma única sombra e resulta em oscilações visivelmente menos frequentes, porém maiores.

Como escolher: comece com “Pavilhão”. Se você estiver trabalhando em M1–M15, ou em um símbolo com pavilhões longos e ruidosos, como ouro ou um CFD de índice, mude para “Fechamento” — isso remove a maioria das oscilações causadas por um único pico sem alterar a lógica em nenhum outro ponto. Um intervalo de tempo maior é outra maneira de obter uma estrutura mais ampla; a regra em si não possui configuração de sensibilidade ou período para ajuste.

Exibição

Entrada Padrão O que faz
Traça os marcadores de oscilação true Ativa ou desativa as setas. Os buffers permanecem preenchidos de qualquer maneira, portanto o iCustom ainda retorna cada oscilação.
Código da seta — oscilação alta / baixa 217 / 218 Códigos Wingdings. Alternativas comuns:234/233,241/242, 159 para pontos.
Distância da seta em relação à barra 10 Espaço em pixels entre a vela e sua seta. Aumente-o em gráficos densos.
Desenhe as pernas entre as oscilações true O ziguezague pontilhado que conecta oscilações consecutivas. Desative-o se você já estiver usando um ziguezague.
Cor / estilo / largura das pernas prata, pontilhada, 1 Aparência das linhas.

Desativar tanto os marcadores quanto as linhas resulta em uma instância puramente computacional — útil quando um EA lê os buffers e você não quer nada no gráfico.

Alertas

Entrada Padrão O que faz
Alerta pop-up em uma oscilação confirmada false Aparece uma janela pop-up no terminal quando uma oscilação é confirmada.
Notificação push ao ser confirmado um swing false Enviada para o ID da MetaQuotes definido em Ferramentas → Opções → Notificações.

Os alertas são acionados apenas em atualizações em tempo real, nunca enquanto o indicador carrega o histórico, e apenas uma vez por oscilação.

Utilização em um EA

Dois buffers, ambos preenchidos apenas em oscilações confirmadas (valor vazio é 0,0):

Buffer Conteúdo
0 preço de uma alta de oscilação confirmada
1 preço de uma baixa oscilatória confirmada
int h = iCustom(_Symbol, _Period, "SMC_Pullback");
double buf[];
CopyBuffer(h, 0, 0, 100, buf);   // máximas de oscilação

O mecanismo de detecção está em uma única classe independente, CPullbackDetector, sem dependências de gráficos ou buffers — ele recebe as matrizes de preços e relata os picos e vales confirmados, de modo que pode ser copiado diretamente para um EA, caso você prefira não passar pelo iCustom.

O que ele deliberadamente não faz

Este indicador se limita aos pontos de oscilação. Ele não identifica HH/HL/LH/LL, nem calcula BOS, CHoCH, IDM, blocos de ordens ou níveis de liquidez. Essas são etapas separadas que exigem, primeiro, um conjunto confiável de oscilações — que é exatamente o que este indicador fornece.


O projeto é hospedado no MQL5 Algo Forge. Você pode encontrar o código e as próximas atualizações no link abaixo.

O repositório está aqui: https://forge.mql5.io/SandroBegashvil/SMC-Pullback-CodeBase

Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/76451

SuperTrend Indicator SuperTrend Indicator

Um indicador SuperTrend personalizado, desenvolvido a partir dos princípios básicos, que combina uma faixa de volatilidade baseada no ATR com um mecanismo de catraca para produzir uma linha de tendência nítida e que não se repinta. O estado recursivo interno é gerenciado por meio de buffers de cálculo devidamente registrados, evitando os erros de perda de estado comuns em implementações de matrizes gerenciadas manualmente. Da série de artigos “Criação de indicadores personalizados para iniciantes”.

Fisher Transform Indicator Fisher Transform Indicator

Um oscilador de Transformada de Fisher desenvolvido a partir de princípios estatísticos fundamentais — normalizando o preço em um intervalo delimitado e, em seguida, aplicando uma transformada logarítmica para produzir sinais de reversão nítidos e bem definidos, em vez das mudanças graduais típicas dos osciladores convencionais. O estado recursivo interno é gerenciado por meio de buffers de cálculo adequados, garantindo um comportamento confiável e correto em todos os backtests. Da série de artigos “Criação de indicadores personalizados para iniciantes”.

PropFirm Equity Protector - Gerenciador de Risco Institucional (Código Aberto) PropFirm Equity Protector - Gerenciador de Risco Institucional (Código Aberto)

EA profissional para gestão de riscos em corretoras de negociação. Oferece monitoramento diário do patrimônio líquido, mitigação gradual em posições com prejuízo e limites de stop absolutos por meio de um painel gráfico com recurso de autocorreção.

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

O Indicador Acceleration/Deceleration (Aceleração/Desaceleração ou AC) mede a aceleração e a desaceleração da força motriz atual do mercado.