Dynamische Fair Value Gap Day-Trading-Strategie: Multi-Time Frame Backtesting-System basierend auf der SMC-Theorie

FVG SMC SL TP Risk-Reward Ratio
Erstellungsdatum: 2025-03-26 15:27:29 zuletzt geändert: 2025-03-26 15:27:29
Kopie: 2 Klicks: 601
2
konzentrieren Sie sich auf
319
Anhänger

Dynamische Fair Value Gap Day-Trading-Strategie: Multi-Time Frame Backtesting-System basierend auf der SMC-Theorie Dynamische Fair Value Gap Day-Trading-Strategie: Multi-Time Frame Backtesting-System basierend auf der SMC-Theorie

Überblick

Die Dynamische Fair Value Gap (FVG) ist ein auf der Theorie der Marktstruktur basierendes, quantitatives Handelssystem, das sich auf die Identifizierung und den Handel mit der Fair Value Gap (FVG) im Preis konzentriert. Die Strategie nutzt die Drei-String-Form, um Angebots- und Nachfrage-Ungleichgewichte im Preisverhalten zu erkennen, und tritt in diese Bereiche ein, wenn der Preis zurückgegangen wird. Die Strategie verwendet ein festes Risiko-Rendite-Verhältnis, um das Risiko zu verwalten, und stellt einen Zwangspositionsmechanismus für bestimmte Tageszeiten ein, um das Risiko über Nacht zu vermeiden.

Strategieprinzip

Die Kernprinzipien der Fair Value Gap-Trading-Strategie basieren auf den “ungebundenen Bereichen” oder “Lücken”, die bei schnellen Preisbewegungen zurückgelassen werden. Diese Bereiche stellen ein schwerwiegendes Versorgungs- und Nachfrage-Ungleichgewicht dar, das in der Regel in der Zukunft “gefüllt” oder “wieder getestet” wird.

  1. SchlupfwinkelprüfungenStrategie: Es gibt zwei Arten von FVGs, die mit einem Drei-Strahl-Muster identifiziert werden:

    • FVG: Der Mindestpreis der aktuellen Seilbahn ist höher als der Höchstpreis der beiden vorherigen Seilbahnen, und der Abschlusspreis der vorherigen Seilbahn ist höher als der Höchstpreis der beiden vorherigen Seilbahnen.
    • Beißende FVG: Der Höchstpreis der aktuellen Leitung ist niedriger als der niedrigste Preis vor den beiden Leitungskreisen, und der Schlusskurs der vorherigen Leitung ist niedriger als der niedrigste Preis vor den beiden Leitungskreisen.
  2. Reaktion auf EinstiegslogikDie Strategie besteht darin, nicht sofort bei der Bildung der FVG einzutreten, sondern darauf zu warten, dass sich die Preise in den folgenden Regionen wieder bemerkbar machen:

    • Beobachter FVG: Trigger mehrere Signale, wenn der Preis zurück zur oberen Grenze der FVG-Region (Hochpunkt) fällt.
    • Fallende FVG: Trigger eines Shorting-Signals, wenn der Preis auf die untere Grenze der FVG-Region (<= der Tiefpunkt) zurückschlägt.
  3. Risikomanagement

    • Die Stop-Loss-Einstellung liegt an der Grenze des entsprechenden FVG (bei einem niedrigen oder hohen Preiswert des FVG).
    • Das Gewinnziel wird mit einem Risiko-Rendite-Verhältnis von 1:2 berechnet: Einstiegspreis ± (einstiegspreis - Stop-Loss) × 2.
  4. TagesausgleichStrategie: Alle Positionen automatisch ab 15.15 Uhr (Indian Standard Time) zu platzieren und alle FVG-Arrays zu entfernen, um den nächsten Handelstag vorzubereiten.

  5. ÜberschneidungDie Strategie erlaubt bis zu fünf Überlagerungen, was bedeutet, dass mehrere Positionen in derselben Richtung gehalten werden können, um die Gewinne in einem stark trendigen Markt zu erhöhen.

Diese Methode nutzt die Theorie der Diskontinuität in der Marktstruktur und des Preisverhaltens, um zu versuchen, das vorhersehbare Verhalten der Preise zu erfassen, wenn sie diese ungleichen Bereiche füllen.

Strategische Vorteile

Nach einer eingehenden Analyse des Codes zeigte sich, dass diese Strategie mehrere Vorteile hat:

  1. Objektive HandelsstandardsDie Strategie verwendet eindeutige mathematische Bedingungen zur Identifizierung von FVGs und Einstiegspunkten, um subjektive Urteile zu beseitigen und die Disziplin und Konsistenz der Transaktionen zu verbessern.

  2. Handel basierend auf MarktstrukturenDurch den Handel mit Fair Value Gaps konzentriert sich die Strategie auf die tatsächlichen Bereiche von Angebots- und Nachfrageungleichgewichten auf dem Markt, anstatt sich auf die Signale herkömmlicher Indikatoren zu verlassen, die oft hinter dem Preisverhalten zurückbleiben.

  3. Risikokontrollmechanismen

    • Der Stop-Loss-Voranschlag definiert das maximale Risiko für jede Transaktion.
    • Die Gewinne bei einem festen Risiko-Return sind höher als die Gewinnraten, die für langfristige Gewinne erforderlich sind.
    • Die Zwangsvereinigung am Ende des Tages beseitigt die Gefahr der Übernachtung.
  4. Verbundene GewinnpotenzialeDie Strategie ermöglicht eine deutliche Erhöhung des Ertrags in einem stark trendigen Markt, indem sie überlagernde Transaktionen (bis zu 5 Positionen) erlaubt, während die Risiken für jede Position durch Stop-Loss kontrolliert werden.

  5. AnpassungsfähigkeitDie Strategie hängt nicht von festen Preisniveaus ab, sondern identifiziert dynamisch Schlüsselbereiche unter den aktuellen Marktbedingungen, so dass sie in verschiedenen Marktumgebungen und -instrumenten anpassungsfähig sind.

  6. ProgrammiereffizienzDer Code verwendet Arrays, um FVG-Informationen zu speichern und mehrere potenzielle Handelsmöglichkeiten effektiv zu verwalten, um sicherzustellen, dass das System mehrere Preisniveaus verfolgen und darauf reagieren kann.

  7. Visuelle UnterstützungStrategie: Die FVG-Bereiche werden auf der Grafik visuell dargestellt (grün für die Bisex-FVG, rot für die Bewertungs-FVG), um den Händlern zu helfen, den Entscheidungsprozess des Systems zu verstehen.

Strategisches Risiko

Obwohl die Strategie eine solide theoretische Grundlage und viele Vorteile hat, gibt es einige Risikofaktoren, die zu beachten sind:

  1. Falsche DurchbruchgefahrIn der Marktrechnung kann der Preis mehrmals die FVG-Grenze berühren, ohne einen anhaltenden Trend zu bilden, was zu mehreren Stop-Loss-Ausgängen führt. Die Lösung kann das Hinzufügen von zusätzlichen Marktumfeldfiltern oder Trendbestätigungsindikatoren umfassen.

  2. ÜberschneidungsrisikenEs wird empfohlen, allgemeine Risikobeschränkungen einzuführen, beispielsweise, dass das maximale Risiko für alle Positionen einen bestimmten Prozentsatz der Konten nicht übersteigt.

  3. Einschränkungen des Fixed-Risk-Return-RatioDie Verwendung eines festen Risico-Rendite-Verhältnisses von 1:2 ist möglicherweise nicht für alle Marktbedingungen geeignet. In Märkten mit geringer Volatilität kann es schwierig sein, ein solches Ziel zu erreichen. In Märkten mit hoher Volatilität kann es möglich sein, vorzeitig aus rentablen Geschäften auszutreten.

  4. Mangelnde Filterung der MarktumgebungDie Strategie erzeugt Signale unter allen Marktbedingungen, ohne Rücksicht auf die Gesamttrend- oder Schwankungslage. In einem stark trendigen Umfeld kann der Handelsrückschlag FVG zu einem anhaltenden Verlust führen. Das Hinzufügen von Trendfiltern kann die Leistung erheblich verbessern.

  5. Fehlende Bestätigung von TransaktionenDie Strategie basiert nur auf dem Preisverhalten und berücksichtigt keine Bestätigung des Handelsvolumens, was zu falschen Signalen in Bereichen mit niedrigem Handelsvolumen führen kann. Die Integration der Handelsvolumenanalyse kann die Signalqualität verbessern.

  6. Potenzielle Probleme bei der Festlegung von AusreisezeitenDas Ergebnis: Ein Ausstieg zu bestimmten Tageszeiten kann zu einem vorzeitigen Ausstieg in einer günstigen Position führen oder zu einem verpassten besseren Ausstieg in einer ungünstigen Position.

  7. Verlassen auf historische RückverfolgungStrategische Hypothesen: Das Verhalten zukünftiger FVGs wird ähnlich sein wie in der Vergangenheit beobachtete Modelle. Marktdynamiken können sich ändern und die Effektivität dieser Modelle schwächen. Es ist wichtig, die Parameter regelmäßig neu zu optimieren und die Hypothesen zu überprüfen.

Richtung der Strategieoptimierung

Basierend auf einer eingehenden Analyse des Codes sind hier einige mögliche Optimierungsmöglichkeiten:

  1. Marktstrukturfilter

    • Ein höheres Niveau der Trenderkennung, die nur in Richtung der Tendenz handelt.
    • Ein einfacher Filter für die Bewegungsmittelrichtung oder eine komplexere Analyse der Marktstruktur können hinzugefügt werden.
    • Ein solcher Filter kann die Gewinne im Gegengeschäft erheblich reduzieren.
  2. Volatilitätsanpassung

    • Erreichen von dynamischen Stop-Loss- und Gewinnzielen, die auf der aktuellen Marktvolatilität basieren, anstatt eine feste RRR zu verwenden.
    • Zielvorgaben werden bei hoher Volatilität erweitert und bei geringer Volatilität verschärft.
    • Die Volatilität kann mit dem ATR (Average True Range) oder ähnlichen Indikatoren quantifiziert werden.
  3. Bestätigung des Transaktionsvolumens

    • Hinzufügen von Volumenbedingungen, um sicherzustellen, dass die FVG genügend Volumenunterstützung bei der Bildung und Rückmessung hat.
    • Dies reduziert Falschsignale in einer Umgebung mit geringer Mobilität.
  4. Anpassung der Positionsgröße

    • Dynamische Positionsgrößen basierend auf historischen Gewinnraten, aktueller Volatilität und bestimmten FVG-Charakteristiken.
    • Für eine “sauberere” FVG (eine klarere Dreilinie) oder eine FVG, die sich in einem starken Trend bildet, kann die Positionsgröße erhöht werden.
  5. Mehrfache Zeitrahmenanalyse

    • Integration von FVG-Analysen für höhere Zeitrahmen mit Vorrang für Signale, die mit höheren Zeitrahmen ausgerichtet sind.
    • Diese Methode verbessert die Signalqualität und die Gesamterfolgsrate.
  6. Intelligente Überschneidungen

    • Die Überschneidungslogik wurde geändert, so dass sie auf der Stärke des Trends und dem Erfolg früherer Geschäfte basiert.
    • Die Wahrscheinlichkeit von Überschneidungen kann nach gewinnbringenden Geschäften erhöht und nach verlustbringenden Geschäften verringert werden.
  7. Maschinelles Lernen verstärkt

    • Die Implementierung von Machine Learning-Algorithmen zur Identifizierung der FVG-Eigenschaften, die am ehesten erfolgreich sind.
    • Dies kann die Analyse der Größe der FVG, der Geschwindigkeit ihrer Bildung und der Marktbedingungen umfassen.
  8. Statistische Rückmeldungsrahmen

    • Entwicklung eines umfassenderen Feedback-Frameworks zur Bewertung der Strategie-Performance unter unterschiedlichen Marktbedingungen.
    • Die Monte-Carlo-Simulation wird verwendet, um die erwarteten Ergebnisse unter verschiedenen Kombinationen von Parametern und Marktbedingungen zu bewerten.

Zusammenfassen

Die Dynamic Fair Value Gap intraday Trading Strategie bietet eine systematische Methode zur Identifizierung und Handel von Bereichen von Angebots- und Nachfrage-Ungleichgewichten in den Märkten. Durch die Nutzung des Drei-Strahl-FVG-Modells und der eindeutigen Rückmeldung der Einstiegsregeln hat die Strategie sowohl theoretische Solidität als auch praktische Funktionalität. Ihr starker Risikomanagement-Framework, einschließlich einer vordefinierten Stop-Loss- und Fixed-Risk-Return-Ratio und einer Tagesendeposition, bietet eine solide Grundlage für Handelsdisziplin.

Die Hauptvorteile der Strategie liegen in ihrer Objektivität und in ihrer marktstrukturbasierten Methode, die es ermöglicht, in verschiedenen Marktumgebungen relevant zu bleiben. Die Wirksamkeit der Strategie kann jedoch durch die Umsetzung der empfohlenen Optimierungsrichtung, insbesondere durch die Hinzufügung von Filtern für die Marktumgebung, Anpassungen basierend auf Volatilität und die Bestätigung von Transaktionen, erheblich verbessert werden.

Es ist erwähnenswert, dass keine Handelsstrategie, wie perfekt sie auch sein mag, den Erfolg garantiert. Erfolgreiche Geschäfte erfordern nicht nur eine solide Strategie, sondern auch strenge Disziplin bei der Durchführung, angemessene Kapitalverwaltung und ein tiefes Verständnis des Marktes. Die dynamische Fair Value Gap Strategie bietet einen guten Ausgangspunkt, den der Händler weiter anpassen und optimieren kann, je nach seiner Risikoverantwortung und Marktsicht.

Strategiequellcode
/*backtest
start: 2024-03-26 00:00:00
end: 2025-03-25 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Intraday FVG", overlay=true, pyramiding=5, max_bars_back=500, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent)

// 2. FVG Detection (Three-Candle Pattern)
var bullFVGHigh = array.new_float()
var bullFVGLow = array.new_float()
var bullFVGIndex = array.new_int()
var bearFVGHigh = array.new_float()
var bearFVGLow = array.new_float()
var bearFVGIndex = array.new_int()

detectFVG() =>

    // Bullish FVG: Current low > prior high AND next high < current low
    bullCondition = low > high[2] and close[1] > high[2]
    // Bearish FVG: Current high < prior low AND next low > current high
    bearCondition = high < low[2] and close[1] < low[2]


    if bullCondition 
        // log.info("bull condition met: {0} {0} {0}", high[2], close[1], low)
        array.push(bullFVGHigh, low)
        array.push(bullFVGLow, low[2])
        array.push(bullFVGIndex, bar_index)

    
    if bearCondition
        // log.info("bear condition met: {0} {0} {0}", low[2], close[1], high)
        array.push(bearFVGHigh, high[2])
        array.push(bearFVGLow, high)
        array.push(bearFVGIndex, bar_index)

detectFVG()

// 3. Retest Execution Logic
checkRetests(arrayHigh, arrayLow, barIndex, direction) =>
    // log.info("{0} : {1}", bar_index, time)
    i = array.size(arrayHigh) - 1
    
    while i >= 0

        // log.info("barIndex : {0}" , array.get(barIndex, i))
        // log.info("bar_index : {0}" , bar_index)
        
        if array.get(barIndex, i) <  bar_index
            
            fvgHigh = array.get(arrayHigh, i)
            fvgLow = array.get(arrayLow, i)
            // log.info("visting : {0} : {1} : {2} : {3} ", array.get(barIndex, i), bar_index, fvgHigh, fvgLow)
            
            if direction == "long" and low <= fvgHigh
                // log.info("entering long")
                sl = array.get(arrayLow, i)  // Previous candle's low
                entry = close
                tp = entry + (entry - sl)*2
                strategy.entry("L"+str.tostring(array.get(barIndex, i)), strategy.long)
                strategy.exit("XL"+str.tostring(array.get(barIndex, i)), "L"+str.tostring(array.get(barIndex, i)), stop=sl, limit=tp)
                array.remove(arrayHigh, i)
                array.remove(arrayLow, i)
                array.remove(barIndex, i)
            
            if direction == "short" and high >= fvgLow
                // log.info("entering short")
                sl = array.get(arrayHigh, i)   // Previous candle's low
                entry = close
                tp = entry - (sl - entry)*2
                strategy.entry("S"+str.tostring(array.get(barIndex, i)), strategy.short)
                strategy.exit("XS"+str.tostring(array.get(barIndex, i)), "S"+str.tostring(array.get(barIndex, i)), stop=sl, limit=tp)
                array.remove(arrayHigh, i)
                array.remove(arrayLow, i)
                array.remove(barIndex, i)
        
        i := i - 1


checkRetests(bullFVGHigh, bullFVGLow, bullFVGIndex, "long")
checkRetests(bearFVGHigh, bearFVGLow, bearFVGIndex,"short")

// 5. Daily Exit at 3:15 PM IST
exitTime = hour == 15 and minute >= 15
if exitTime
    strategy.close_all()
    array.clear(bullFVGHigh)
    array.clear(bullFVGLow)
    array.clear(bearFVGHigh)
    array.clear(bearFVGLow)
    array.clear(bullFVGIndex)
    array.clear(bearFVGIndex)