Handelsstrategie für Volumen- und Trendaggregation mit mehreren Zeitrahmen

FRVP AVWAP EMA RSI ADX MACD SMA ATR
Erstellungsdatum: 2025-04-02 16:15:52 zuletzt geändert: 2025-04-02 16:15:52
Kopie: 0 Klicks: 375
2
konzentrieren Sie sich auf
319
Anhänger

Handelsstrategie für Volumen- und Trendaggregation mit mehreren Zeitrahmen Handelsstrategie für Volumen- und Trendaggregation mit mehreren Zeitrahmen

Überblick

Dies ist eine komplexe Multi-Indicator-Handelsstrategie, die mehrere technische Analyse-Tools wie den durchschnittlich gewichteten Durchschnittspreis (AVWAP), die feste Bandbreite der Durchschnittsverteilung (FRVP), den Index-Moving-Average (EMA), den Relativ-Strength-Index (RSI), den Average Directional Index (ADX) und die Moving Average Convergence Divergence (MACD) kombiniert, um eine hohe Wahrscheinlichkeit für den Handel zu identifizieren.

Strategieprinzip

Die Strategie definiert das Eintrittssignal anhand mehrerer Bedingungen:

  1. Preise und Kreuzungen von AVWAP
  2. Position des Preises gegenüber der EMA
  3. Urteil über die Stärke des RSI
  4. MACD-Trenddynamik
  5. ADX-Trendstärke bestätigt
  6. Übertragungsfilter

Die Strategie konzentriert sich auf die Handelszeiten in Asien, London und New York, die in der Regel besser liquide sind und die Handelssignale zuverlässiger sind. Die Einstiegslogik umfasst sowohl Long- als auch Leerpositionsmodelle und bietet eine Steigungssperre und einen Stop-Loss-Mechanismus.

Strategische Vorteile

  1. Mehrindikator-Kombination zur Verbesserung der Signalgenauigkeit
  2. Dynamische Transaktionsvolumenfilter, um schlechte Transaktionen zu vermeiden
  3. Flexible Stop-Loss-Strategien
  4. Optimierung der Strategie für verschiedene Handelszeiten
  5. Dynamische Risikomanagementmechanismen
  6. Bildsignale zur Entscheidungsfindung

Strategisches Risiko

  1. Kombinationen von mehreren Indikatoren können zu einer erhöhten Signalkomplexität führen
  2. Risiko einer Überanpassung der Rückdaten
  3. Leistung kann unter verschiedenen Marktbedingungen instabil sein
  4. Transaktionskosten und Schlupfpunkte können sich auf die tatsächlichen Erträge auswirken

Richtung der Strategieoptimierung

  1. Einführung von dynamischen Anpassungsparametern für Machine Learning-Algorithmen
  2. Erhöhung der Zeitabschnittsanpassung
  3. Optimierung der Stop-Loss-Strategie
  4. Mehr Filterbedingungen eingeführt
  5. Entwicklung eines Modells für eine Strategie zur Allgemeingültigkeit zwischen Arten

Zusammenfassen

Es handelt sich um eine hochgradig maßgeschneiderte und multidimensionale Handelsstrategie, die versucht, die Qualität und Genauigkeit der Handelssignale zu verbessern, indem sie mehrere technische Indikatoren und Handelszeitmerkmale integriert. Die Strategie zeigt die Komplexität der Aggregation von Indikatoren und des dynamischen Risikomanagements in quantifizierten Geschäften.

Strategiequellcode
/*backtest
start: 2024-04-02 00:00:00
end: 2024-12-31 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=6
strategy("FRVP + AVWAP by Grok", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// User Inputs
frvpLength = input.int(20, title="FRVP Length", minval=1)
emaLength = input.int(75, title="EMA Length", minval=1) // Adjusted for stronger trend confirmation
rsiLength = input.int(14, title="RSI Length", minval=1)
adxThreshold = input.int(20, title="ADX Strength Threshold", minval=0, maxval=100)
volumeMultiplier = input.float(1.0, title="Volume Multiplier", minval=0.1)

// Stop Loss & Take Profit for XAUUSD
stopLossPips = 25 // 25 pips SL for Asian, London, NY Sessions
takeProfit1Pips = 35 // TP1 at 35 pips
takeProfit2Pips = 80 // Final TP at 80 pips

// Stop-Loss & Take-Profit Multipliers (XAUUSD: 1 pip = 0.1 points on most platforms)
stopMultiplier = float(stopLossPips) * 0.1
tp1Multiplier = float(takeProfit1Pips) * 0.1
tp2Multiplier = float(takeProfit2Pips) * 0.1

// Indicators
avwap = ta.vwap(close)  // Volume Weighted Average Price (VWAP)
ema = ta.ema(close, emaLength)     // Exponential Moving Average
rsi = ta.rsi(close, rsiLength)     // Relative Strength Index
macdLine = ta.ema(close, 12) - ta.ema(close, 26)  // MACD Line
signalLine = ta.ema(macdLine, 9)   // MACD Signal Line
atr = ta.atr(14)                   // Average True Range

// Average Directional Index (ADX)
adxSmoothing = 14
[diplus, diminus, adx] = ta.dmi(14, adxSmoothing)  // Corrected syntax for ta.dmi()

// Volume Profile (FRVP - Fixed Range Volume Profile Midpoint)
highestHigh = ta.highest(high, frvpLength)
lowestLow = ta.lowest(low, frvpLength)
frvpMid = (highestHigh + lowestLow) / 2  // Midpoint of the range

// Detect Trading Sessions
currentHour = hour(time, "UTC")  // Renamed to avoid shadowing built-in 'hour'
isAsianSession = currentHour >= 0 and currentHour < 8
isLondonSession = currentHour >= 8 and currentHour < 16
isNYSession = currentHour >= 16 and currentHour < 23

// Entry Conditions
longCondition = ta.crossover(close, avwap) and close > ema and rsi > 30 and macdLine > signalLine and adx > adxThreshold
shortCondition = ta.crossunder(close, avwap) and close < ema and rsi < 70 and macdLine < signalLine and adx > adxThreshold

// Volume Filter
avgVolume = ta.sma(volume, 20)     // 20-period Simple Moving Average of volume
volumeFilter = volume > avgVolume * volumeMultiplier  // Trade only when volume exceeds its moving average

// Trade Execution with SL/TP for Sessions
if (longCondition and volumeFilter and (isAsianSession or isLondonSession or isNYSession))
    strategy.entry("LongEntry", strategy.long, qty=100)
    strategy.exit("LongTP1", from_entry="LongEntry", limit=close + tp1Multiplier)
    strategy.exit("LongExit", from_entry="LongEntry", stop=close - stopMultiplier, limit=close + tp2Multiplier)

if (shortCondition and volumeFilter and (isAsianSession or isLondonSession or isNYSession))
    strategy.entry("ShortEntry", strategy.short, qty=100)
    strategy.exit("ShortTP1", from_entry="ShortEntry", limit=close - tp1Multiplier)
    strategy.exit("ShortExit", from_entry="ShortEntry", stop=close + stopMultiplier, limit=close - tp2Multiplier)

// Plotting for Debugging and Visualization
plot(avwap, "AVWAP", color=color.purple, style=plot.style_line, offset=0)
plot(ema, "EMA", color=color.orange, style=plot.style_line, offset=0)
// plot(rsi, "RSI", color=color.yellow, style=plot.style_histogram, offset=0)  // Better in a separate pane
// plot(macdLine, "MACD Line", color=color.blue, style=plot.style_histogram, offset=0)  // Better in a separate pane
// plot(signalLine, "Signal Line", color=color.red, style=plot.style_histogram, offset=0)  // Better in a separate pane
plot(adx, "ADX", color=color.green, style=plot.style_line, offset=0)

// Optional: Plot entry/exit signals for visualization
plotshape(longCondition and volumeFilter ? close : na, title="Long Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny)
plotshape(shortCondition and volumeFilter ? close : na, title="Short Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)