English 日本語
preview
Entwicklung des Price Action Analysis Toolkit (Teil 24): Analyse-Tool zur Quantifizierung von Preisaktionen

Entwicklung des Price Action Analysis Toolkit (Teil 24): Analyse-Tool zur Quantifizierung von Preisaktionen

MetaTrader 5Handelssysteme |
145 0
Christian Benjamin
Christian Benjamin

Inhalt



Einführung

Die meisten Price-Action-Händler verlassen sich auf bestimmte Kerzenformationen wie Pin-Bars und die Kerzenformationen von Doji, Engulfing und Marubozu. Diese Kerzen werden verwendet, um Stimmungsumschwünge am Markt zu erkennen und potenzielle Umkehrungen oder Fortsetzungsbewegungen auszumachen. Die manuelle Suche nach diesen Signalen in Dutzenden von Charts kann zeitaufwändig und anfällig für Versehen sein.

Wir haben den Price Action Quantification Analysis EA für MetaTrader 5 entwickelt, um diese Herausforderung zu meistern. Dieser Expert Advisor:

  1. Durchsucht automatisch eine konfigurierbare Anzahl der letzten Bars nach vier weithin anerkannten Kursmustern.
  2. Markiert jedes erkannte Muster auf dem Chart mit Pfeilen und Kennzeichnungen und bietet so klare visuelle Anhaltspunkte.
  3. Gibt eine Warnung aus und zeichnet die Pip-Bewegung des nachfolgenden Balkens auf, damit Sie die Signalstärke besser einschätzen können.
  4. Bietet integrierte Backtest-Statistiken, indem jedes Muster als „Handel“ behandelt und eine Gesamtgewinnrate berechnet wird.

In den folgenden Abschnitten gehen wir auf die Struktur des EAs ein, erläutern seine anpassbaren Einstellungen und zeigen, wie seine Leistungskennzahlen Ihren Preis-Aktions-Handelsansatz schärfen können. Beginnen wir damit, die spezifischen Kerzenmuster zu erforschen, auf die dieser EA achtet, indem wir die Anatomie jeder Kerze und die Berechnungen, die zu ihrer Erkennung verwendet werden, untersuchen.

Kerzenmuster

  • Pin-Bars

Ein Pin-Bar ist eine einzelne Kerze mit einem kleinen Körper und einem langen Schweif, Schatten oder Docht. Wenn Sie einen solchen sehen, bedeutet dies, dass der Kurs versucht hat, sich weit in eine Richtung zu bewegen, aber zurückgedrängt wurde.

Bei einer Abwärts-Pin-Bar zeigt der lange obere Schatten, dass die Käufer die Preise nicht halten konnten und die Verkäufer das Ruder übernommen haben.

Abb. 1. Abwärts-Pin-Bar

Eine Aufwärts-Pin-Bar hat einen langen unteren Schatten, was darauf hindeutet, dass die Käufer einspringen und die Flut nach oben drehen.

Abb. 2. Aufwärts-Pin-Bar

Auch die Farbe der Kerze kann dem Signal mehr Gewicht verleihen. Bei einem Abwärts-Pin-Bar ist ein roter (oder schwarzer) Körper überzeugender, da er unterhalb der Eröffnung schließt und die Dominanz der Verkäufer anzeigt. Bei einem Aufwärts-Pin-Bar verstärkt ein grüner (oder weißer) Körper das Signal, indem er über der Eröffnung schließt, was einen Kaufdruck widerspiegelt. Wichtiger als die Farbe allein sind jedoch die Form und die Länge des Dochtes. Um dem Signal zu vertrauen, achten Sie auf einen Docht, der mindestens zwei- oder dreimal so groß ist wie der Körper, achten Sie auf Volumenspitzen während der Ablehnung und prüfen Sie, ob der Pin-Bar in der Nähe bekannter Unterstützungs- oder Widerstandsniveaus erscheint. Diese zusätzlichen Schritte helfen Ihnen, echte Umkehrungen anstelle von gewöhnlichen Dochten auszuwählen.

Logische Schritte

  • Berechnung von candleBody, topShadow, bottomShadow.
  • Erfordert candleBody > minBodyPoints * _Point.

Abwärts-Pin-Bar:

topShadow >= wickToBodyRatio * candleBody

bottomShadow < smallWickCap * candleBody

Aufwärts-Pin-Bar:

bottomShadow >=  wickToBodyRatio * candleBody

topShadow < smallWickCap * candleBody

// 1. Calculate parts
double candleBody   = MathAbs(closePrice - openPrice);
double topShadow    = highPrice - MathMax(openPrice, closePrice);
double bottomShadow = MathMin(openPrice, closePrice) - lowPrice;

// 2. Minimum body check
if(candleBody > minBodyPoints * _Point)
{
   // Bearish pin bar
   if(topShadow >= wickToBodyRatio * candleBody
      && bottomShadow < smallWickCap * candleBody)
      Print("Bearish Pin Bar detected");

   // Bullish pin bar
   else if(bottomShadow >= wickToBodyRatio * candleBody
           && topShadow < smallWickCap * candleBody)
      Print("Bullish Pin Bar detected");
}

  • Doji

Ein Doji erscheint, wenn der Eröffnungs- und der Schlusskurs einer Kerze praktisch identisch sind. Er signalisiert die Unentschlossenheit des Marktes und orientiert sich an der vorangegangenen Entwicklung. Durch Variationen der oberen und unteren Dochtlängen entstehen Formationen, die an ein Pluszeichen, ein Kreuz oder ein umgekehrtes Kreuz erinnern.

Abb. 3. Doji

Logische Schritte

  1. Berechnung von candleBody, fullRange, topShadow, bottomShadow.
  2. Erfordert candleBody ≤ maxDojiRatio * fullRange.
  3. Erfordert topShadow > candleBody and bottomShadow > candleBody.
// 1. Calculate body and range
double candleBody   = MathAbs(closePrice - openPrice);
double fullRange    = highPrice - lowPrice;
double topShadow    = highPrice - MathMax(openPrice, closePrice);
double bottomShadow = MathMin(openPrice, closePrice) - lowPrice;

// 2. Tiny body test
if(candleBody <= fullRange * maxDojiRatio)
{
   // 3. Both shadows must extend beyond the body
   if(topShadow > candleBody && bottomShadow > candleBody)
      Print("Doji detected");
}
  • Engulfing-Kerzenmuster

Es gibt zwei Arten von Engulfing-Kerzen: Aufwärts-Engulfing und Abwärts-Engulfing.

Aufwärts-Engulfing

Dieses Zwei-Kerzen-Umkehrmuster erscheint, wenn ein Abwärtstrend oder eine Konsolidierung endet. Auf eine kleinere Abwärtskerze folgt unmittelbar eine größere Aufwärtskerze, die den vorherigen Körper vollständig überdeckt. Die Größe der zweiten Kerze zeigt, dass die Käufer die Verkäufer überwältigen, und markiert oft den Beginn einer starken Aufwärtsbewegung.

Abb. 4. Aufwärts-Engulfing

Abwärts-Engulfing

Dies ist der umgekehrte Fall. Auf eine kleinere Aufwärtskerze folgt eine größere Abwärtskerze, die den vorherigen Körper vollständig überdeckt. Das Muster deutet darauf hin, dass die Verkäufer die Kontrolle übernommen haben und kann den Beginn einer starken Abwärtsbewegung signalisieren.

Abwärts-Engulfing

Abb. 5. Abwärts-Engulfing

Logische Schritte

Berechnung von prevBody = |prevClose – prevOpen|, currBody = |close – open|.

Erfordert: currBody > prevBody.

Aufwärts-Engulfing:

  • prevClose < prevOpen
  • openPriceprevClose
  • closePriceprevOpen

Abwärts-Engulfing:

  • prevClose > prevOpen
  • openPrice ≥ prevClose
  • closePrice ≤ prevOpen
// 1. Compute body sizes
double prevBody = MathAbs(prevClose - prevOpen);
double currBody = MathAbs(closePrice - openPrice);

// 2. Must be larger than previous
if(currBody > prevBody)
{
   // Bullish engulfing
   if(prevClose < prevOpen
      && openPrice <= prevClose
      && closePrice >= prevOpen)
      Print("Bullish Engulfing detected");

   // Bearish engulfing
   else if(prevClose > prevOpen
           && openPrice >= prevClose
           && closePrice <= prevOpen)
      Print("Bearish Engulfing detected");
}

  • Marubozu-Kerze


Abb. 6. Marubozu

Eine Marubozu-Kerze zeichnet sich durch ihren langen Körper und wenig bis gar keinen Docht aus. Die Eröffnungs- und Schlusskurse umspannen fast die gesamte Spanne und signalisieren eine entscheidende Marktbewegung. Es gibt drei Marubozu-Varianten, jeweils mit einer Aufwärts- und einer Abwärts-Version:

Full Marubozu

Aufwärts: Eröffnet am Tiefpunkt, schließt am Hoch. Käufer bestimmen den Preis von Anfang bis Ende.

Abwärts: Öffnet beim Hoch und schließt beim Tief. Während der gesamten Kerze dominieren die Verkäufer.

Open Marubozu

Aufwärts: Am Tief öffnen, knapp unter dem Hoch schließen (ein kleiner oberer Docht). Die Käufer übernehmen sofort die Kontrolle.

Abwärts: Am Hoch öffnen, knapp über dem Tief schließen (ein kleiner unterer Docht). Die Verkäufer übernehmen sofort die Kontrolle.

Close Marubozu

Aufwärts: Schlusskurs am Hoch, Eröffnung leicht über dem Tief (kleiner Docht). Bis zum Handelsschluss baut sich Kaufdruck auf.

Abwärts: Schlusskurs am Tief, Eröffnungskurs leicht unter dem Hoch (kleiner oberer Docht). Der Verkaufsdruck nimmt bis zum Handelsschluss zu.

Logische Schritte

  • Berechnung von candleBody, fullRange, topShadow, bottomShadow.
  • Erfordert candleBody ≥ marubozuRatio * fullRange.
  • Erfordert topShadow ≤ (1 – marubozuRatio) * fullRange and bottomShadow ≤ (1 – marubozuRatio) * fullRange.
  • Ist der Schlusskurs > dem Eröffnungskurs, handelt es sich um eine Hausse, andernfalls um eine Baisse.

// 1. Calculate parts
double candleBody   = MathAbs(closePrice - openPrice);
double fullRange    = highPrice - lowPrice;
double topShadow    = highPrice - MathMax(openPrice, closePrice);
double bottomShadow = MathMin(openPrice, closePrice) - lowPrice;

// 2. Body covers most of the range
if(candleBody >= marubozuRatio * fullRange)
{
   // 3. Shadows must be small
   double maxWick = (1 - marubozuRatio) * fullRange;
   if(topShadow <= maxWick && bottomShadow <= maxWick)
   {
      // 4. Bullish or bearish
      if(closePrice > openPrice)
         Print("Bullish Marubozu detected");
      else
         Print("Bearish Marubozu detected");
   }
}



MQL5 EA Aufschlüsselung

Das obige Chart veranschaulicht, wie der EA nach der Anwendung auf den MetaTrader 5 Chart funktioniert. Nachfolgend haben wir die Ergebnisse tabellarisch dargestellt - jeder Wert steht für eine prozentuale Veränderung. Bei der Entwicklung dieses Expert Advisors war es unser primäres Ziel, die Erkennung wichtiger Kerzenmuster zu automatisieren, auf die sich Händler bei ihren Handelsentscheidungen häufig verlassen, wie z. B. Pin-Bars, Doji, Engulfing und Marubozu. Wir wollten, dass der EA die jüngsten Kursbewegungen objektiv analysiert, diese Muster genau identifiziert und klare visuelle Hinweise auf dem Chart liefert, zusammen mit statistischem Feedback über die Effektivität des Musters.

Um dies zu erreichen, haben wir zunächst Eingabeparameter definiert, die eine flexible Analyse ermöglichen. Dazu gehört die Anzahl der Balken, auf die zurückgeblickt werden soll (InpLookbackBars) die Mindestkörpergröße in Punkten (InpMinBodySizePts) um unbedeutende Kerzen herauszufiltern, und das Verhältnis von Docht-zu-Körper (InpWickBodyRatio) für die Pin-Bar-Erkennung. Wir haben auch einen Parameter für die ATR-Periode aufgenommen, um die Marktvolatilität zu messen, die die Regeln der Mustererkennung beeinflussen kann.

// Input parameters for customization
input int    InpLookbackBars   = 200;   // Bars to scan
input int    InpMinBodySizePts = 10;    // Min body size (points)
input double InpWickBodyRatio  = 2.0;   // Min wick-to-body ratio
input int    InpATRPeriod      = 14;    // ATR period

In der Initialisierungsphase (OnInit) werden Arrays eingerichtet, in denen die berechneten Daten für jeden Balken gespeichert werden, z. B. Körpergröße, oberer und unterer Docht, Gesamtbereich und ATR-Werte. Wir haben dafür gesorgt, dass diese Arrays serienbasiert sind, damit wir die letzten Balken effizient verarbeiten können. Zusätzlich haben wir einen kleinen Puffer vorbereitet, um die letzten Signale zu speichern, was bei der späteren Analyse der Erfolgsraten der Muster hilfreich ist.

int OnInit()
  {
   ArraySetAsSeries(Body,true);
   ArraySetAsSeries(UpperWick,true);
   ArraySetAsSeries(LowerWick,true);
   ArraySetAsSeries(TotalRange,true);
   ArraySetAsSeries(ATR,true);
   ArrayResize(Body, InpLookbackBars+2);
   ArrayResize(UpperWick, InpLookbackBars+2);
   ArrayResize(LowerWick, InpLookbackBars+2);
   ArrayResize(TotalRange, InpLookbackBars+2);
   ArrayResize(ATR, InpLookbackBars+2);

   for(int i=0;i<5;i++)
      g_history[i]="";

   return(INIT_SUCCEEDED);
  }
Die Kernlogik befindet sich in der Funktion OnTick, die bei jedem neuen Markttick ausgeführt wird. Um unnötige Berechnungen zu vermeiden, haben wir eine Prüfung hinzugefügt, um nur einmal pro neuem Balken zu verarbeiten, indem wir Zeitstempel vergleichen. Wenn ein neuer Balken entdeckt wird, rufen wir AnalyzeAndDraw auf, das die Hauptanalyse durchführt.
void OnTick()
  {
   static datetime lastTime=0;
   datetime current = iTime(_Symbol, _Period, 0);
   if(current == lastTime)
      return; // Only process once per new bar
   lastTime = current;
   AnalyzeAndDraw();
  }

Unter AnalysierenUndZeichnen werden zunächst alle vorherigen Zeichnungen gelöscht, um das Chart übersichtlich zu halten. Anschließend werden die letzten Balken in einer Schleife durchlaufen, um die wichtigsten Kerzen-Kennzahlen zu berechnen: die Körpergröße (absolute Differenz zwischen Eröffnungs- und Schlusskurs), der obere Docht (Hoch minus Maximum von Eröffnungs- und Schlusskurs), der untere Docht (Minimum von Eröffnungs- und Schlusskurs minus Tiefstkurs) und die Gesamtspanne (Hoch minus Tiefstkurs). Wir kopieren auch ATR-Werte, um die Volatilität in die Mustererkennung einzubeziehen.

void AnalyzeAndDraw()
  {
   int bars = MathMin(InpLookbackBars, (int)SeriesInfoInteger(_Symbol,_Period,SERIES_BARS_COUNT));

   ObjectsDeleteAll(0,0,OBJ_ARROW);
   ObjectsDeleteAll(0,0,OBJ_LABEL);

   for(int i=0; i<bars; i++)
     {
      double op = iOpen(_Symbol,_Period,i);
      double cl = iClose(_Symbol,_Period,i);
      double hi = iHigh(_Symbol,_Period,i);
      double lo = iLow(_Symbol,_Period,i);

      // Calculate candlestick components
      Body[i]       = MathAbs(cl-op);
      UpperWick[i]  = hi - MathMax(op,cl);
      LowerWick[i]  = MathMin(op,cl) - lo;
      TotalRange[i] = hi - lo;
     }

   // Copy ATR buffer
   if(CopyBuffer(iATR(_Symbol,_Period,InpATRPeriod),0,0,bars,ATR)<=0)
      return; // Exit if ATR data not available

Als nächstes wenden wir unsere Regeln zur Mustererkennung an. Um beispielsweise einen Pin-Bar zu identifizieren, prüfen wir, ob die Kerze einen kleinen Körper und einen langen Docht hat, wobei das Verhältnis Docht zu Körper unseren Schwellenwert überschreitet.

  • Abwärts-Pin-Bar: langer oberer Docht >= ratio × body, kleiner unterer Docht
  • Aufwärts-Pin-Bar: langer unterer Docht >= ratio × body, kleiner oberer Docht

Wir filtern zunächst kleine Körper (Body > minPts) heraus. Dann erzwingen wir, dass ein Docht mindestens das InpWickBodyRatio-Fache des Körpers beträgt und der andere Docht unter 50% des Körpers bleibt.

// assume Body[i], UpperWick[i], LowerWick[i] already computed
if(InpShowPinBar && Body[i] > InpMinBodySizePts*_Point)
{
   // Bearish: towering upper wick, stubby lower wick
   if( UpperWick[i] > Body[i]*InpWickBodyRatio
       && LowerWick[i] < Body[i]*0.5 )
      type = "Bearish Pin Bar";

   // Bullish: towering lower wick, stubby upper wick
   else if( LowerWick[i] > Body[i]*InpWickBodyRatio
            && UpperWick[i] < Body[i]*0.5 )
      type = "Bullish Pin Bar";
}

Für einen Doji suchen wir nach Kerzen mit minimalen Körpern im Verhältnis zu einem punktbasierten Schwellenwert und mit Dochten, die eine potenzielle Unentschlossenheit anzeigen.

  • Körper <= DojiBodyRatio × totalRange
  • Beide Dochte > Körper (um zu bestätigen, dass es Schatten gibt)

Wir begrenzen den Körper auf, sagen wir, 10 % des vollen Bereichs (InpDojiBodyRatio). Dadurch, dass jeder Docht den Körper überragen muss, werden „Kreisel“ herausgefiltert, die kaum Schatten haben.

// TotalRange[i] = high – low
if(InpShowDoji
   && Body[i] <= TotalRange[i] * InpDojiBodyRatio    // body tiny vs full range
   && UpperWick[i] > Body[i]                         // upper shadow present
   && LowerWick[i] > Body[i])                        // lower shadow present
   type = "Doji";

Das Muster Engulfing beinhaltet den Vergleich der aktuellen Kerze mit der vorherigen Kerze, wobei geprüft wird, ob die Eröffnungs- und Schlussphase der vorherigen Kerze auf entgegengesetzten Seiten liegen und ob die aktuelle Kerze die vorherige vollständig verschlingt.

  • Aufwärts-Engulfing: vorheriger Balken war ein Abwärtsbalken, aktuelle Eröffnung ≤ vorheriger Schluss, aktueller Schluss ≥ vorherige Eröffnung und currBody > prevBody
  • Abwärts-Engulfing: vorheriger Balken war ein Aufwärtsbalken, aktuelle Eröffnung ≥ vorheriger Schluss, aktueller Schluss ≤ vorherige Eröffnung und currBody > prevBody

double po = iOpen(_Symbol,_Period,i+1),
       pc = iClose(_Symbol,_Period,i+1);
double prevBody = MathAbs(pc - po),
       currBody = Body[i];

if(InpShowEngulfing && currBody > prevBody)
{
   // Bullish: current body engulfs prior’s
   if(pc < po && op <= pc && cl >= po)
      type = "Bullish Engulfing";
   // Bearish: current body engulfs prior’s
   else if(pc > po && op >= pc && cl <= po)
      type = "Bearish Engulfing";
}

Für den Marubozu prüfen wir, ob der Körper den größten Teil des gesamten Bereichs abdeckt, was auf eine starke Dynamik hinweist.

  • Körper >= MarubozuBodyRatio × totalRange (z. B. >= 90%)
  • Beide Dochte <= (1 - MarubozuBodyRatio) × totalRange

if(InpShowMarubozu
   && Body[i] >= TotalRange[i] * InpMarubozuBodyRatio
   && UpperWick[i] <= TotalRange[i] * (1 - InpMarubozuBodyRatio)
   && LowerWick[i] <= TotalRange[i] * (1 - InpMarubozuBodyRatio))
{
   type = (cl > op) ? "Bullish Marubozu" : "Bearish Marubozu";
}

Jedes Mal, wenn ein Muster gefunden wird, werden die Zähler für die Gesamtsignale und die Gewinne erhöht. Wir definieren „Gewinne“ danach, ob sich die nachfolgende Kerze in die erwartete Richtung bewegt, was ein gewisses Maß an Zuverlässigkeit des Musters bietet.

if(type!="")
{
    lastIdx = i;
    lastCl = cl;
    lastIsBuy = (StringFind(type,"Bullish")>=0);
    latestSignal = type;

    g_totalSignals++;
    double nextC = iClose(_Symbol,_Period,i-1);
    if(lastIsBuy && nextC>cl)
        g_totalWins++;
    if(!lastIsBuy && nextC<cl)
        g_totalWins++;

    DrawPattern(i, type, lastIsBuy);
    break;
}

Um diese Signale visuell zugänglich zu machen, zeichnen wir auf dem Chart Pfeile, die nach oben oder unten zeigen, zusammen mit Beschriftungen, die den Mustertyp angeben, unter Verwendung der Funktion DrawPattern. Wir erzeugen auch Warnmeldungen, die uns sofort benachrichtigen, wenn ein Muster auftaucht.

void DrawPattern(int idx, const string type, bool isBuy)
  {
   datetime t = iTime(_Symbol,_Period,idx);
   double y = iHigh(_Symbol,_Period,idx) + 15*_Point;
   string an = StringFormat("PAQ_%s_%d",type,idx);
   ObjectCreate(0,an,OBJ_ARROW,0,t,y);
   ObjectSetInteger(0,an,OBJPROP_ARROWCODE,isBuy?233:234);
   ObjectSetInteger(0,an,OBJPROP_COLOR,isBuy?clrLime:clrRed);
   string lbl = an+"_lbl";
   ObjectCreate(0,lbl,OBJ_LABEL,0,t,y-25*_Point);
   ObjectSetString(0,lbl,OBJPROP_TEXT,type);
   ObjectSetInteger(0,lbl,OBJPROP_COLOR,isBuy?clrLime:clrRed);
  }
Bei der Entwicklung haben wir darauf geachtet, dass der EA flexibel und informativ ist. Daher haben wir einen Puffer für historische Muster eingefügt, um die jüngsten Signale zu speichern, und am Ende des Backtests oder wenn wir den EA entfernen, drucken wir Leistungsstatistiken wie Gesamtsignale, Gewinne und Gewinnrate aus. Dies hilft uns zu beurteilen, wie effektiv unsere Logik zur Mustererkennung im Laufe der Zeit ist.
void OnDeinit(const int reason)
  {
   double rate = g_totalSignals>0 ? 100.0*g_totalWins/g_totalSignals : 0.0;
   PrintFormat("[PAQ] Backtest completed: Signals=%I64d Wins=%I64d WinRate=%.1f%%",
               g_totalSignals, g_totalWins, rate);
  }

Zusammenfassend lässt sich sagen, dass dieser EA durch die Integration einer Logik zur Erkennung von Kerzenmustern mit visuellen Indikatoren und Performance-Tracking-Funktionen entwickelt wurde. Unser Ziel war es, ein automatisiertes System zu entwickeln, das die oft zeitaufwändige Identifizierung von Mustern vereinfacht und gleichzeitig klare visuelle Signale und Leistungsstatistiken bietet, um fundierte Handelsentscheidungen zu unterstützen.


Ergebnisse

Schauen wir uns an, wie unser EA sowohl in Echtzeit als auch bei Backtests abgeschnitten hat. Erstens sehen wir im Chart unten das Muster, das vom EA im Live-Markt erkannt wurde, nämlich das Abwärts-Engulfing. Wir können deutlich erkennen, dass es sich um eine echte Kerze handelt, da die Bären-Kerze die vorherige Aufwärtskerze vollständig verschlingt.

Abb. 7. Abwärts-Engulfing

Als Nächstes haben wir einen Abwärts-Pin-Bar, der erfolgreich erkannt wurde. Es handelt sich um eine gültige Pin-Bar, der die Genauigkeit des Tools bei der Erkennung von Kerzenmustern unter Beweis stellt.

Abb. 8. Abwärts-Pin-Bar

Schließlich haben wir unsere Backtest-Ergebnisse. Der EA erkennt die Muster korrekt und protokolliert den Namen jedes erkannten Musters im Journal.

Abb. 9. Backtests


Schlussfolgerung

Aus den im vorherigen Abschnitt dargestellten Ergebnissen geht hervor, dass unser EA die vier wichtigsten Kerzenmuster zuverlässig erkennt. Dieser Meilenstein wird sowohl Anfängern als auch erfahrenen Händlern helfen, Formationen zu erkennen, die mit bloßem Auge nur schwer auszumachen sind. In meinen Backtests und Live-Markttests hat der EA jedes Muster korrekt erkannt. Zwar ist kein System perfekt, und einige Signale werden möglicherweise nicht befolgt, aber der EA soll nicht jedes falsche Signal herausfiltern. Stattdessen bietet sie eine zusätzliche, präzise Ebene der Preis-Aktions-Analyse. Die Händler können dann ihre eigenen Bestätigungstechniken anwenden, bevor sie sich auf eine Kauf- oder Verkaufs-Position festlegen.

Insgesamt ist der EA in seiner Kernaufgabe, der Mustererkennung, hervorragend. Ich gebe ihm eine starke Empfehlung dafür, dass es die vier Formationen, auf die es abzielt, genau erkennt. Sie können die Eingabeparameter gerne an Ihre Strategie anpassen. Ich freue mich über Ihr Feedback zu Bereichen, die Ihrer Meinung nach noch verbessert werden könnten.

Datum Name des Tools  Beschreibung Version  Aktualisierungen  Hinweis
01/10/24 Chart Projector Skript zur Überlagerung der Kursentwicklung des Vortages mit einem Ghost-Effekt. 1.0 Erste Veröffentlichung Tool Nummer 1
18/11/24 Analytical Comment Er liefert Informationen zum Vortag in Tabellenform und nimmt die zukünftige Marktentwicklung vorweg. 1.0 Erste Veröffentlichung Tool Nummer 2
27/11/24 Analytics Master Reguläre Aktualisierung der Marktmetriken alle zwei Stunden.  1.01 Zweite Veröffentlichung Tool Nummer 3
02/12/24 Analytics Forecaster  Reguläre Aktualisierung der Marktmetriken alle zwei Stunden mit Telegram-Integration. 1.1 Dritte Ausgabe Tool Nummer 4
09/12/24 Volatility Navigator Der EA analysiert die Marktbedingungen anhand der Indikatoren Bollinger Bands, RSI und ATR. 1.0 Erste Veröffentlichung Tool Nummer 5
19/12/24 Mean Reversion Signal Reaper Analysiert den Markt anhand der Strategie „Umkehr zur Mitte“ und liefert Signale.  1.0  Erste Veröffentlichung  Tool Nummer 6 
9/01/25  Signal Pulse  Analysator für mehrere Zeitrahmen. 1.0  Erste Veröffentlichung  Tool Nummer 7 
17/01/25  Metrics Board  Bedienfeld mit Taste für die Analyse.  1.0  Erste Veröffentlichung Tool Nummer 8 
21/01/25 External Flow Analytik durch externe Bibliotheken. 1.0  Erste Veröffentlichung Tool Nummer 9 
27/01/25 VWAP Volumengewichteter Durchschnittspreis   1.3  Erste Veröffentlichung  Tool Nummer 10 
02/02/25  Heikin Ashi  Trendglättung und Identifizierung von Umkehrsignalen  1.0  Erste Veröffentlichung  Tool Nummer 11
04/02/25  FibVWAP  Signalerzeugung durch Python-Analyse  1.0  Erste Veröffentlichung  Tool Nummer 12
14/02/25  RSI DIVERGENCE  Kursentwicklung versus RSI-Divergenzen  1.0  Erste Veröffentlichung  Tool Nummer 13 
17/02/25  Parabolic Stop and Reverse (PSAR)  Automatisierung der PSAR-Strategie 1.0 Erste Veröffentlichung  Tool Nummer 14
20/02/25  Quarters Drawer Script Einzeichnen der Ebenen der Viertel auf dem Chart  1.0  Erste Veröffentlichung  Tool Nummer 15 
27/02/25  Intrusion Detector Erkennen und warnen, wenn der Preis ein Viertel-Niveau erreicht 1.0   Erste Veröffentlichung Tool Nummer 16 
27/02/25  TrendLoom Tool Analysepanel für mehrere Zeitrahmen 1.0 Erste Veröffentlichung Tool Nummer 17
11/03/25  Quarters Board  Bedienfeld mit Tasten zum Aktivieren oder Deaktivieren der Viertel-Ebenen  1.0  Erste Veröffentlichung Tool Nummer 18
26/03/25  ZigZag Analyzer  Zeichnen von Trendlinien mit dem ZigZag-Indikator  1.0  Erste Veröffentlichung  Tool Nummer 19 
10/04/25  Correlation Pathfinder Plotten von Währungskorrelationen mit Python-Bibliotheken. 1.0 Erste Veröffentlichung  Tool Nummer 20 
23/04/25 Market Structure Flip Detector Tool Erkennung von Marktstrukturschwankungen 1.0  Erste Veröffentlichung  Tool Nummer 21
08/05/25  Correlation Dashboard  Beziehung zwischen verschiedenen Paaren 1.0 Erste Veröffentlichung Tool Nummer 22 
13/05/25 Currency Strength Meter  Messung der Stärke der einzelnen Währungen über alle Paare hinweg 1.0 Erste Veröffentlichung Tool Nummer 23 
21/05/25 PAQ Analysis Tool  Detektor für Kerzen-Formationen 1.0  Erste Veröffentlichung Tool Nummer 24 

Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/en/articles/18207

MQL5-Handelswerkzeuge (Teil 3): Aufbau eines Multi-Timeframe Scanner Dashboards für den strategischen Handel MQL5-Handelswerkzeuge (Teil 3): Aufbau eines Multi-Timeframe Scanner Dashboards für den strategischen Handel
In diesem Artikel bauen wir ein Multi-Timeframe-Scanner-Dashboard in MQL5, um Handelssignale in Echtzeit anzuzeigen. Wir planen eine interaktive Gitterschnittstelle, implementieren Signalberechnungen mit mehreren Indikatoren und fügen eine Schaltfläche zum Schließen hinzu. Der Artikel schließt mit Backtests und strategischen Handelsvorteilen
MQL5-Assistenten-Techniken, die Sie kennen sollten (Teil 68):  Verwendung von TRIX-Mustern und des Williams Percent Range mit einem Cosinus-Kernel-Netzwerk MQL5-Assistenten-Techniken, die Sie kennen sollten (Teil 68): Verwendung von TRIX-Mustern und des Williams Percent Range mit einem Cosinus-Kernel-Netzwerk
Wir knüpfen an unseren letzten Artikel an, in dem wir das Indikatorpaar TRIX und Williams Percent Range vorstellten, und überlegen, wie dieses Indikatorpaar durch maschinelles Lernen erweitert werden kann. TRIX und Williams Percent sind ein Trend- und Unterstützungs-/Widerstandspaar, das sich gegenseitig ergänzt. Unser Ansatz des maschinellen Lernens verwendet ein neuronales Faltungsnetzwerk, das bei der Feinabstimmung der Prognosen dieses Indikatorpaares den Kosinus-Kernel in seine Architektur einbezieht. Wie immer wird dies in einer nutzerdefinierten Signalklassendatei durchgeführt, die mit dem MQL5-Assistenten arbeitet, um einen Expert Advisor zusammenzustellen.
Entwicklung des Price Action Analysis Toolkit (Teil 25): Dual EMA Fractal Breaker Entwicklung des Price Action Analysis Toolkit (Teil 25): Dual EMA Fractal Breaker
Die Preisaktion ist ein grundlegender Ansatz zur Identifizierung profitabler Handels-Setups. Die manuelle Überwachung von Kursbewegungen und -mustern kann jedoch schwierig und zeitaufwändig sein. Deshalb entwickeln wir Tools, die das Kursgeschehen automatisch analysieren und rechtzeitig Signale geben, wenn sich potenzielle Chancen ergeben. In diesem Artikel wird ein robustes Tool vorgestellt, das fraktale Ausbrüche zusammen mit dem EMA 14 und dem EMA 200 nutzt, um zuverlässige Handelssignale zu generieren, die Händlern helfen, fundierte Entscheidungen mit größerer Zuversicht zu treffen.
Automatisieren von Handelsstrategien in MQL5 (Teil 19): Envelopes Trend Bounce Scalping - Handelsausführung und Risikomanagement (Teil II) Automatisieren von Handelsstrategien in MQL5 (Teil 19): Envelopes Trend Bounce Scalping - Handelsausführung und Risikomanagement (Teil II)
In diesem Artikel implementieren wir Handelsausführung und Risikomanagement für die Envelopes Trend Bounce Scalping Strategie in MQL5. Wir implementieren Auftragserteilung und Risikokontrollen wie Stop-Loss und Positionsgröße. Wir schließen mit Backtests und Optimierung, aufbauend auf den Grundlagen von Teil 18.