Padrão de Picos no Boom Index: Indicador para MetaTrader 5

Mike 2025.07.21 19:06 19 0 0
Anexo

Detecção do Padrão de Picos Altistas

  • Padrão de 3 velas:

    • 1ª vela: Verde com corpo grande (pico altista).

    • 2ª vela: Vermelha (pullback).

    • 3ª vela: Verde com corpo grande (pico altista).

  • Quando esse padrão aparece, uma zona é criada.

Criação da Zona

  • Um retângulo azul é desenhado a partir da faixa alta/baixa das 3 velas.

  • Uma linha horizontal verde-lima é desenhada no preço de abertura da vela do meio (2ª vela).

  • A linha se estende para o futuro até que o preço retorne.


EXPLICAÇÃO DOS PARÂMETROS

mq5
input color BoxColor = clrBlue; // Cor do retângulo do padrão de 3 velas
input color EntryLineColor = clrLime; // Cor da linha de entrada
input ENUM_LINE_STYLE EntryLineStyle = STYLE_SOLID; // Estilo da linha de entrada
input int BoxWidth = 2; // Largura da borda do retângulo
input int EntryLineWidth = 2; // Largura da linha de entrada
input int EntryLineLength = 200; // Extensão da linha de mitigação

IDEIA CENTRAL

Buscamos um padrão de 3 velas altistas:

1. Primeira vela – forte altista (pico)

2. Segunda vela – retração baixista

3. Terceira vela – forte pico altista novamente


Quando isso aparece, desenhamos:

- Um retângulo ao redor do padrão

- Uma linha horizontal no preço de abertura da 2ª vela (ponto de entrada)

Uma vez que o preço retorna a essa linha ("mitigação"), cortamos a linha e evitamos redesenhá-la.

DADOS ESTRUTURADOS

struct PatternInfo {
 datetime time; // Hora do padrão
 double entry; // Preço de entrada (abertura da 2ª vela)
 double high; // Maior alta das 3 velas
 double low; // Menor baixa das 3 velas
 bool mitigated; // O preço retornou ao nível de entrada?
};

CArrayObj activePatterns;

Usamos uma struct `PatternInfo` para rastrear cada padrão válido e armazená-lo em um array. Isso ajuda a evitar processamento repetido.

FUNÇÃO DE INICIALIZAÇÃO

int OnInit() {
 IndicatorSetInteger(INDICATOR_DIGITS, _Digits);
 ArrayInitialize(activePatterns, 0);
 return INIT_SUCCEEDED;
}

Definimos a precisão do indicador e preparamos nosso array.

DETECÇÃO DO PADRÃO (A CADA TICK)

for (int i = limit - 3; i >= 0; i--) {

Fazemos um loop pelas velas e olhamos 3 barras para trás.

if (isBullish(i+2) && isBearish(i+1) && isBullish(i))

Verificamos se as últimas 3 velas se encaixam no padrão de pico: Verde-Vermelha-Verde.

double high = MathMax(MathMax(High[i], High[i+1]), High[i+2]);
double low = MathMin(MathMin(Low[i], Low[i+1]), Low[i+2]);
double entry = Open[i+1];

Extraímos a alta/baixa para o retângulo e o nível de entrada da 2ª (vela do meio).

PatternInfo *pattern = new PatternInfo;
pattern.time = Time[i];
pattern.entry = entry;
pattern.high = high;
pattern.low = low;
pattern.mitigated = false;

Criamos e adicionamos esse padrão à nossa lista.

DESSENHO DO RETÂNGULO E LINHA

string boxName = "Box_" + IntegerToString(Time[i]);
ObjectCreate(0, boxName, OBJ_RECTANGLE, 0, Time[i+2], high, Time[i], low);

Desenhamos o retângulo (caixa) do padrão de 3 velas.

string lineName = "EntryLine_" + IntegerToString(Time[i]);
ObjectCreate(0, lineName, OBJ_TREND, 0, Time[i], entry, Time[i] + PeriodSeconds() * EntryLineLength, entry);

Desenhamos a linha de entrada a partir da abertura da 2ª vela para frente no tempo.

VERIFICAÇÃO DE MITIGAÇÃO (A CADA TICK)

for (int p = 0; p < activePatterns.Total(); p++) {
 PatternInfo *pt = (PatternInfo*)activePatterns.At(p);

Se ainda não mitigado, verificamos:

if (!pt.mitigated && Low[0] <= pt.entry)

Se o preço atual atinge o nível de entrada:

pt.mitigated = true;
ObjectDelete("EntryLine_" + IntegerToString(pt.time));

Deletamos a linha original.

ObjectCreate(0, "MitigatedLine_" + IntegerToString(pt.time), OBJ_TREND, 0,
pt.time, pt.entry,
Time[0], pt.entry);

Criamos uma linha curta mostrando onde a mitigação ocorreu.

FUNÇÕES AUXILIARES

bool isBullish(int i) {
 return Close[i] > Open[i];
}

bool isBearish(int i) {
 return Close[i] < Open[i];
}

Esse indicador é simples, mas poderoso:

  • Detecta comportamentos reais de pico no Boom
  • Visualiza entradas de dinheiro inteligente
  • Detecta automaticamente a mitigação

Agora você pode testá-lo ao vivo no Boom 500 ou Boom 1000.


Comente se você quiser perguntar ou compartilhar.

Lista
Comentário 0