Die Ressourcen sind geladen. Beförderung...

Statistik der doppelten Standardabweichung VWAP Breakout-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2025-01-06 16:30 Uhr
Tags:VWAPS.D.VOLHL2

img

Übersicht

Diese Strategie ist ein Trend-Breakthrough-System, das auf VWAP (Volume Weighted Average Price) und Standardabweichungskanälen basiert. Sie konstruiert eine dynamische Preisspanne durch Berechnung von VWAP und Standardabweichungsbändern, um Aufbruchchancen zu erfassen. Die Strategie stützt sich hauptsächlich auf Standardabweichungsbänder-Breakthrough-Signale für den Handel mit Gewinnzielen und Auftragsintervallen zur Risikokontrolle.

Strategieprinzipien

  1. Berechnung der Kernindikatoren:
  • Berechnung des VWAP unter Verwendung von Intraday-HL2-Preisen und -Volumen
  • Berechnung der Standardabweichung aufgrund der Preisvolatilität
  • 1.28 mal Standardabweichung der oberen und unteren Bands
  1. Handelslogik:
  • Eintrittsbedingung: Preis überschreitet den unteren Bereich und steigt darüber
  • Ausgangskondition: erreicht vorgegebenes Gewinnziel
  • Mindestaufträge, um häufigen Handel zu vermeiden

Strategische Vorteile

  1. Statistische Stiftung
  • Referenz für das VWAP-basierte Preiszentrum
  • Volatilitätsmessung mit Standardabweichung
  • Dynamische Anpassung des Handelsbereichs
  1. Risikokontrolle
  • Festgewinnzielfestlegung
  • Kontrolle der Handelsfrequenz
  • Langzeitstrategie reduziert das Risiko

Strategische Risiken

  1. Marktrisiken
  • Falsche Ausbrüche bei hoher Volatilität
  • Schwierigkeiten bei der genauen Zeitplanung von Trendumkehrungen
  • Erhöhte Verluste auf Abwärtstrendmärkten
  1. Parameterrisiken
  • Empfindlichkeit gegenüber den Einstellungen des Multiplikators für Standardabweichungen
  • Gewinnzieloptimierung erforderlich
  • Handelsintervalle beeinflussen die Performance

Optimierungsrichtlinien

  1. Signaloptimierung
  • Trendfilter hinzufügen
  • Bestätigung der Volumenänderung einfügen
  • Zusätzliche technische Indikatoren enthalten
  1. Optimierung des Risikomanagements
  • Dynamische Stop-Loss-Platzierung
  • Positionsgröße basierend auf der Volatilität
  • Verbessertes Auftragsmanagementsystem

Zusammenfassung

Es handelt sich um eine quantitative Handelsstrategie, die statistische Prinzipien und technische Analysen kombiniert. Durch die Kombination von VWAP und Standardabweichungsbändern baut es ein relativ zuverlässiges Handelssystem auf. Die Kernvorteile liegen in seiner wissenschaftlichen statistischen Grundlage und umfassenden Risikokontrollmechanismen, aber eine kontinuierliche Optimierung von Parametern und Handelslogik ist in praktischen Anwendungen immer noch erforderlich.


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

//@version=5 
strategy("VWAP Stdev Bands Strategy (Long Only)", overlay=true)

// Standard Deviation Inputs
devUp1 = input.float(1.28, title="Stdev above (1)")
devDn1 = input.float(1.28, title="Stdev below (1)")

// Show Options
showPrevVWAP = input(false, title="Show previous VWAP close?")
profitTarget = input.float(2, title="Profit Target ($)", minval=0) // Profit target for closing orders
gapMinutes = input.int(15, title="Gap before new order (minutes)", minval=0) // Gap for placing new orders

// VWAP Calculation
var float vwapsum = na
var float volumesum = na
var float v2sum = na
var float prevwap = na // Track the previous VWAP
var float lastEntryPrice = na // Track the last entry price
var int lastEntryTime = na // Track the time of the last entry

start = request.security(syminfo.tickerid, "D", time)
newSession = ta.change(start)

vwapsum := newSession ? hl2 * volume : vwapsum[1] + hl2 * volume
volumesum := newSession ? volume : volumesum[1] + volume
v2sum := newSession ? volume * hl2 * hl2 : v2sum[1] + volume * hl2 * hl2

myvwap = vwapsum / volumesum
dev = math.sqrt(math.max(v2sum / volumesum - myvwap * myvwap, 0))

// Calculate Upper and Lower Bands
lowerBand1 = myvwap - devDn1 * dev
upperBand1 = myvwap + devUp1 * dev

// Plot VWAP and Bands with specified colors
plot(myvwap, style=plot.style_line, title="VWAP", color=color.green, linewidth=1)
plot(upperBand1, style=plot.style_line, title="VWAP Upper (1)", color=color.blue, linewidth=1)
plot(lowerBand1, style=plot.style_line, title="VWAP Lower (1)", color=color.red, linewidth=1)

// Trading Logic (Long Only)
longCondition = close < lowerBand1 and close[1] >= lowerBand1 // Price crosses below the lower band

// Get the current time in minutes
currentTime = timestamp("GMT-0", year(timenow), month(timenow), dayofmonth(timenow), hour(timenow), minute(timenow))

// Check if it's time to place a new order based on gap
canPlaceNewOrder = na(lastEntryTime) or (currentTime - lastEntryTime) >= gapMinutes * 60 * 1000

// Close condition based on profit target
if (strategy.position_size > 0)
    if (close - lastEntryPrice >= profitTarget)
        strategy.close("B")
        lastEntryTime := na // Reset last entry time after closing

// Execute Long Entry
if (longCondition and canPlaceNewOrder)
    strategy.entry("B", strategy.long)
    lastEntryPrice := close // Store the entry price
    lastEntryTime := currentTime // Update the last entry time

    // Add label for the entry
    label.new(bar_index, close, "B", style=label.style_label_down, color=color.green, textcolor=color.white, size=size.small)

// Optional: Plot previous VWAP for reference
prevwap := newSession ? myvwap[1] : prevwap[1]
plot(showPrevVWAP ? prevwap : na, style=plot.style_circles, color=close > prevwap ? color.green : color.red)

Verwandt

Mehr