English Русский 中文 Español 日本語 Português
preview
Methoden von William Gann (Teil I): Erstellen des Gann Angles-Indikators

Methoden von William Gann (Teil I): Erstellen des Gann Angles-Indikators

MetaTrader 5Handel | 4 März 2025, 08:33
201 0
Yevgeniy Koshtenko
Yevgeniy Koshtenko

Einführung

William Delbert Gann ist ein legendärer Händler und technischer Analyst, dessen innovative Methoden der Marktanalyse auch heute noch das Interesse moderner Händler wecken. Zu den wichtigsten Werkzeugen in Ganns Arsenal gehörten seine berühmten Winkel, mit denen er Preisbewegungen vorhersagte und potenzielle Unterstützungs- und Widerstandsniveaus identifizierte.

In diesem Artikel tauchen wir in die Welt der Handelsmethoden von William Gann ein und beginnen mit der Erstellung des Gann Angles-Indikators in MQL5. Wir werden die Theorie hinter diesem Tool durchgehen und es Schritt für Schritt als nutzerdefinierten Indikator für die MetaTrader 5-Plattform implementieren.

Egal, ob Sie ein erfahrener Händler auf der Suche nach neuen Analysetools oder ein Anfänger sind, der sein Arsenal an technischen Indikatoren erweitern möchte, dieser Artikel wird Ihnen helfen, eine der faszinierendsten Methoden von William Gann besser zu verstehen und in Ihrem Handel anzuwenden.


Geschichte der Erstellung von Gann-Winkeln

William Delbert Gann (1878-1955) entwickelte sein Winkelsystem im frühen 20. Jahrhundert basierend auf jahrelanger Forschung zu Marktbewegungen und seinem einzigartigen Verständnis der Beziehung zwischen Zeit und Preis.

Gann glaubte, dass sich die Märkte in vorhersehbaren geometrischen Mustern bewegten und dass diese Bewegungen mithilfe einer Kombination aus Mathematik, Geometrie und Astrologie vorhergesagt werden könnten. Er entwickelte das Konzept der Winkel, also diagonale Linien in einem Chart, die das perfekte Gleichgewicht zwischen Zeit- und Preisbewegung widerspiegeln.

Der Schlüssel zu Ganns Theorie war die Idee, dass ein 45-Grad-Winkel (bekannt als 1x1-Winkel) das perfekte Gleichgewicht zwischen Zeit und Preis darstellt. Er glaubte, dass eine Preisbewegung nach oben oder unten in diesem Winkel ein Zeichen für einen ausgeglichenen und stabilen Trend sei.

Gann entwickelte auch andere Winkel wie 2x1, 3x1, 4x1 und ihre Kehrwerte, die unterschiedliche Beziehungen zwischen Zeit und Preis darstellen. Diese Ansätze bildeten die Grundlage seines Handelssystems und seiner Marktanalyse.

Auch wenn einige Aspekte von Ganns Arbeit weiterhin umstritten sind, erregen seine Methoden, darunter auch die Gann-Winkel, weiterhin die Aufmerksamkeit von Händlern und Analysten auf der ganzen Welt und bleiben im modernen Handel relevant.


Ganns Winkel-Theorie und ihre Bedeutung in der technischen Analyse

Ganns Winkel-Theorie basiert auf dem Konzept, dass Marktbewegungen vorhersehbaren, geometrischen Mustern folgen, die anhand spezieller Winkelcharts in einem Chart identifiziert werden können. Die Theorie basiert auf der Idee eines Gleichgewichts zwischen Zeit und Preis, wobei ein Winkel von 1x1 (45 Grad) ein perfektes Gleichgewicht darstellt und von einer Preisänderung von einer Einheit pro Zeitraum ausgeht.

Gann entwickelte ein System verschiedener Winkel wie 2x1, 3x1, 4x1 und deren Kehrwerte, von denen jeder eine bestimmte Beziehung zwischen Zeit und Preisbewegung widerspiegelt. Diese Winkel dienen als dynamische Unterstützungs- und Widerstandsniveaus und helfen Händlern, die Stärke und Richtung eines Trends zu bestimmen. Steilere Winkel deuten auf einen stärkeren Trend hin, während flachere Winkel eine schwächere Bewegung anzeigen.


Grundprinzipien der Konstruktion von Gann-Winkeln


Die Konstruktion von Gann-Winkeln basiert auf mehreren Schlüsselprinzipien, die es Händlern ermöglichen, dieses Tool effektiv in der technischen Analyse zu nutzen. Die Wahl des Startpunkts (der normalerweise ein signifikantes Minimum oder Maximum im Chart darstellt) ist von größter Bedeutung. An diesem Punkt beginnt die Konstruktion der Winkel.

Als Basiswinkel gilt der 1x1-Winkel, der auf dem Chart eine 45-Grad-Linie bildet. Dieser Winkel spiegelt das perfekte Gleichgewicht zwischen Zeit und Preis wider, wobei sich der Preis in einem Zeitraum um eine Einheit ändert. Andere Winkel, wie 2x1, 3x1, 4x1 und ihre Kehrwerte, werden relativ zu diesem Basiswinkel konstruiert.

Beim Zeichnen ist es wichtig, den Kartenmaßstab zu beachten. Händler verwenden häufig spezielle Vorlagen oder Werkzeuge, um genaue Winkel sicherzustellen. Die Winkellinien setzen sich in die Zukunft fort und ermöglichen die Vorhersage potenzieller Unterstützungs- und Widerstandsniveaus.


Arten von Gann-Winkeln und ihre Interpretation

William Gann entwickelte ein Winkelsystem, von denen jeder seine eigene Bedeutung und Interpretation in der technischen Analyse hat. 1x1 oder 45 Grad wird als Hauptwinkel angesehen, der das Gleichgewicht zwischen Zeit und Preis widerspiegelt. Dieser Blickwinkel dient als grundlegende Richtlinie zur Beurteilung der Stärke des Trends.

Der 2x1-Winkel (63,75 Grad) zeigt eine stärkere Preisbewegung an, bei der der Preis doppelt so schnell steigt wie die Zeit. Dies wird oft als Zeichen eines starken Aufwärtstrends interpretiert. Im Gegensatz dazu weist ein Winkel von 1x2 (26,25 Grad) auf einen im Zeitverlauf langsameren Preisanstieg hin, was auf einen schwächer werdenden Trend hindeuten kann.

Die Winkel 3x1 (71,25 Grad) und 4x1 (75 Grad) stellen eine noch aggressivere Preisbewegung dar und werden normalerweise mit sehr starken Trends oder einer potenziellen Marktüberhitzung in Verbindung gebracht. Ihre Kehrwerte – 1x3 (18,75 Grad) und 1x4 (15 Grad) – können starken Widerstand oder Unterstützung anzeigen.

Die Interpretation von Gann-Winkeln beschränkt sich nicht nur auf ihre Steigung. Es ist auch wichtig zu berücksichtigen, wie der Preis mit diesen Linien interagiert. Ein Preis, der die Winkellinie kreuzt, kann eine mögliche Trendwende signalisieren. Wenn sich der Preis entlang der Winkellinie bewegt, wird dies oft als Bestätigung der Stärke des aktuellen Trends interpretiert.


Praktische Anwendung von Gann-Winkeln im Handel

Händler verwenden diese Tools für verschiedene Zwecke, von der Erkennung von Trends bis zur Auswahl von Ein- und Ausstiegspunkten für Positionen.

Um einen Trend zu bestimmen, beginnt man normalerweise mit der Aufzeichnung eines 1x1-Winkels von einem signifikanten Minimum oder Maximum aus. Bewegt sich der Kurs über diese Linie, wird dies als Aufwärtstrend interpretiert, liegt er darunter, als Abwärtstrend. Steilere Winkel wie 2x1 oder 3x1 werden verwendet, um die Stärke des Trends zu bestätigen.

Bei der Auswahl von Einstiegspunkten achten viele Händler auf Momente, in denen der Preis abprallt oder die Gann-Winkellinie durchbricht. Beispielsweise kann ein Abprallen von der 1x1-Linie in Trendrichtung als potenzielle Gelegenheit zum Einstieg in eine Position angesehen werden.

Für das Risikomanagement werden Gann-Winkel häufig zum Festlegen von Stop-Loss verwendet. Ein Händler kann einen Stop-Loss bei einer Kaufposition knapp unterhalb der nächsten Winkellinie oder bei einer Verkaufsposition knapp darüber platzieren.

Beim langfristigen Handel helfen Gann-Winkel dabei, die allgemeine Richtung des Marktes zu bestimmen. Wir können flachere Winkel wie 1x2 oder 1x4 verwenden, um langfristige Trends zu beurteilen und strategische Entscheidungen zu treffen.


Beispiele für Handelsstrategien mit Gann-Winkeln

Gann-Winkel bieten Händlern zahlreiche Optionen zum Erstellen unterschiedlicher Handelsstrategien. Hier sind einige Beispiele, wie sie im realen Handel effektiv eingesetzt werden können.

Die Strategie eines Winkelabpralls basiert auf der Annahme, dass Gann-Winkellinien häufig als Unterstützungs- oder Widerstandsniveaus fungieren. Ein Händler sucht nach Situationen, in denen sich der Preis einer Gann-Winkellinie (insbesondere 1x1 oder 2x1) nähert und von ihr abprallt. Der Einstieg in eine Position erfolgt nach der Bestätigung eines Abpralls, beispielsweise der Bildung eines Kerzen-Umkehrmusters.

Eine weitere beliebte Strategie ist Winkelausbruch. Hierbei wartet der Händler auf einen Durchbruch des Kurses durch eine wichtige Gann-Winkellinie, insbesondere wenn damit auch eine Steigerung des Handelsvolumens einhergeht. Ein Ausbruch nach oben kann eine potenzielle Kaufposition signalisieren, während ein Ausbruch nach unten eine Verkaufsposition signalisieren kann.

Bei der Gann-Fächer-Strategie werden mehrere Winkel verwendet, die von einem einzigen Punkt ausgehen und so eine fächerförmige Struktur bilden. Der Händler analysiert, wie der Preis mit den verschiedenen Fächerlinien interagiert und nutzt dies, um Unterstützungs- und Widerstandsniveaus sowie mögliche Umkehrpunkte zu bestimmen.

Die Kombination von Winkeln und Zeitzyklen ist eine komplexere Strategie, bei der der Händler Gann-Winkel mit dem ebenfalls von Gann entwickelten Konzept der Zeitzyklen kombiniert. Hierbei werden die Schnittpunkte wichtiger Zeitlinien mit Gann-Winkeln analysiert, um kritische Momente für den Markteinstieg bzw. -ausstieg zu ermitteln.

Bei der Multi-Zeitrahmen-Strategie werden Gann-Winkel in unterschiedlichen Zeitrahmen analysiert. Ein Händler könnte beispielsweise einen 1x1-Winkel auf einem Tageschart verwenden, um den Gesamttrend zu bestimmen, und dann zu einem Stundenchart wechseln, um mit steileren Winkeln nach Einstiegspunkten zu suchen.


Erstellen des Gann Angles-Indikators in MQL5: Grundlegende Schritte


Das Erstellen eines Gann-Angles-Indikators in MQL5 umfasst mehrere wichtige Schritte. Dieser Prozess erfordert ein Verständnis sowohl der Prinzipien der Konstruktion von Gann-Winkeln als auch der Besonderheiten der Programmierung in der MetaTrader 5-Umgebung.

Der erste Schritt besteht darin, die Indikatorstruktur zu definieren. Hier legen wir die grundlegenden Parameter fest, wie den Indikatornamen, Eingabeparameter für die Winkeleinstellung und die benötigten Bibliotheken.

Die Hauptlogik zum Erstellen von Gann-Winkeln befindet sich in der Funktion OnCalculate(). Hier definieren wir den Startpunkt zum Aufzeichnen der Winkel, berechnen die Koordinaten für jeden Winkel und zeichnen die Linien in das Chart.

Ein wichtiger Aspekt ist die korrekte Berechnung der Koordinaten der Winkel unter Berücksichtigung des Maßstabs des Charts und des gewählten Zeitintervalls. Dies erfordert einen präzisen mathematischen Ansatz und ein Verständnis der Geometrie der Gann-Winkel.

Die letzte Phase besteht im Testen und Debuggen des Indikators. Es ist notwendig, die Gültigkeit der Winkelkonstruktion in verschiedenen Zeitrahmen und mit verschiedenen Instrumenten zu überprüfen.


Die Struktur des Indikatorcodes

Hier ist der Basiscode des Gann Angles-Indikators, der in MetaTrader 5 verwendet werden kann:

#property copyright "Copyright 2024, Evgeniy Shtenco"
#property link      "https://www.mql5.com/en/users/koshtenko"
#property version   "1.00"
#property indicator_chart_window

// Input parameters
input datetime StartDate = D'2023.01.01 00:00'; // Start date for analysis
input datetime EndDate = D'2023.12.31 23:59';   // End date for analysis
input color GannFanColor = clrBlue;             // Color for Gann Fan lines

// Global variables
double extremumPrice;
datetime extremumTime;
double oppositeExtremumPrice;
datetime oppositeExtremumTime;
bool isTrendUp;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
    return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
    ObjectsDeleteAll(0, "GannFan_");
    ObjectsDeleteAll(0, "OppositeGannFan_");
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
    if(rates_total < 1) return(0);

    // Clear previous objects
    if (prev_calculated == 0)
    {
        ObjectsDeleteAll(0, "GannFan_");
        ObjectsDeleteAll(0, "OppositeGannFan_");
    }

    // Find extremums within the specified date range
    FindExtremums(rates_total, high, low, time);

    // Draw Gann Fans
    DrawGannFan(extremumPrice, extremumTime);
    DrawOppositeGannFan(oppositeExtremumPrice, oppositeExtremumTime);

    return(rates_total);
}

//+------------------------------------------------------------------+
//| Find both extremums within the specified date range              |
//+------------------------------------------------------------------+
void FindExtremums(const int rates_total, const double &high[], const double &low[], const datetime &time[])
{
    int startIndex = -1;
    int endIndex = -1;

    for (int i = 0; i < rates_total; i++)
    {
        if (time[i] >= StartDate && startIndex == -1)
        {
            startIndex = i;
        }
        if (time[i] <= EndDate)
        {
            endIndex = i;
        }
    }

    if (startIndex == -1 || endIndex == -1 || startIndex > endIndex)
    {
        Print("Error: Invalid date range or no data available in the specified range");
        return;
    }

    int highestIndex = ArrayMaximum(high, startIndex, endIndex - startIndex + 1);
    int lowestIndex = ArrayMinimum(low, startIndex, endIndex - startIndex + 1);

    // Determine the most recent extremum
    if (time[highestIndex] > time[lowestIndex])
    {
        extremumPrice = high[highestIndex];
        extremumTime = time[highestIndex];
        oppositeExtremumPrice = low[lowestIndex];
        oppositeExtremumTime = time[lowestIndex];
        isTrendUp = false;
    }
    else
    {
        extremumPrice = low[lowestIndex];
        extremumTime = time[lowestIndex];
        oppositeExtremumPrice = high[highestIndex];
        oppositeExtremumTime = time[highestIndex];
        isTrendUp = true;
    }
}

//+------------------------------------------------------------------+
//| Draw Gann Fan                                                    |
//+------------------------------------------------------------------+
void DrawGannFan(double extremum, datetime extremumTime)
{
    double angles[] = {82.5, 75, 71.25, 63.75, 45, 26.25, 18.75, 15, 7.5};
    string angleNames[] = {"1x8", "1x4", "1x3", "1x2", "1x1", "2x1", "3x1", "4x1", "8x1"};

    datetime endTime = extremumTime + PeriodSeconds() * 300;

    for(int i = 0; i < ArraySize(angles); i++)
    {
        string label = "GannFan_" + angleNames[i];
        double angle = angles[i];
        
        double priceShift = MathTan(angle * M_PI / 180.0) * 300 * _Point;
        double endPrice;
        
        if(isTrendUp)
        {
            endPrice = extremum + priceShift;
        }
        else
        {
            endPrice = extremum - priceShift;
            angle = -angle; // Invert the angle for a downtrend
        }

        if(ObjectCreate(0, label, OBJ_TREND, 0, extremumTime, extremum, endTime, endPrice))
        {
            ObjectSetInteger(0, label, OBJPROP_COLOR, GannFanColor);
            ObjectSetInteger(0, label, OBJPROP_STYLE, STYLE_SOLID);
            ObjectSetInteger(0, label, OBJPROP_WIDTH, 1);
            ObjectSetInteger(0, label, OBJPROP_RAY_RIGHT, true);
            ObjectSetString(0, label, OBJPROP_TOOLTIP, "Gann Fan " + angleNames[i]);
        }
        else
        {
            Print("Failed to create Gann Fan line: ", GetLastError());
        }
    }
}

//+------------------------------------------------------------------+
//| Draw Opposite Gann Fan                                           |
//+------------------------------------------------------------------+
void DrawOppositeGannFan(double extremum, datetime extremumTime)
{
    double angles[] = {82.5, 75, 71.25, 63.75, 45, 26.25, 18.75, 15, 7.5};
    string angleNames[] = {"1x8", "1x4", "1x3", "1x2", "1x1", "2x1", "3x1", "4x1", "8x1"};

    datetime endTime = extremumTime + PeriodSeconds() * 300;

    for(int i = 0; i < ArraySize(angles); i++)
    {
        string label = "OppositeGannFan_" + angleNames[i];
        double angle = angles[i];
        
        double priceShift = MathTan(angle * M_PI / 180.0) * 300 * _Point;
        double endPrice;
        
        if(!isTrendUp) // Opposite trend
        {
            endPrice = extremum + priceShift;
        }
        else
        {
            endPrice = extremum - priceShift;
            angle = -angle; // Invert the angle for a downtrend
        }

        if(ObjectCreate(0, label, OBJ_TREND, 0, extremumTime, extremum, endTime, endPrice))
        {
            ObjectSetInteger(0, label, OBJPROP_COLOR, GannFanColor);
            ObjectSetInteger(0, label, OBJPROP_STYLE, STYLE_SOLID);
            ObjectSetInteger(0, label, OBJPROP_WIDTH, 1);
            ObjectSetInteger(0, label, OBJPROP_RAY_RIGHT, true);
            ObjectSetString(0, label, OBJPROP_TOOLTIP, "Opposite Gann Fan " + angleNames[i]);
        }
        else
        {
            Print("Failed to create Opposite Gann Fan line: ", GetLastError());
        }
    }
}

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
{
    // Redraw objects when chart changes
    if(id == CHARTEVENT_CHART_CHANGE)
    {
        // Find extremums and redraw Gann Fans
        int rates_total = Bars(_Symbol, PERIOD_CURRENT);
        double high[], low[];
        datetime time[];
        ArraySetAsSeries(high, true);
        ArraySetAsSeries(low, true);
        ArraySetAsSeries(time, true);
        CopyHigh(_Symbol, PERIOD_CURRENT, 0, rates_total, high);
        CopyLow(_Symbol, PERIOD_CURRENT, 0, rates_total, low);
        CopyTime(_Symbol, PERIOD_CURRENT, 0, rates_total, time);
        
        FindExtremums(rates_total, high, low, time);
        DrawGannFan(extremumPrice, extremumTime);
        DrawOppositeGannFan(oppositeExtremumPrice, oppositeExtremumTime);
    }
}


Hauptfunktionen und ihr Zweck

Der Code ist ein MetaTrader 5-Indikator, der Gann-Fächerwinkel in das Chart zeichnet. Hier ist eine Beschreibung der Hauptfunktionen und ihres Zwecks:

  1. OnInit() ist die Initialisierungsfunktion des Indikators. In diesem Fall wird einfach ein erfolgreiches Initialisierungsergebnis zurückgegeben.
  2. OnDeinit() ist die Deinitialisierungsfunktion, die alle vom Indikator erstellten Objekte entfernt, wenn er aus dem Chart entfernt wird.
  3. OnCalculate() ist die Hauptfunktion des Indikators. Sie wird bei jedem Tick aufgerufen. Sie löscht vorherige Objekte, findet Extreme in einem bestimmten Datumsbereich und zeichnet Gann-Winkel.
  4. FindExtremums() ist eine Funktion zum Finden von Extremen (Maximum und Minimum) eines Preises in einem bestimmten Datumsbereich. Es stellt fest, welches Extrem aktueller ist und legt die Richtung des Trends fest.
  5. DrawGannFan() ist eine Funktion zum Zeichnen des Haupt-Gann-Fächers vom gefundenen Extremum. Es erstellt Linien für neun verschiedene Winkel.
  6. DrawOppositeGannFan() ist eine Funktion zum Zeichnen des entgegengesetzten Gann-Fächers von einem anderen Extremum. Es erstellt auch Linien für die neun Winkel, jedoch in die entgegengesetzte Richtung.
  7. OnChartEvent() ist eine Funktion, die auf Chartereignisse reagiert. In diesem Fall werden die Gann-Fächer neu gezeichnet, wenn sich das Chart ändert.

Der Indikator verwendet Eingaben, um den Analysedatumsbereich (StartDate und EndDate) und die Farbe der Linien (GannFanColor) festzulegen. Es findet Preisextreme in diesem Bereich, bestimmt die Trendrichtung und zieht zwei Gann-Fächer an – einen vom letzten Extrem, den anderen vom gegenüberliegenden. Jeder Fächer besteht aus neun Linien, die unterschiedlichen Gann-Winkeln entsprechen (82,5°, 75°, 71,25°, 63,75°, 45°, 26,25°, 18,75°, 15° und 7,5°).

Der Code umfasst auch eine Fehlerbehandlung und eine dynamische Aktualisierung bei Chartänderungen, wodurch er relativ robust ist und sich an unterschiedliche Marktbedingungen anpassen kann. Die Verwendung von MQL5-Funktionen wie ArrayMaximum() und ArrayMinimum() gewährleistet eine effiziente Datenverarbeitung.

Algorithmus zur Berechnung des Gann-Winkels

Der Algorithmus zur Berechnung der Gann-Winkel in diesem Indikator basiert auf der geometrischen Konstruktion von Linien vom Extremumpunkt. Hier sind die wichtigsten Aspekte dieses Algorithmus:

  • Bestimmung der Extreme: Der Indikator ermittelt den Höchst- und Mindestpreis in einem bestimmten Zeitraum. Das spätere dieser Extreme wird als Ausgangspunkt für den Haupt-Gann-Fächer verwendet und das frühere für den entgegengesetzten Fächer.
  • Einstellen der Winkel: Es wird ein Satz fester Winkel verwendet: 82,5°, 75°, 71,25°, 63,75°, 45°, 26,25°, 18,75°, 15° und 7,5°. Diese Winkel entsprechen den traditionellen Gann-Verhältnissen: 1x8, 1x4, 1x3, 1x2, 1x1, 2x1, 3x1, 4x1 und 8x1.
  • Endpunktberechnung: Für jeden Winkel wird der Endpunkt der Linie berechnet. Die Berechnung basiert auf der Gleichung:
endPrice = extremum + MathTan(angle * M_PI / 180.0) * 300 * Point
  • Hier ist 300 die herkömmliche Anzahl von Balken im Voraus, die zum Erstellen der Linie verwendet wird.
  • Umkehrung für einen Abwärtstrend: Bei einem Abwärtstrend wird der Winkel umgekehrt (Vorzeichen geändert), sodass die Linien vom Extrempunkt aus nach unten zeigen.
  • Leitungsaufbau: Für jeden Winkel wird ein Linienobjekt (OBJ_TREND) vom Extrempunkt zum berechneten Endpunkt erstellt. Zeilen werden nach rechts erweitert, um zukünftige Daten abzudecken.
  • Doppelfächer: Der Algorithmus wird zweimal angewendet – einmal für den Hauptfächer vom letzten Extremum, das zweite Mal für den entgegengesetzten Fächer vom frühen Extremum. Dadurch können wir potenzielle Unterstützungs- und Widerstandsniveaus auf beiden Seiten visualisieren.
  • Dynamisches Update: Wenn sich das Chart ändert (beispielsweise wenn neue Daten eintreffen), berechnet der Algorithmus die Extreme neu und erstellt die Fächer neu, um sicherzustellen, dass die Analyse aktuell ist.

Der Algorithmus ermöglicht es uns, klassische Gann-Winkel in einem Chart zu visualisieren und bietet dem Händler ein Tool zur Analyse potenzieller Unterstützungs- und Widerstandsniveaus sowie der Trendrichtung. 


Ist es möglich, gewinnbringend zu handeln?

Ist es möglich, mit Gann-Winkeln profitabel zu handeln? Auf diese Frage gibt es keine eindeutige Antwort, aber mit der richtigen Herangehensweise ist profitables Trading durchaus möglich. Der Schlüssel zum Erfolg liegt im umfassenden Einsatz dieses Tools.

Doch auch bei sorgfältigster und gewissenhafter Analyse darf das Risikomanagement nicht vergessen werden. Dies ist der Grundstein für profitablen Handel. Keine Methode garantiert einen hundertprozentigen Erfolg, daher spielen ein angemessenes Kapital- und Risikomanagement für die langfristige Rentabilität eine wichtige Rolle.


Aussichten für die Erstellung eines auf Gann Angles basierenden EA


Die Erstellung eines EA auf Basis von Gann Angles ist eine interessante und vielversprechende Aufgabe für Entwickler algorithmischer Handelssysteme. Ein solcher EA könnte die Analyse und den Handel mithilfe der in Ganns Theorie festgelegten Prinzipien automatisieren.

Die Grundlage für einen solchen EA kann der bereits implementierte Gann Angles-Indikator sein. Der EA-Algorithmus könnte die Analyse der Interaktion des Preises mit Gann-Linien umfassen, die Bestimmung von Ein- und Ausstiegspunkten basierend auf den Schnittpunkten dieser Linien sowie die Berücksichtigung zusätzlicher Faktoren wie Handelsvolumen und Marktvolatilität.

Einer der Hauptvorteile eines automatisierten Systems auf Basis von Gann-Winkeln wäre die Eliminierung des emotionalen Faktors aus dem Handelsentscheidungsprozess. Der EA kann die vorgegebene Strategie strikt befolgen, ohne der Angst oder Gier nachzugeben, die oft die Entscheidungen eines menschlichen Händlers beeinflussen.

Die Entwicklung eines solchen EA ist jedoch mit zahlreichen Herausforderungen verbunden. Zunächst besteht Bedarf an einer genauen Interpretation der durch die Gann-Winkel erzeugten Signale. Die Gann-Theorie ist weitgehend subjektiv und erfordert ein tiefes Verständnis des Marktes, das sich nur schwer vollständig in Form eines Algorithmus umsetzen lässt.

Natürlich hängt der Erfolg eines solchen EA in hohem Maße davon ab, wie gut der Entwickler die Gann-Theorie versteht und ob es ihm gelingt, diese Theorie effektiv mit modernen Methoden der Marktanalyse und des Risikomanagements zu kombinieren.


Größte Herausforderung: Skalierungswinkel

Eines der größten Probleme bei der Erstellung und Verwendung von Indikatoren und EAs basierend auf Gann-Winkeln ist die Schwierigkeit, sie zu skalieren. Dieses Problem beeinträchtigt die Genauigkeit und Effizienz von Handelssystemen, die auf der Gann-Methode basieren, erheblich.

Der Kern des Problems besteht darin, dass Gann-Winkel als geometrische Konstruktionen stark vom Chartmaßstab abhängen. Beim Ändern der Skalierung der Zeitachse oder der Preisskala kann es zu erheblichen Verzerrungen der optischen Winkeldarstellung kommen. Was in einem Maßstab wie ein perfekter 1x1-Winkel (45 Grad) aussieht, kann sich beim Ändern des Maßstabs in einen völlig anderen Winkel verwandeln.

Dies führt zu erheblichen Schwierigkeiten bei der Softwareimplementierung. Der Indikator oder EA sollte ständig den aktuellen Maßstab des Charts berücksichtigen und die Winkelberechnungen entsprechend anpassen. Darüber hinaus wird das den Gann-Winkeln zugrunde liegende Konzept „Zeiteinheit gleich Preiseinheit“ mehrdeutig, wenn mit unterschiedlichen Finanzinstrumenten und Zeitrahmen gearbeitet wird.

Versuche, dieses Problem zu lösen, führen oft zu Kompromissen. Einige Entwickler legen den Maßstab fest, was die Anwendbarkeit des Tools einschränkt. Andere führen komplexe Algorithmen zur Neuberechnung von Winkeln ein, die die Geschwindigkeit des Indikators oder EA verringern können.

Darüber hinaus erschwert das Skalierungsproblem den Vergleich von Analyseergebnissen über verschiedene Tools oder Zeiträume hinweg. Ein Ansatz, der auf einem Tageschart eines Währungspaars effektiv funktioniert, kann auf einem Stundenchart oder bei einem anderen Handelsinstrument völlig andere Ergebnisse hervorbringen.

Dieses Problem stellt die universelle Anwendbarkeit von Gann-Winkeln im automatisierten Handel in Frage. Entwickler müssen nicht nur die Gann-Theorie gründlich verstehen, sondern auch die Besonderheiten der Arbeit mit Charts in Handelsplattformen kennen.


Schlussfolgerung

Gann-Winkel sind ein einzigartiges Tool zur technischen Analyse, das weiterhin die Aufmerksamkeit von Händlern und Entwicklern von Handelssystemen auf sich zieht. Unsere Überprüfung hat gezeigt, dass die Erstellung eines Gann-Winkelindikators in MQL5 durchaus machbar ist und der bereitgestellte Code als guter Ausgangspunkt für die weitere Entwicklung dient.

Allerdings bringt die Verwendung von Gann-Winkeln im automatisierten Handel eine Reihe erheblicher Herausforderungen mit sich. Das wichtigste Problem ist die Skalierung, die die Erstellung eines universellen und zuverlässigen Handels-EA auf Basis dieser Methode erheblich erschwert.

Trotz dieser Schwierigkeiten bleibt das Potenzial der Gann-Winkel als Instrument der Marktanalyse hoch. Bei richtiger Anwendung können sie in Kombination mit anderen Methoden der technischen Analyse und einem angemessenen Risikomanagement eine wirksame Ergänzung des Werkzeugkastens eines Händlers sein.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/ru/articles/15556

Beigefügte Dateien |
Algorithmus einer Anarchischen Gesellschaftsoptimierung (ASO) Algorithmus einer Anarchischen Gesellschaftsoptimierung (ASO)
In diesem Artikel machen wir uns mit dem Algorithmus Anarchic Society Optimization (Anarchischen Gesellschaftsoptimierung, ASO) vertraut und erörtern, wie ein Algorithmus, der auf dem irrationalen und abenteuerlichen Verhalten von Teilnehmern in einer anarchischen Gesellschaft (einem anomalen System sozialer Interaktion, das frei von zentraler Macht und verschiedenen Arten von Hierarchien ist) basiert, in der Lage ist, den Lösungsraum zu erkunden und die Fallen des lokalen Optimums zu vermeiden. Der Artikel stellt eine einheitliche ASO-Struktur vor, die sowohl auf kontinuierliche als auch auf diskrete Probleme anwendbar ist.
Neuronale Netze im Handel: Einspeisung globaler Informationen in unabhängige Kanäle (InjectTST) Neuronale Netze im Handel: Einspeisung globaler Informationen in unabhängige Kanäle (InjectTST)
Die meisten modernen Methoden zur multimodalen Zeitreihenprognose verwenden den Ansatz unabhängiger Kanäle. Dabei wird die natürliche Abhängigkeit verschiedener Kanäle derselben Zeitreihe ignoriert. Der intelligente Einsatz zweier Ansätze (unabhängige und gemischte Kanäle) ist der Schlüssel zur Verbesserung der Leistung der Modelle.
William-Gann-Methoden (Teil II): Gann Square Indikator erstellen William-Gann-Methoden (Teil II): Gann Square Indikator erstellen
Wir werden einen Indikator erstellen, der auf dem Gann‘schen 9er-Quadrat basiert, das durch Quadrieren von Zeit und Preis gebildet wird. Wir werden den Code vorbereiten und den Indikator in der Plattform in verschiedenen Zeitintervallen testen.
Neuronale Netze im Handel: Praktische Ergebnisse der Methode TEMPO Neuronale Netze im Handel: Praktische Ergebnisse der Methode TEMPO
Wir beschäftigen uns weiter mit TEMPO. In diesem Artikel werden wir die tatsächliche Wirksamkeit der vorgeschlagenen Ansätze anhand realer historischer Daten bewerten.