Futures Value Area Reversal Strategie basierend auf der 80%-Regel

ETH VOL POC VAH VAL TPO
Erstellungsdatum: 2025-07-17 15:50:07 zuletzt geändert: 2025-07-17 15:50:07
Kopie: 0 Klicks: 226
2
konzentrieren Sie sich auf
319
Anhänger

Futures Value Area Reversal Strategie basierend auf der 80%-Regel Futures Value Area Reversal Strategie basierend auf der 80%-Regel

Überblick

Die Futures-Value-Area-Umkehrstrategie, die auf dem 80%-Regel basiert, ist ein quantitatives Handelssystem, das speziell für die Validierung der klassischen 80%-Regel entwickelt wurde. Die Kernidee der Strategie besteht darin, die Umkehrchancen zu erfassen, die sich nach dem Wiedereintritt des Preises in die Value-Area des vorangegangenen Handelstages ergeben. Die Strategie läuft innerhalb eines genau definierten ETH-Futures-Handelszeitraums, in dem das System ein Handelssignal auslöst, wenn der Preis in die Value-Area des vorangegangenen Tages zurückkehrt und sich genügend Zeit in dieser Region aufhält.

Strategieprinzip

Die Strategie basiert auf dem Prinzip der Markttrend-Mean-Value-Regression und konzentriert sich insbesondere auf die Beziehung zwischen Preisen und Wertgebieten. Die Kernlogik der Strategie umfasst:

  1. Definition der ZeitspanneDie Strategie ist auf den echten 22-Stunden-ETH-Futureschutz festgelegt (ab 17:00 Uhr Pacific-Zeit bis 15:00 Uhr am nächsten Tag) und unterstützt die Einstellung der globalen Zeitzonen. Dies stellt sicher, dass die Strategie in der richtigen Marktumgebung ausgeführt wird.

  2. Berechnung der WertebereicheDas System berechnet automatisch die Höchstpunkte der Wertzone (VAH), die Tiefpunkte der Wertzone (VAL) und die Preiskontrollpunkte (POC):

    • Der Wertbereich ist definiert als 68% der Tageshoch-Low-Punkt-Differenz (Standard-Differenz-Bereich)
    • VAH und VAL berechnet durch Hoch-Low-Punkte und Wertspiegelbereich
    • POC berechnet sich als ((Höchster Preis + niedrigerer Preis + Abschlusspreis) / 3
  3. Signalbestätigung: Der Preis muss in die Wertzone zurückkehren und mindestens 45 Minuten in der Region bleiben (die 3 K-Linien auf dem 15-Minuten-Chart), um das Eintrittssignal zu bestätigen. Diese Anforderung stellt die Echtheit der Preisumkehrbestimmung sicher.

  4. Wirksamkeitsdatum des Filters:

    • Mehrtägige Gültigkeit: Tagsschluss unterhalb der VAL
    • Aktiver Börsenstillstand: Schlusskurs höher als VAH
  5. Auslösungsbedingungen:

    • Mehrköpfige Signal: Bei mehrtägiger Wirksamkeit geht der Preis von unten in die Wertezone zurück, hält die 3 K-Linien in der Zone und übertragt die VAL
    • Hoher Signal: Der Preis kehrt an einem effektiven freien Tag von oben in die Wertezone zurück, hält die 3 K-Linien in der Zone und überwacht die VAH
  6. AusstiegsstrategieDas Hauptziel ist, auszusteigen, wenn der Preis POC erreicht, was der Kernidee der Mittelwertrückkehr entspricht.

Strategische Vorteile

  1. Grundlegende StatistikenDie Strategie basiert auf den Wertzonen und der 80%-Regel, die beide auf einer soliden statistischen Grundlage beruhen. Die Wertzonen repräsentieren die Bereiche, in denen 68% der Preisaktivität stattfinden, ähnlich wie eine Standarddifferenz der normalen Verteilung.

  2. Genaue Definition des HandelsfenstersStrategie: Die Verwendung eines echten 22-Stunden-ETH-Futureschaltfensters anstelle eines einfachen Tagesintervalls, was die Struktur des Marktes genauer widerspiegelt.

  3. Flexible ZeitzoneGlobaler Händler können ihre Strategien an ihre geografische Lage anpassen, so dass das System in jeder Zeitzone funktioniert.

  4. Strenge SignalbestätigungDie Anforderung, dass der Preis mindestens 3 K-Linien innerhalb des Wertbereichs hält, um ein Signal zu bestätigen, reduziert die Wahrscheinlichkeit eines falschen Signals erheblich.

  5. Genaue Ziele setzen: Die Verwendung von POC als primäres Ziel bietet klare Vorteile und entspricht den üblichen Mittelwert-Rückgangseigenschaften der Futures-Märkte.

  6. Doppelte Verifizierung: Der Preis wird nicht nur in die Wertezone zurückgefordert, sondern auch die Grenze ((VAL oder VAH) zurückgefordert, was die Zuverlässigkeit des Signals erhöht.

  7. HandschaltmodusWenn die automatische Logik nicht ausreicht, um spezielle Marktbedingungen zu bewältigen, erlaubt die Strategie den Händlern, manuell eingestellte Wertzone-Levels zu verwenden.

  8. Debug-Funktionen: bietet detaillierte Diagnose-Etiketten, die bei der Entwicklung von Strategien und Tests in der Zukunft helfen.

Strategisches Risiko

  1. Rückgang der Durchschnittswerte zum Risiko der NiederlageObwohl die 80%-Regel in vielen Fällen wirksam ist, kann es zu starken Trends auf dem Markt kommen, die den Preis nicht in die POC zurückführen. Um dieses Risiko zu verringern, kann man erwägen, einen Trendfilter hinzuzufügen oder einen Stop-Loss-Punkt einzurichten.

  2. ParameterempfindlichkeitDie Bestätigungsanforderung für 3 K-Linien (<45 Minuten) ist ein Schlüsselparameter. Zu kurz kann zu einer vorzeitigen Aufnahme führen, zu lang kann zu einer verpassten Chance führen. Es wird empfohlen, verschiedene Bestätigungszeit-Einstellungen unter verschiedenen Marktbedingungen zu testen.

  3. Abhängigkeit vom MarktumfeldDie Strategie funktioniert am besten in einem zwischenstaatlich bewegten Markt, kann aber in einem stark trendigen oder hochschwankenden Umfeld schlechter abschneiden. Ein zusätzlicher Filter für die Marktumgebung sollte in Betracht gezogen werden.

  4. Die Zeit wählt RisikenDie Performance einer Strategie kann von der gewählten Handelszeit beeinflusst werden (New York, London, Tokio oder ganztägig). Es wird empfohlen, die historische Performance der verschiedenen Handelszeiten zu analysieren, um die optimale Zeit zu wählen.

  5. Einschränkungen der BerechnungsmethodeDie Berechnung des POCs mit einer festen 68-Prozent-Bereichs und einer vereinfachten Berechnung kann die tatsächliche Wertverteilung in einigen Märkten nicht genau widerspiegeln. Es kann besser sein, die Berechnung der Wertzonen auf der Grundlage des Umsatzes zu berücksichtigen.

  6. Fehlende SchadensbegrenzungEs wird empfohlen, eine Stop-Loss-Einstellung auf Basis von ATR oder festen Prozentsätzen einzuführen.

Richtung der Strategieoptimierung

  1. Dynamische BestätigungsbedingungenDie aktuelle Strategie verwendet eine feste 3-K-Linie als Bestätigungsvoraussetzung, wobei die Bestätigungszeit in Zeiten hoher Volatilität länger sein kann, während sie in Zeiten niedriger Volatilität kürzer sein kann.

  2. Wertgebiete basierend auf der TransaktionsmengeDie Berechnung der aktuellen Wertebereiche ist eine vereinfachte, preisbasierte Methode. Sie kann auf eine TPO-Analyse (Time Price Opportunity) oder eine Volumenverteilung (Volume Profile) aufbauen, die die allgemein anerkannten Wertebereiche der Marktteilnehmer genauer widerspiegelt.

  3. Mehrfache ZeitrahmenbestätigungWenn Sie die Richtung des Trends in Verbindung mit einem größeren Zeitrahmen filtern, können Sie die Rückwärtssignale filtern und nur die 80%-Regel des Handels signalisieren, was die Erfolgsrate der Strategie erhöhen kann.

  4. Anpassung der ZielvorgabenEs kann in Erwägung gezogen werden, dynamische Ziele zu setzen, die auf die Marktvolatilität zugeschnitten sind, z. B. in einem hochflüchtigen Markt, um weiter entfernte Ziele (z. B. VAH oder VAL) zu setzen.

  5. Schwankungsratefilter: Hinzufügen von ATR oder anderen Volatilitätsindikatoren als Filterbedingungen, um den Handel in einem äußerst schwachen oder extrem schwachen Marktumfeld zu vermeiden.

  6. Optimierung der ZeitspanneDie Strategie wurde von der Bank of America entwickelt, um die Entwicklung der Handelszeitzonen und -zeiten zu analysieren und die optimale Kombination von Handelszeiten zu ermitteln.

  7. Intelligente SchadensbegrenzungUmsetzen von intelligenten Stop-Logiken, z. B. Stopps auf Basis von Support/Resistance-Punkten oder Tracking-Stopps auf Basis von Preisschwankungen, um Risiken besser zu verwalten.

  8. Signalstärke-Rating: Entwicklung eines Signalqualitätsbewertungssystems, das die Stärke des Preis Wiedereintritts, die Merkmale der Bestätigung der K-Linie und andere Marktfaktoren kombiniert und jedem Signal eine Stärkebewertung zuteilt, um die Größe der Position zu bestimmen.

Zusammenfassen

Die auf dem 80%-Regel basierende Futures Value Zone Reversal Strategy ist ein sorgfältig konzipiertes, quantitatives Handelssystem, das darauf abzielt, die Reversalchancen zu erfassen, wenn der Preis wieder in die Value Zone eintritt. Es bietet den Händlern eine systematische Methode, um die klassische 80%-Regel des Handels durch strenge Signalbestätigungsmechanismen, präzise Zeitabschnitte und klare Zielsetzung anzuwenden.

Die Hauptvorteile der Strategie liegen in ihrer statistischen Grundlage, strengen Signalbestätigungsanforderungen und flexiblen Konfigurationsoptionen. Es bestehen jedoch auch Risiken wie Durchschnittswertrückgangsfehler, Parameter-Sensitivität und Abhängigkeit von Marktbedingungen. Die Robustheit und Anpassungsfähigkeit der Strategie kann durch die Implementierung von Optimierungsmaßnahmen wie dynamische Bestätigungsbedingungen, Berechnung von Wertregionen auf Basis von Transaktionsmengen, Bestätigung mehrerer Zeiträume und Anpassungszielstellung deutlich verbessert werden.

Für Händler, die eine Mean Return-Strategie für den Futures-Markt suchen, bietet dieses System, das auf dem 80%-Regel basiert, einen soliden Startpunkt, der nach individuellen Risikopräferenzen und Marktaussichten weiter angepasst und optimiert werden kann.

Strategiequellcode
/*backtest
start: 2025-07-09 00:00:00
end: 2025-07-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_OKX","currency":"SOL_USDT","balance":200000}]
*/

// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dscottmuller

// === Update July 15, 2025 ===
// • Converted to strategy for backtesting
// • POC-based exits for precision targeting
// • Full move markers for research tracking
// • Global time zone input (default: America/Los_Angeles)

//@version=5
strategy("80% Rule Backtest", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === General Inputs ===
useAllMarkets    = input.bool(false, "Use 24-Hour Session (All Markets)")
sessionChoice    = input.string("New York", "Market Session", options=["New York", "London", "Tokyo"])
showSessionBox   = input.bool(false, "Highlight Selected Session")
enableSounds     = input.bool(false, "Enable Audible Alerts")
extendLines      = input.bool(true,  "Extend Lines Right")

// === Advanced Session Settings ===
group = "Advanced Session Settings"
showAutoLevels   = input.bool(true, "Show Auto-Calculated VAH/POC/VAL", group=group)
useManualLevels  = input.bool(false, "Use Manual VAH/POC/VAL", group=group)
manualVAH        = input.float(0.0, "Manual VAH", group=group)
manualVAL        = input.float(0.0, "Manual VAL", group=group)
manualPOC        = input.float(0.0, "Manual POC", group=group)
debugMode        = input.bool(false, "Enable Debug Mode", group=group)

// === Time Zone Selection ===
sessionTZ = input.string("America/Los_Angeles", "ETH Session Timezone",
 options=[
     "America/Los_Angeles",  // Default: Pacific Time
     "America/New_York", 
     "America/Chicago", 
     "America/Denver", 
     "Europe/London", 
     "Europe/Paris", 
     "Asia/Tokyo", 
     "Australia/Sydney"
 ], group=group)

// === Market Session Filter ===
nySession     = time(timeframe.period, "0930-1600", "America/New_York")
londonSession = time(timeframe.period, "0800-1630", "Europe/London")
tokyoSession  = time(timeframe.period, "0900-1500", "Asia/Tokyo")
allSession    = time(timeframe.period, "0000-0000")
inSession = useAllMarkets ? not na(allSession) : sessionChoice == "New York" ? not na(nySession) : sessionChoice == "London"   ? not na(londonSession) : sessionChoice == "Tokyo"    ? not na(tokyoSession) : false
bgcolor(showSessionBox and inSession ? color.new(color.blue, 90) : na)

// === ETH Session Window (22-Hour Futures) ===
ethStart = timestamp(sessionTZ, year, month, dayofmonth - 1, 17, 00)
ethEnd   = timestamp(sessionTZ, year, month, dayofmonth,     15, 00)
inEthWindow = time("30") >= ethStart and time("30") <= ethEnd

ethHigh  = inEthWindow ? high : na
ethLow   = inEthWindow ? low  : na
ethClose = inEthWindow ? close : na

extHigh  = ta.highest(ethHigh, 100)
extLow   = ta.lowest(ethLow, 100)
extClose = ta.valuewhen(not na(ethClose), ethClose, 0)

// === Value Area Calculations ===
vaRange = (extHigh - extLow) * 0.68
vah = extHigh - ((extHigh - extLow - vaRange) / 2)
val = extLow  + ((extHigh - extLow - vaRange) / 2)
poc = (extHigh + extLow + extClose) / 3

finalVAH = useManualLevels ? manualVAH : vah
finalVAL = useManualLevels ? manualVAL : val
finalPOC = useManualLevels ? manualPOC : poc

// === Signal Logic ===
validLongDay  = extClose < finalVAL
validShortDay = extClose > finalVAH

insideVA = close > finalVAL and close < finalVAH
reenteredFromBelow = validLongDay and close > finalVAL
reenteredFromAbove = validShortDay and close < finalVAH

var int barsInside = 0
barsInside := ta.change(time("D")) ? 0 : insideVA ? barsInside + 1 : 0
insideConfirmed = barsInside >= 3

retestVAL = validLongDay and low <= finalVAL
retestVAH = validShortDay and high >= finalVAH

longSignal  = inSession and validLongDay and reenteredFromBelow and insideConfirmed and retestVAL
shortSignal = inSession and validShortDay and reenteredFromAbove and insideConfirmed and retestVAH

longBar  = longSignal and not longSignal[1]
shortBar = shortSignal and not shortSignal[1]

// === Strategy Entries ===
if longBar
    strategy.entry("Long", strategy.long, comment="80% Long Signal")

if shortBar
    strategy.entry("Short", strategy.short, comment="80% Short Signal")

// === Strategy Exits at POC ===
strategy.exit("Long to POC",  from_entry="Long",  limit=finalPOC)
strategy.exit("Short to POC", from_entry="Short", limit=finalPOC)

// === Track Full Move (Visual Only) ===
longFullHit  = longBar and high >= finalVAH
shortFullHit = shortBar and low  <= finalVAL

plotshape(longFullHit,  title="Full Move Long",  location=location.abovebar, color=color.green, style=shape.triangleup, text="FULL")
plotshape(shortFullHit, title="Full Move Short", location=location.belowbar, color=color.red,   style=shape.triangledown, text="FULL")

// === Debug Diagnostics ===
if debugMode and (longBar or shortBar)
    debugText = (useManualLevels ? "Manual Mode" : "Auto Mode") +  " | TZ: " + sessionTZ +  " | 80% Triggered | barsInside: " + str.tostring(barsInside)

    label.new(bar_index, close, debugText, xloc.bar_index, longBar ? yloc.belowbar : yloc.abovebar, style=label.style_label_left, textcolor=color.white, size=size.small, color=color.new(color.gray, 70))