
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.
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.
SchlupfwinkelprüfungenStrategie: Es gibt zwei Arten von FVGs, die mit einem Drei-Strahl-Muster identifiziert werden:
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:
Risikomanagement:
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.
Ü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.
Nach einer eingehenden Analyse des Codes zeigte sich, dass diese Strategie mehrere Vorteile hat:
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.
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.
Risikokontrollmechanismen:
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.
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.
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.
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.
Obwohl die Strategie eine solide theoretische Grundlage und viele Vorteile hat, gibt es einige Risikofaktoren, die zu beachten sind:
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.
ÜberschneidungsrisikenEs wird empfohlen, allgemeine Risikobeschränkungen einzuführen, beispielsweise, dass das maximale Risiko für alle Positionen einen bestimmten Prozentsatz der Konten nicht übersteigt.
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.
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.
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.
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.
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.
Basierend auf einer eingehenden Analyse des Codes sind hier einige mögliche Optimierungsmöglichkeiten:
Marktstrukturfilter:
Volatilitätsanpassung:
Bestätigung des Transaktionsvolumens:
Anpassung der Positionsgröße:
Mehrfache Zeitrahmenanalyse:
Intelligente Überschneidungen:
Maschinelles Lernen verstärkt:
Statistische Rückmeldungsrahmen:
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.
/*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)