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.
```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.
Kommentar 0