und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
- Ansichten:
- 11
- Rating:
- Veröffentlicht:
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Bullish Spike-Muster erkennen
-
3-Balken-Muster:
-
1. Kerze: Grün mit großem Körper (bullischer Spike).
-
2. Kerze: Rot (Pullback).
-
3. Kerze: Grün mit großem Körper (bullischer Spike).
-
-
Wenn dieses Muster auftritt, wird eine Zone gebildet.
Bildung der Zone
-
Ein blaues Rechteck wird aus dem Hoch/Tief-Bereich der 3 Kerzen gezeichnet.
-
Eine lindgrüne horizontale Einstiegslinie wird beim Eröffnungskurs der mittleren (2.) Kerze gezogen.
-
Die Linie erstreckt sich weit in die Zukunft, bis der Preis zurückkommt.
EINGABEN ERKLÄRT
mq5 input color BoxColor = clrBlue; // Farbe der 3-Kerzen-Musterbox input color EntryLineColor = clrLime; // Farbe der Eingabezeile input ENUM_LINE_STYLE EntryLineStyle = STYLE_SOLID; // Stil der Eingabezeile input int BoxWidth = 2; // Breite des Rahmens input int EntryLineWidth = 2; // Breite der Eingabezeile input int EntryLineLength = 200; // Wie weit die Milderungslinie reicht ``` These inputs let you fully control the style of the box and entry line.
KERNIDEE
Wir suchen nach einem bullischen 3-Kerzen-Muster
1. Erste Kerze - stark zinsbullisch (Spike)
2. Zweite Kerze - bärischer Rücksetzer
3. Dritte Kerze- wieder starker bullischer Spike
Wenn dies erscheint, zeichnen wir:
- Eine Box um das Muster
- Eine horizontale Linie bei der Eröffnung der 2. Kerze (Einstiegspunkt)
Sobald der Kurs zu dieser Linie zurückkehrt ("Abschwächung"), schneiden wir die Linie ab und vermeiden es, sie neu zu zeichnen.
DATENSTRUKTUREN
struct PatternInfo { datetime time; // Zeit des Musters double entry; // Einstiegskurs (Eröffnung der 2. Kerze) double high; // Höchster Wert der 3 Kerzen double low; // Tiefstwert der 3 Kerzen bool mitigated; // Ist der Preis auf das Einstiegsniveau zurückgekehrt? }; CArrayObj activePatterns; ``` We use a struct `PatternInfo` to track each valid pattern and store it in an array. This helps avoid repeated processing.
ON-INIT-FUNKTION
int OnInit() { IndicatorSetInteger(INDICATOR_DIGITS, _Digits); ArrayInitialize(activePatterns, 0); return INIT_SUCCEEDED; } ``` We set the indicator precision and prepare our array.
MUSTERERKENNUNG (BEI JEDEM TICK)
```mq5 for (int i = limit - 3; i >= 0; i--) { ``` We loop through candles and look 3 bars back. ```mq5 if (isBullish(i+2) && isBearish(i+1) && isBullish(i)) ``` We check if the last 3 candles fit the spike pattern: Green-Red-Green. ```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]; ``` We extract high/low for box and the entry level from the 2 nd (middle) candle. ```mq5 PatternInfo *pattern = new PatternInfo; pattern.time = Time[i]; pattern.entry = entry; pattern.high = high; pattern.low = low; pattern.mitigated = false; ``` Create and add this pattern to our list.
```mq5 string boxName = "Box_" + IntegerToString(Time[i]); ObjectCreate(0, boxName, OBJ_RECTANGLE, 0, Time[i+2], high, Time[i], low); ``` Draw the rectangle (box) from the 3-candle pattern. ```mq5 string lineName = "EntryLine_" + IntegerToString(Time[i]); ObjectCreate(0, lineName, OBJ_TREND, 0, Time[i], entry, Time[i] + PeriodSeconds() * EntryLineLength, entry); ``` Draw the entry line from the 2 nd candle’s open forward in time.
MITIGATION CHECK (BEI JEDEM TICK)
Loop through all patterns:
```mq5
for (int p = 0; p < activePatterns.Total(); p++) {
PatternInfo *pt = (PatternInfo*)activePatterns.At(p);
```
If not already mitigated, check:
```mq5
if (!pt.mitigated && Low[0] <= pt.entry)
```
If current price hits the entry level:
```mq5
pt.mitigated = true;
ObjectDelete("EntryLine_" + IntegerToString(pt.time));
```
Delete original long line.
```mq5
ObjectCreate(0, "MitigatedLine_" + IntegerToString(pt.time), OBJ_TREND, 0,
pt.time, pt.entry,
Time[0], pt.entry);
```
Create a short line showing where mitigation happened.
HELPER FUNCTIONS
### Check 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:
- Erkennt echtes Spike-Verhalten im Boom
- Visualisiert Smart-Money-Einträge
- Automatische Erkennung von Mitigation
Sie können ihn jetzt live auf Boom 500 oder Boom 1000 testen.
Dank Kommentar, wenn Sie fragen oder teilen möchten.
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/61749

Mit diesem einfachen Indikator können Sie leicht herausfinden, wann der Kurs einen bestimmten Zeitpunkt auf einer beliebigen Kerze oder einem Zeitrahmen erreicht.

MQL5-Skript für MetaTrader 5, das zwei Schaltflächen zum Schließen aller Kauf- oder Verkaufspositionen für das aktuelle Symbol hinzufügt.

Eine Klasse zum Lesen und Schreiben einzelner Bits oder Bitfolgen in und aus einem Puffer.

Der Acceleration/Deceleration Indikator (AC) misst die Beschleunigung und Verlangsamung des aktuellen Marktimpulses, der Kraft der Kursbewegung.