Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Ansichten:
11
Rating:
(3)
Veröffentlicht:
candel 2.mq5 (10.74 KB) ansehen
MQL5 Freelance 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.
BOX UND LINIE ZEICHNEN
```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

Moving Price Line Indicator MT5 Moving Price Line Indicator MT5

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

Creat Button Close BuySell On Chart Creat Button Close BuySell On Chart

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

CBitBuffer Class - Data Serialization in MQL5 CBitBuffer Class - Data Serialization in MQL5

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

Accelerator Oszillator (AC) Accelerator Oszillator (AC)

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