Boom Index Spike Pattern – Ein Leitfaden für MetaTrader 5 Trader

Mike 2025.07.21 19:06 90 0 0
Anhang

Bullishes Spike-Muster erkennen

  • 3-Kerzen-Muster:

    • 1. Kerze: Grün mit großem Körper (bullischer Spike).

    • 2. Kerze: Rot (Rücksetzer).

    • 3. Kerze: Grün mit großem Körper (bullischer Spike).

  • Wenn dieses Muster erscheint, wird eine Zone erstellt.

Erstellung der Zone

  • Ein blaues Rechteck wird aus dem Hoch/Tief der 3 Kerzen gezeichnet.

  • Eine limegrüne horizontale Eingangs-Linie wird zum Eröffnungspreis der mittleren (2.) Kerze gezeichnet.

  • Die Linie erstreckt sich weit in die Zukunft, bis der Preis zurückkommt.


EINGABEN ERKLÄRT

mq5
input color BoxColor = clrBlue;              // Farbe des 3-Kerzen-Muster-Box
input color EntryLineColor = clrLime;        // Farbe der Eingangs-Linie
input ENUM_LINE_STYLE EntryLineStyle = STYLE_SOLID; // Stil der Eingangs-Linie
input int BoxWidth = 2;                      // Breite des Boxrahmens
input int EntryLineWidth = 2;                // Breite der Eingangs-Linie
input int EntryLineLength = 200;             // Wie weit sich die Mitigationslinie erstreckt

HAUPTIDEE

Wir suchen nach einem 3-Kerzen bullischen Muster

1. Erste Kerze – starker bullischer (Spike)

2. Zweite Kerze – bearish Rücksetzer

3. Dritte Kerze – wieder starker bullischer Spike


Wenn dies erscheint, zeichnen wir:

- Eine Box um das Muster

- Eine horizontale Linie am Öffnungspreis der 2. Kerze (Einstiegspunkt)

Sobald der Preis zu dieser Linie zurückkehrt ("Mitigation"), kürzen wir die Linie und vermeiden das Neuzeichnen.


DATENSTRUKTUREN

struct PatternInfo {
  datetime time;   // Zeit des Musters
  double entry;    // Einstiegspreis (Öffnung der 2. Kerze)
  double high;     // Höchstes Hoch der 3 Kerzen
  double low;      // Tiefstes Tief der 3 Kerzen
  bool mitigated;  // Ist der Preis zurückgekehrt zum Einstieg?
};

CArrayObj activePatterns;
Wir verwenden eine struct `PatternInfo`, um jedes gültige Muster zu verfolgen und es in einem Array zu speichern. Dies hilft, wiederholte Verarbeitung zu vermeiden.

ON INIT-FUNKTION

int OnInit() {
  IndicatorSetInteger(INDICATOR_DIGITS, _Digits);
  ArrayInitialize(activePatterns, 0);
  return INIT_SUCCEEDED;
}
Wir setzen die Präzision des Indikators und bereiten unser Array vor.


MUSTERDETEKTION (BEI JEDEN TICK)

```mq5
for (int i = limit - 3; i >= 0; i--) {
```
Wir durchlaufen die Kerzen und suchen 3 Kerzen zurück.

```mq5
if (isBullish(i+2) && isBearish(i+1) && isBullish(i))
```
Wir überprüfen, ob die letzten 3 Kerzen dem Spike-Muster entsprechen: Grün-Rot-Grün.

```mq5
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];
```
Wir extrahieren das Hoch/Tief für die Box und den Einstiegspreis von der 2. (mittleren) Kerze.

```mq5
PatternInfo *pattern = new PatternInfo;
pattern.time = Time[i];
pattern.entry = entry;
pattern.high = high;
pattern.low = low;
pattern.mitigated = false;
```
Erstellen und fügen Sie dieses Muster unserer Liste hinzu.
BOX UND LINIE ZEICHNEN
```mq5
string boxName = "Box_" + IntegerToString(Time[i]);
ObjectCreate(0, boxName, OBJ_RECTANGLE, 0, Time[i+2], high, Time[i], low);
```
Zeichnen Sie das Rechteck (Box) aus dem 3-Kerzen-Muster.

```mq5
string lineName = "EntryLine_" + IntegerToString(Time[i]);
ObjectCreate(0, lineName, OBJ_TREND, 0, Time[i], entry, Time[i] + PeriodSeconds() * EntryLineLength, entry);
```
Zeichnen Sie die Eingangs-Linie ab dem Öffnungspreis der 2. Kerze nach vorne in der Zeit.

MITIGATION-CHECK (BEI JEDEN TICK)

Wir durchlaufen alle Muster:
```mq5
for (int p = 0; p < activePatterns.Total(); p++) {
  PatternInfo *pt = (PatternInfo*)activePatterns.At(p);
```
Wenn noch nicht mitigiert, überprüfen wir:
```mq5
if (!pt.mitigated && Low[0] <= pt.entry)
```
Wenn der aktuelle Preis das Einstiegniveau erreicht:
```mq5
pt.mitigated = true;
ObjectDelete("EntryLine_" + IntegerToString(pt.time));
```
Löschen Sie die ursprüngliche lange Linie.

```mq5
ObjectCreate(0, "MitigatedLine_" + IntegerToString(pt.time), OBJ_TREND, 0,
pt.time, pt.entry,
Time[0], pt.entry);
```
Erstellen Sie eine kurze Linie, die zeigt, wo die Mitigation stattgefunden hat.
HILFSFUNKTIONEN

### Überprüfen Sie Bullish/Bearish:
```mq5
bool isBullish(int i) {
  return Close[i] > Open[i];
}

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

Dieser Indikator ist einfach, aber leistungsstark:

  • Er erkennt echtes Spike-Verhalten im Boom
  • Visualisiert clevere Geld-Einstiege
  • Er erkennt automatisch die Mitigation

Jetzt können Sie ihn live auf Boom 500 oder Boom 1000 testen.


Vielen Dank! Kommentieren Sie, wenn Sie Fragen oder Anmerkungen haben.


Liste
Kommentar 0