Erweiterte Range Breakout Multi-Timeframe Handelsstrategie

HTF SMA PIN BAR RSI EMA VOL
Erstellungsdatum: 2025-02-18 18:08:09 zuletzt geändert: 2025-02-18 18:08:09
Kopie: 0 Klicks: 530
1
konzentrieren Sie sich auf
1617
Anhänger

Erweiterte Range Breakout Multi-Timeframe Handelsstrategie

Überblick

Die Strategie identifiziert potenzielle Handelschancen durch die Analyse von Chartformationen und Preisspanen in höheren Zeiträumen. Die Strategie integriert einen Transitvolumenfilter und eine dynamische Stop-Loss-Mechanik, um Trendchancen durch Durchbrüche von vorherigen Höhen und Tiefen zu erfassen.

Strategieprinzip

Der Kern der Strategie besteht darin, die Preise zu überschreiten, wenn sie in einem höheren Zeitrahmen (die Standardzeit ist 4 Stunden) brechen.

  1. Die Strategie verfolgt und speichert fortlaufend die Höhen und Tiefen der beiden vorherigen K-Linien mit hohen Zeiträumen
  2. Wenn der aktuelle K-Linie-Abschlusspreis unter dem vorherigen Hoch liegt und der aktuelle K-Linie-Innovationshoch, wird ein Shorting-Signal erzeugt
  3. Wenn ein aktueller K-Line-Knallpreis höher ist als ein früherer niedriger und die aktuelle K-Line-Innovation niedrig ist, wird ein Mehrwertsignal erzeugt
  4. Eintrittspreise werden an den Höhe- und Tiefpunkten der ausgelösten K-Linie festgelegt
  5. Die Gewinnziele sind in den entsprechenden Höhen- und Tiefpunkten der Vorphase gesetzt
  6. Die Stop-Loss-Distanz wird dynamisch angepasst, je nach Bandbreite

Strategische Vorteile

  1. Mehrzeit-Perioden-Analysen liefern zuverlässigere Signale
  2. Dynamische Stop-Loss-Einstellungen, die sich an Marktschwankungen anpassen
  3. Optionale Transaktionsvolumenfilter erhöhen die Bestätigung der Transaktion
  4. Klare visuelle Oberfläche, einschließlich Markierung von Triggerpreisen, Zielpreisen und Stop Losses
  5. Die Strategie ist einfach, klar und leicht zu verstehen und umzusetzen.
  6. Anwendbar für verschiedene Handelsarten und Marktbedingungen

Strategisches Risiko

  1. Häufige falsche Durchbruchsignale bei Zwischenbewegungen
  2. Eine größere Stop-Loss-Multiplikation kann zu einem zu hohen Einmalverlust führen
  3. Abhängigkeit von historischen Preisdaten, die in einem sich schnell verändernden Marktumfeld zurückbleiben können
  4. Der Einfluss grundlegender Faktoren wurde nicht berücksichtigt.
  5. In weniger liquiden Märkten kann dies schwierig sein.

Richtung der Strategieoptimierung

  1. Einführung von Trendfiltern wie Moving Averages oder ADX-Indikatoren
  2. Mehr Kriterien für die Marktumgebung
  3. Optimierung der Stop-Loss-Strategie und Erwägung der Einführung eines mobilen Stop-Losses
  4. Hinzufügen eines Moduls zur Verwaltung von Transaktionsvolumen
  5. Erwägen Sie, mehr Zeitzyklus-Kopplungsanalysen hinzuzufügen
  6. Einführung von Volatilitätsindikatoren zur Optimierung der Bandbreite

Zusammenfassen

Es handelt sich um eine strukturierte, logisch klare, mehrzeitige Handelsstrategie. Sie sucht nach potenziellen Trendchancen durch die Analyse des Preisverhaltens in höheren Zeitzyklen und integriert Risikomanagement und Filtermechanismen. Die Kernvorteile der Strategie liegen in ihrer Anpassungsfähigkeit und Skalierbarkeit, die sich an unterschiedliche Marktumgebungen anpassen können, indem sie mit einfachen Parameteranpassungen angepasst werden.

Strategiequellcode
/*backtest
start: 2025-01-18 00:00:00
end: 2025-02-17 00:00:00
period: 6h
basePeriod: 6h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Candle Range Theory Strategy", overlay=true)

// Input parameters
var string HTF = input.timeframe("240", "Higher Timeframe (Minutes)")  // 4H default
var float stopLossMultiplier = input.float(1.5, "Stop Loss Multiplier", minval=0.5)
var bool useVolFilter = input.bool(false, "Use Volume Filter")
var float volThreshold = input.float(1.5, "Volume Threshold Multiplier", minval=1.0)

// Function to get higher timeframe data
getHtfData(src) =>
    request.security(syminfo.tickerid, HTF, src)

// Calculate volume condition once per bar
var bool volCondition = true
if useVolFilter
    float vol = getHtfData(volume)
    float avgVol = ta.sma(vol, 20)
    volCondition := vol > avgVol * volThreshold

// Get HTF candle data
htf_open = getHtfData(open)
htf_high = getHtfData(high)
htf_low = getHtfData(low)
htf_close = getHtfData(close)

// Store previous candle data
var float h1 = na  // High of Candle 1
var float l1 = na  // Low of Candle 1
var float h2 = na  // High of Candle 2
var float l2 = na  // Low of Candle 2
var float prevClose = na

// Track setup conditions
var string setupType = na
var float triggerLevel = na
var float targetLevel = na
var float stopLevel = na

// Update candle data - fixed time function usage
var bool isNewBar = false
isNewBar := ta.change(request.security(syminfo.tickerid, HTF, time)) != 0

if isNewBar
    h1 := h2
    l1 := l2
    h2 := htf_high[1]
    l2 := htf_low[1]
    prevClose := htf_close[1]

    // Identify setup conditions
    if not na(h1) and not na(h2) and not na(prevClose)
        if (h2 > h1 and prevClose < h1)  // Short setup
            setupType := "short"
            triggerLevel := l2
            targetLevel := l1
            stopLevel := h2 + (h2 - l1) * stopLossMultiplier
        else if (l2 < l1 and prevClose > l1)  // Long setup
            setupType := "long"
            triggerLevel := h2
            targetLevel := h1
            stopLevel := l2 - (h1 - l2) * stopLossMultiplier
        else
            setupType := na
            triggerLevel := na
            targetLevel := na
            stopLevel := na

// Entry conditions using pre-calculated volume condition - fixed line breaks
bool longCondition = setupType == "long" and high > triggerLevel and not na(triggerLevel) and volCondition
bool shortCondition = setupType == "short" and low < triggerLevel and not na(triggerLevel) and volCondition

// Execute trades
if longCondition
    strategy.entry("Long", strategy.long, comment="Long Entry")
    strategy.exit("Long Exit", "Long", limit=targetLevel, stop=stopLevel)

if shortCondition
    strategy.entry("Short", strategy.short, comment="Short Entry")
    strategy.exit("Short Exit", "Short", limit=targetLevel, stop=stopLevel)

// Plot signals - fixed plotshape parameters
plotshape(series=longCondition, title="Long Signal", location=location.belowbar, color=color.green, style=shape.triangleup)
plotshape(series=shortCondition, title="Short Signal", location=location.abovebar, color=color.red, style=shape.triangledown)

plot(triggerLevel, "Trigger Level", color=color.yellow, style=plot.style_circles)
plot(targetLevel, "Target Level", color=color.blue, style=plot.style_circles)
plot(stopLevel, "Stop Level", color=color.red, style=plot.style_circles)