Ausbruchsstruktur und Volumenbestätigung – Multi-Conditional-Smart-Trading-Strategie

BOS SMA ATR TP SL
Erstellungsdatum: 2024-12-20 16:15:43 zuletzt geändert: 2024-12-20 16:15:43
Kopie: 0 Klicks: 442
1
konzentrieren Sie sich auf
1617
Anhänger

Ausbruchsstruktur und Volumenbestätigung – Multi-Conditional-Smart-Trading-Strategie

Überblick

Es handelt sich um eine intelligente Handelsstrategie, die auf einer Durchbruchstruktur (BOS) und einer Bestätigung des Handelsvolumens basiert. Die Strategie erzeugt ein Handelssignal durch die Überwachung von Preiskünften, die vorläufige Höhen oder Tiefen durchbrechen, und kombiniert die Bestätigung mit der Verstärkung des Handelsvolumens. Die Strategie verwendet eine mehrfache Bedingungsprüfung, einschließlich der Anforderung der Anzahl der Bestätigungen in Folge und der dynamischen Stop-Loss-Einstellung, um die Zuverlässigkeit des Handels und die Risikokontrolle zu verbessern.

Strategieprinzip

Die Kernlogik der Strategie umfasst die folgenden Schlüsselelemente:

  1. Identifizierung von strukturellen Höhen und Tiefen durch Berechnung von Höchst- und Tiefstpreisen in einem bestimmten Zeitraum
  2. Benchmark für den Umsatz, berechnet anhand eines beweglichen Durchschnitts, um zu beurteilen, ob der aktuelle Umsatz deutlich gestiegen ist
  3. Akkumulierte Mehrfachbestätigungen, wenn der Preis den vorherigen Höchststand überschreitet und der Umsatz steigt
  4. Akkumulative Bilanzbestätigungen, wenn der Preis von einem früheren Tiefpunkt zurückgegangen ist und die Transaktionsmenge gestiegen ist
  5. Das Transaktionssignal wird nur ausgelöst, wenn eine bestimmte Anzahl von Bestätigungen erreicht wurde.
  6. Der Stop-Loss-Preis nach dem Lagern ist prozentual festgelegt

Strategische Vorteile

  1. Mehrfach-Verifizierung verbessert die Zuverlässigkeit von Handelssignalen
  2. Zusammenfassende Verkehrsmesswerte, um Fehleinschätzungen durch falsche Durchbrüche zu vermeiden
  3. Die Verwendung einer kontinuierlichen Bestätigungsmechanik reduziert die Häufigkeit der Operationen und erhöht die Siegerquote.
  4. Dynamische Stop-Loss-Einstellungen, die automatisch die Ausstiegsposition an den Einstiegspreis anpassen
  5. Klare Strategie-Logik, sehr anpassungsfähige Parameter und eine gute Anpassungsfähigkeit

Strategisches Risiko

  1. Schwankende Märkte können häufige False-Breakouts verursachen, die zu einem anhaltenden Stop-Loss führen
  2. Die Stop-Loss-Position könnte unter starken Schwankungen nicht rechtzeitig sein.
  3. Bestätigungsmechanismen können zu Eintrittsverzögerungen führen und den besten Preis verpassen
  4. Die Standards für die Beurteilung des Umsatzes sind fest und können sich nicht gut an die Veränderungen der Marktlage anpassen. Lösung:
  • Einführung von Indikatoren für Marktfluktuation und dynamischen Anpassungsparametern
  • Mehr Trendfilter, weniger falsche Signale bei Marktschwankungen
  • Optimierung der Stop-Loss-Logik und Flexibilität bei Stop-Loss
  • Konzipieren Sie anpassungsfähige Methoden zur Berechnung der Lieferungsdämpfung

Richtung der Strategieoptimierung

  1. Hinzufügen von Trendmessungen, wie beispielsweise Moving Average-Systeme, die nur in Richtung der Tendenz handeln
  2. Einführung von ATR-Messgeräten zur dynamischen Anpassung der Stoppdistanz und zur Erhöhung der Flexibilität der Windkontrolle
  3. Design-Volatilitäts-anpassungsfähige Abwertungsmechanismen
  4. Ein Zeitfilter, um die gefährlichsten Zeiten zu vermeiden
  5. Optimierung der Bestätigungsmechanismen zur Verbesserung der Eignung bei der Zulassung bei gleichzeitiger Gewährleistung der Verlässlichkeit

Zusammenfassen

Es ist ein Strategie-System, das die klassische Theorie der technischen Analyse mit modernen Methoden des quantitativen Handels kombiniert. Die Strategie hat eine gute Stabilität und Zuverlässigkeit durch Multiple-Condition-Verifizierung und strenge Risikokontrolle. Obwohl es einige Aspekte gibt, die optimiert werden müssen, ist die Gesamtrahmenkonzeption vernünftig und hat einen guten Einsatzwert.

Strategiequellcode
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BOS and Volume Strategy with Confirmation", overlay=true)

// Parameters
swingLength = input.int(20, title="Swing Length", minval=1)
volumeMultiplier = input.float(1.1, title="Volume Multiplier", step=0.1)
volumeSMA_length = input.int(10, title="Volume SMA Length", minval=1)
takeProfitPercentage = input.float(0.02, title="Take Profit Percentage", step=0.01)
stopLossPercentage = input.float(0.15, title="Stop Loss Percentage", step=0.01)  // New parameter for stop loss
atrLength = input.int(14, title="ATR Length")
confirmationBars = input.int(2, title="Confirmation Bars", minval=1)

// Calculate Swing Highs and Lows
swingHigh = ta.highest(high, swingLength)[1]
swingLow = ta.lowest(low, swingLength)[1]

// Calculate Volume Moving Average
volumeSMA = ta.sma(volume, volumeSMA_length)
highVolume = volume > (volumeSMA * volumeMultiplier)

// Break of Structure Detection with Confirmation
var int bullishCount = 0
var int bearishCount = 0

if (close > swingHigh and highVolume)
    bullishCount := bullishCount + 1
    bearishCount := 0
else if (close < swingLow and highVolume)
    bearishCount := bearishCount + 1
    bullishCount := 0
else
    bullishCount := 0
    bearishCount := 0

bullishBOSConfirmed = (bullishCount >= confirmationBars)
bearishBOSConfirmed = (bearishCount >= confirmationBars)

// Entry and Exit Conditions
var float entryPrice = na  // Declare entryPrice as a variable

if (bullishBOSConfirmed and strategy.position_size <= 0)
    entryPrice := close  // Use ':=' for assignment
    strategy.entry("Long", strategy.long)

if (strategy.position_size > 0)
    // Calculate stop loss price
    stopLossPrice = entryPrice * (1 - stopLossPercentage)
    strategy.exit("Take Profit Long", from_entry="Long", limit=entryPrice * (1 + takeProfitPercentage), stop=stopLossPrice)

if (bearishBOSConfirmed and strategy.position_size >= 0)
    entryPrice := close  // Use ':=' for assignment
    strategy.entry("Short", strategy.short)

if (strategy.position_size < 0)
    // Calculate stop loss price
    stopLossPrice = entryPrice * (1 + stopLossPercentage)
    strategy.exit("Take Profit Short", from_entry="Short", limit=entryPrice * (1 - takeProfitPercentage), stop=stopLossPrice)

// Plot Swing Highs and Lows for Visualization
plot(swingHigh, title="Swing High", color=color.green, linewidth=1)
plot(swingLow, title="Swing Low", color=color.red, linewidth=1)