Die Ressourcen sind geladen. Beförderung...

Glatte gleitende durchschnittliche Stop Loss & Take Profit-Strategie mit Trendfilter und Ausnahme-Ausgang

Schriftsteller:ChaoZhang, Datum: 2024-06-03 16:54:04
Tags:SMARSIDie- Nein.TPSL

img

Übersicht

Diese Strategie nutzt Indikatoren wie den Smooth Moving Average (SMA), den Relative Strength Index (RSI), den True Range (TR) und den Volume Moving Average (Volume MA) in Kombination mit Trendfiltern, Volumen und Volatilitätsbedingungen, um Trades auszuführen, wenn bestimmte Kriterien erfüllt sind. Die Hauptidee hinter dieser Strategie besteht darin, eine Long-Position einzugeben, wenn der Preis unter dem SMA200 liegt, der Trend nach unten ist und sowohl das Volumen als auch die Volatilität niedrig sind. Stop-Loss- und Take-Profit-Level werden beim Eintritt festgelegt. Darüber hinaus beinhaltet die Strategie einen Ausnahme-Exit-Mechanismus, der die Position schließt, wenn der RSI 70 überschreitet oder wenn die vorgegebenen Stop-Loss- oder Take-Profit-Level erreicht werden.

Strategieprinzipien

  1. Berechnung von Indikatoren wie SMA, RSI, Volume MA und TR MA
  2. Bestimmen Sie, ob der aktuelle Trend nach oben oder nach unten geht
  3. Überprüfen Sie, ob das aktuelle Volumen und die Volatilität niedrig sind
  4. Eintritt in eine Long-Position, wenn der Preis unter dem SMA200 liegt und die Bedingungen für geringes Volumen und Volatilität erfüllt sind
  5. Stellen Sie den Stop Loss auf 95% und den Take Profit auf 150% des Einstiegspreises fest
  6. Aus dem Handel aussteigen, wenn der RSI 70 überschreitet oder wenn die vorgegebenen Stop-Loss- oder Take-Profit-Level erreicht sind
  7. Zwangsschließung der Position, wenn sich der Trend ändert und der Preis den SMA durchbricht

Analyse der Vorteile

  1. Diese Strategie kombiniert mehrere technische Indikatoren für eine umfassendere Analyse der Marktbedingungen
  2. Der Trendfilter und die Volumen-/Volatilitätsbedingungen helfen, den Handel in ungünstigen Marktbedingungen zu vermeiden
  3. Die Festlegung klarer Stop-Loss- und Take-Profit-Niveaus verwaltet das Risiko wirksam
  4. Der Ausnahme-Exit-Mechanismus ermöglicht in bestimmten Situationen einen zeitnahen Positionsschluss und verhindert so weitere Verluste.

Risikoanalyse

  1. Die Leistung der Strategie kann durch die Wahl der Parameter-Einstellungen beeinflusst werden
  2. In einigen Fällen kann sich der Preis nach Auslösung der Einstiegsbedingung schnell umkehren und zu Verlusten führen.
  3. Die Strategie berücksichtigt keine grundlegenden Faktoren und kann von bedeutenden Ereignissen beeinflusst werden

Optimierungsrichtlinien

  1. Überlegen Sie, zusätzliche technische Indikatoren wie MACD, Bollinger-Bänder usw. einzubeziehen, um die Genauigkeit bei Ein- und Ausstieg zu verbessern.
  2. Optimieren Sie die Einstellungen des Stop Loss- und Take Profit-Niveaus, z. B. durch Trailing Stops oder dynamische Take Profit-Einstellungen
  3. Dynamische Anpassung der Strategieparameter anhand unterschiedlicher Marktbedingungen
  4. Einführung eines Risikomanagementmoduls, einschließlich Positionsgröße und Geldmanagement

Zusammenfassung

Diese Strategie kombiniert mehrere technische Indikatoren mit Trendfiltern, Volumen und Volatilitätsbedingungen, um Trades in bestimmten Situationen auszuführen. Durch die Festlegung klarer Stop-Loss- und Take-Profit-Levels und die Implementierung eines Ausnahme-Exit-Mechanismus verwaltet die Strategie das Risiko effektiv. Die Strategie hat jedoch bestimmte Einschränkungen, da Faktoren wie Parameterwahl und Marktanomalien ihre Leistung beeinflussen können. Zukünftige Verbesserungen können durch die Einbeziehung mehrer Indikatoren, die Optimierung der Parameter-Einstellungen und das Hinzufügen von Risikomanagement-Komponenten erzielt werden.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Strategia Stop Loss & Take Profit z Filtrem Trendu i Wyjątkiem", shorttitle="Smooth MA SL & TP with Exception", overlay=true)

// Parametry
tp_multiplier = input.float(1.5, title="Mnożnik Take Profit")
sl_percent = input.float(5, title="Procent Stop Loss")
wait_bars = input.int(3, title="Liczba Oczekiwanych Świec")
sma_period = input.int(200, title="Okres SMA")
rsi_period = input.int(14, title="Okres RSI")
vol_ma_period = input.int(20, title="Okres Średniej Wolumenu")
tr_ma_period = input.int(20, title="Okres Średniej Rzeczywistego Zakresu")

// Obliczenie Gładkiej Średniej Kroczącej
sma = ta.sma(close, sma_period)

// Obliczenie RSI
rsi = ta.rsi(close, rsi_period)

// Filtr Trendu
uptrend = close > sma
downtrend = close < sma

// Warunek konsolidacji: Niski wolumen i niska zmienność
niski_wolumen = volume < ta.sma(volume, vol_ma_period)
niska_zmienosc = ta.tr(true) < ta.sma(ta.tr(true), tr_ma_period)

// Warunek Wejścia (Long): Cena poniżej SMA 200 i filtr trendu w strefie czerwonej
warunek_wejscia = close < sma and niski_wolumen and niska_zmienosc and not uptrend

// Warunek Wyjścia ze strategii
warunek_wyjscia = downtrend and close > sma and ta.crossover(close, sma)

// Ustalanie Stop Loss i Take Profit
var float stop_loss = na
var float take_profit = na

var int indeks_wejscia = na

if (warunek_wejscia)
    stop_loss := close * (1 - sl_percent / 100)
    take_profit := close * (1 + tp_multiplier)
    indeks_wejscia := bar_index

// Handel
if (warunek_wejscia)
    strategy.entry("Long", strategy.long)

// Warunek Wyjścia: RSI w strefie wykupienia lub Stop Loss/Take Profit
if (strategy.opentrades != 0)
    if (rsi > 70)
        strategy.exit("Take Profit/Stop Loss", "Long", limit=take_profit)
    else if (bar_index - indeks_wejscia == wait_bars)
        strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss, limit=take_profit)

// Wyjątek: Warunek Wyjścia z Longów na podstawie zmiany trendu
if (warunek_wyjscia)
    strategy.close("Long")

// Rysowanie RSI
rsi_plot = plot(rsi, title="RSI", color=color.blue)

// Rysowanie Gładkiej Średniej Kroczącej
sma_plot = plot(sma, color=color.gray, title="Smooth MA", linewidth=2)

// Rysowanie Filtru Trendu
fill(sma_plot, rsi_plot, color=downtrend ? color.new(color.red, 90) : na)


Verwandt

Mehr