VSTOP- und RSI-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-10-09
Tags:

Übersicht

Diese Strategie kombiniert die VSTOP- und RSI-Indikatoren, um lange zu gehen, wenn der RSI überkauft ist, und kurz zu gehen, wenn der RSI überverkauft ist, während VSTOP verwendet wird, um die Trendrichtung zu bestimmen und Verluste rechtzeitig zu reduzieren, wenn sich der Trend umkehrt.

Strategie Logik

  1. Berechnen Sie den Wert des RSI-Indikators und setzen Sie Überkauf- und Überverkaufslinien ein.

  2. Berechnen Sie die VSTOP, die eine Stop-Loss-Linie ist, die auf dem Preisschwankungsbereich basiert.

    • Berechnen des ATR-Indikators und setzen den ATR-Koeffizienten

    • Erfassen Sie den maximalen Preis und den minimalen Preis

    • Nach dem Aufwärtstrendzustand is_uptrend berechnen Sie die aktuelle Stop-Loss-Linie: stop = is_uptrend? max - mult * ATR : min + mult * ATR

    • Aktualisieren Sie die Stop-Loss-Linie: vstop1 = is_uptrend? max ((vstop_prev, stop) : min(vstop_prev, stop)

    • Wenn eine Trendumkehr stattfindet, setzen Sie die Stop-Loss-Linie zurück.

  3. Wenn der RSI überverkauft ist, gehen Sie kurz, wenn der Preis über VSTOP geht, wenn der RSI überkauft ist, gehen Sie lang.

Analyse der Vorteile

  • Die Kombination von Trendindikator und Überkauf-/Überverkaufsindikator hilft, Umkehrchancen in Trendmärkten zu erfassen.

  • Die Verwendung von VSTOP zur Einstellung von Stop Loss kontrolliert die Risiken wirksam.

  • Flexible Einstellungen der RSI-Parameter können für verschiedene Produkte optimiert werden.

  • VSTOP verfolgt systematisch den Stop-Loss ohne manuelles Eingreifen.

Risiken und Lösungen

  • Wenn der ATR-Parameter zu groß oder zu klein eingestellt ist, wäre die Stop-Loss-Linie bedeutungslos.

  • In Bereichsgebundenen Märkten kann RSI häufige Handelssignale auslösen, was die Handelsfrequenz und die Rutschkosten erhöht.

  • Die größte Gefahr dieser Strategie ist eine fehlgeschlagene Umkehrung.

Optimierungsrichtlinien

  • Es sollte in Erwägung gezogen werden, andere Indikatoren zu kombinieren, um ungültige Signale zu filtern, z. B. Lautstärke, Donchian-Kanal usw.

  • Optimieren von Parametern basierend auf den Rücktests, um die optimale Parameterkombination zu finden.

  • Untersuchen Sie, wie der ATR-Koeffizient dynamisch angepasst werden kann, um sich an verschiedene Marktumgebungen anzupassen.

  • Überlegen Sie, ob Sie die Strategie in Zeiten mit hohem Risiko abbrechen können.

Schlussfolgerung

Diese Strategie integriert Trendbeurteilung und Überkauft/Überverkauft-Niveaus, um Umkehrchancen in Trendmärkten zu erfassen. VSTOP bietet systematisches Stop-Loss-Management zur Risikokontrolle. Die Strategie kann durch Parameteroptimierung und Kombination anderer Indikatoren weiter verbessert werden. Händler müssen auf gescheiterte Umkehrungen achten, das Hauptrisiko.


/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Vstop and RSI", overlay=true)

//RSI Section
length = input(2, "RSI Period") 
overSold = input(30, "Oversold Level") 
overBought = input(70, "Overbought Level") 
price = close 
vrsi = rsi (price, length) 

//VSTOP Section
vlength = input(2, "Vstop Length") 
mult = input(2, "Vstop Mult") 
atr_ = atr(vlength) 

max1=0.0 
min1=0.0 
is_uptrend_prev = false 
stop=0.0 
vstop_prev=0.0 
vstop1=0.0 
is_uptrend=false 
is_trend_changed=false 
max_ = 0.0 
min_ = 0.0 
vstop=0.0 

max1 := max(nz(max_[1]), close)
min1 := min(nz(min_[1]), close)


is_uptrend_prev := nz(is_uptrend[1], true)

stop := is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev := nz(vstop[1])
vstop1 := is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend := close - vstop1 >= 0
is_trend_changed := is_uptrend != is_uptrend_prev
max_ := is_trend_changed ? close : max1
min_ := is_trend_changed ? close : min1
vstop := is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1
plot(vstop, color = is_uptrend ? green : red, style=cross, linewidth=2)

if vrsi > overBought
    strategy.entry("Buy", strategy.long, comment="Buy")
     
if vrsi < overSold and vstop > price
    strategy.entry("Sell", strategy.short, comment="Sell")

Mehr