Vishal Adaptive Multi-Indikator-Handelsstrategie

MACD SAR ST EMA ATR TF
Erstellungsdatum: 2025-03-28 17:17:56 zuletzt geändert: 2025-03-28 17:17:56
Kopie: 0 Klicks: 407
2
konzentrieren Sie sich auf
319
Anhänger

Vishal Adaptive Multi-Indikator-Handelsstrategie Vishal Adaptive Multi-Indikator-Handelsstrategie

Überblick

Die Strategie ist eine umfassende quantitative Handelsmethode, die Markttrends und Handelssignale durch die Integration mehrerer technischer Indikatoren (MACD, Supertrend und Parabolic SAR) identifiziert. Die Strategie soll einen flexiblen und strengen Rahmen für Handelsentscheidungen bieten, der sich an unterschiedliche Marktumgebungen anpasst.

Strategieprinzip

Die Strategie basiert auf einer dynamischen Kombination von drei wichtigen technischen Indikatoren:

  1. MACD-Indikator: Beurteilung der Preisbewegung und der Trendrichtung
  2. Supertrend-Indikator: Beurteilung der marktbeherrschenden Trends (Mehrköpfe oder Leerköpfe)
  3. Parabolic SAR: Genauere Einstiegs- und Ausstiegssignale

Die Strategie basiert auf der folgenden Logik:

  • Die Eintrittsbedingungen für Long-Positions sind:
    • Die MACD-Linie ist höher als die Signallinie.
    • Supertrend zeigt grün (mehr als ein Kopf)
    • Der Abschlusspreis ist höher als bei Parabolic SAR.
  • Eintrittsbedingungen für leere Lager:
    • MACD-Linie unterhalb der Signal-Linie
    • Supertrend zeigt rot (ohne Kopf)
    • Der Abschlusspreis liegt unterhalb der Parabolic SAR

Strategische Vorteile

  1. Mehrfacher Komplex-Verifizierung: Reduzierung des Risikos von Falschmeldungen
  2. Flexible Signal-Trigger: keine strikte Reihenfolge für die Triggerung der Indikatoren
  3. Strategie für den vollen Lagerhandel: Maximierung der potenziellen Gewinne bei jedem Handel
  4. Symmetrische Handelslogik: Gleichförmigkeit in den Mehr- und Leerköpfen
  5. Dynamischer Ausstiegsmechanismus: Vermeidung von vorzeitigen Ausstiegs durch Bestätigung durch zwei aufeinanderfolgende K-Linien

Strategisches Risiko

  1. Risiko von Rückstand bei Indikatoren: Technische Indikatoren basieren auf historischen Daten und können verzögert werden
  2. Vollpositionsrisiken: Unerwartete Stop-Losses können zu größeren Geldschwankungen führen
  3. Risiko für starke Marktschwankungen: Komplexe Marktumgebung könnte die Strategie beeinflussen
  4. Parameter-Sensitivität: Die Auswahl der Indikatorparameter wirkt sich direkt auf die Effektivität der Strategie aus

Richtung der Strategieoptimierung

  1. Einführung von dynamischem Positionsmanagement: Anpassung der Positionsgröße an die Marktvolatilität
  2. Erhöhung der Stop-Loss-Mechanismen: Verringerung des maximalen Verlusts für einen einzelnen Handel
  3. Optimierung der Kennzahlenparameter: Optimierung der Parameterkombinationen durch Rückmessung
  4. Einführung von zusätzlichen Filterbedingungen wie Handelsvolumen, Volatilitätsindikatoren
  5. Mehrfach-Zeitrahmen-Verifizierung: Verbesserung der Signalsicherheit

Zusammenfassen

Vishal Adaptive Multi-Indicator Trading Strategy ist eine innovative Methode zum Quantifizieren des Handels, die durch die Synergie von MACD, Supertrend und Parabolic SAR einen umfassenden und flexiblen Rahmen für die Handelsentscheidung bietet. Trotz des Risikos bietet die Multi-Indicator Validation und die symmetrische Handelslogik den Anlegern ein Trading-Modell, das es wert ist, eingehend untersucht zu werden.

Strategiequellcode
/*backtest
start: 2025-01-01 00:00:00
end: 2025-03-27 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Vishal Strategy", overlay=true, margin_long=100, margin_short=100, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// **MACD Inputs & Calculation**
fast_length  = input.int(13, title="MACD Fast Length")
slow_length  = input.int(27, title="MACD Slow Length")
signal_length = input.int(9, title="MACD Signal Smoothing")

fast_ma  = ta.ema(close, fast_length)
slow_ma  = ta.ema(close, slow_length)
macd     = fast_ma - slow_ma
signal   = ta.ema(macd, signal_length)
hist     = macd - signal

// **Supertrend Inputs & Calculation**
atrPeriod = input.int(11,    "ATR Length", minval = 1)
factor    = input.float(3.0, "Factor",     minval = 0.01, step = 0.01)
[supertrend, direction] = ta.supertrend(factor, atrPeriod)
bullTrend  = direction < 0   // Uptrend Condition
bearTrend  = direction > 0   // Downtrend Condition

// **Parabolic SAR Inputs & Calculation**
sarStep = input.float(0.02, "Parabolic SAR Step")
sarMax  = input.float(0.2, "Parabolic SAR Max")
sar = ta.sar(sarStep, sarStep, sarMax)

// **Trade Entry Conditions**
macdBullish = macd > signal // MACD in Bullish Mode
macdBearish = macd < signal // MACD in Bearish Mode
priceAboveSAR = close > sar // Price above SAR (Bullish)
priceBelowSAR = close < sar // Price below SAR (Bearish)

// **Boolean Flags to Track Conditions Being Met**
var bool macdConditionMet = false
var bool sarConditionMet = false
var bool trendConditionMet = false

// **Track if Each Condition is Met in Any Order**
if (macdBullish)
    macdConditionMet := true
if (macdBearish)
    macdConditionMet := false

if (priceAboveSAR)
    sarConditionMet := true
if (priceBelowSAR)
    sarConditionMet := false

if (bullTrend)
    trendConditionMet := true
if (bearTrend)
    trendConditionMet := false

// **Final Long Entry Signal (Triggers When All Three Flags Are True)**
longSignal = macdConditionMet and sarConditionMet and trendConditionMet

// **Final Short Entry Signal (Triggers When All Three Flags Are False)**
shortSignal = not macdConditionMet and not sarConditionMet and not trendConditionMet

// **Execute Full Equity Trades**
if (longSignal)
    strategy.entry("Long", strategy.long)

if (shortSignal)
    strategy.entry("Short", strategy.short)

// **Exit Logic - Requires 2 Consecutive Candle Closes Below/Above SAR**
var int belowSARCount = 0
var int aboveSARCount = 0

if (strategy.position_size > 0)  // Long position is active
    belowSARCount := close < sar ? belowSARCount + 1 : 0
    if (belowSARCount >= 1)
        strategy.close("Long")

if (strategy.position_size < 0)  // Short position is active
    aboveSARCount := close > sar ? aboveSARCount + 1 : 0
    if (aboveSARCount >= 1)
        strategy.close("Short")

// **Plot Indicators**
plot(supertrend, title="Supertrend", color=bullTrend ? color.green : color.red, linewidth=2, style=plot.style_linebr)
plot(sar, title="Parabolic SAR", color=color.blue, style=plot.style_cross, linewidth=2)
plot(macd, title="MACD Line", color=color.blue, linewidth=2)
plot(signal, title="MACD Signal", color=color.orange, linewidth=2)
plot(hist, title="MACD Histogram", style=plot.style_columns, color=hist >= 0 ? color.green : color.red)