RSI-Trend nach Strategie

Schriftsteller:ChaoZhang, Datum: 2023-11-07 16:33:43
Tags:

img

Übersicht

Diese Strategie basiert auf dem Relative Strength Index (RSI), um überkaufte und überverkaufte Situationen zu identifizieren und den Trend zu verfolgen.

Strategie Logik

Diese Strategie verwendet den RSI-Indikator, um überkaufte und überverkaufte Bedingungen auf dem Markt zu identifizieren. Der RSI wird auf der Grundlage der Preisänderungen über einen bestimmten Zeitraum berechnet. Ein RSI unter 30 gilt als überverkauft, während ein RSI über 70 als überkauft gilt.

Diese Strategie definiert zunächst die RSI-Parameter length=14, overbought=70, oversold=30. Sie berechnet dann den RSI-Wert vrsi basierend auf dem Schlusskurs. Wenn vrsi über die Überkauflinie oder unter die Überverkaufslinie geht, löst sie einen entsprechenden Long- oder Short-Trade aus. Nach dem Eintritt in den Trade wird ein Stop-Loss von etoroStopTicks-Ticks gesetzt. Die Positionen werden geschlossen, wenn innerhalb des Handelsfensters ein Stop-Loss ausgelöst wird.

Auf diese Weise ist die Strategie in der Lage, dem Haupttrend des Marktes zu folgen - bei Überverkauf zu gehen und bei Überkauf zu gehen.

Vorteile

  • Verwenden Sie den RSI zur Ermittlung von Marktbedingungen, in denen der Trend überkauft/überverkauft wird
  • Flexibles Backtesting-Fenster für die Prüfung verschiedener Zeiträume
  • angemessene Stop-Loss-Einstellung zur Kontrolle von Einzelverlusten

Risiken

  • RSI-Divergenz kann falsche Signale erzeugen
  • Statischer Stop-Loss passt sich nicht an die Marktschwankungen an
  • Schwer zu identifizierende Trendumkehrungen können zu Umkehrgeschäften führen

Lösungen:

  • Hinzufügen von Filterindikatoren, um falsche Eingaben auf der Grundlage eines falschen RSI-Signals zu vermeiden
  • Dynamischer Stop-Loss zur Echtzeitverfolgung von Marktbewegungen
  • Hinzufügen von Trendbeurteilungswerkzeugen zur Verhinderung von Umkehrhandel

Verbesserungen

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimieren Sie die RSI-Parameter für eine optimale Leistung

Verschiedene RSI-Perioden und Überkauf-/Überverkaufswerte testen, um optimale Parameter zu finden und falsche Signale zu reduzieren.

  1. Hinzufügen von Trendbeurteilungswerkzeugen, um Gegentrendgeschäfte zu vermeiden

Fügen Sie MA, MACD hinzu, um die Trendrichtung zu beurteilen und falsche Signale an Wendepunkten zu vermeiden.

  1. Dynamischer Stoppverlust

Verwenden Sie ATR, um einen anpassungsfähigen Stop-Loss für eine bessere Verfolgung von Marktschwankungen festzulegen.

  1. Verbesserung der Einreisebestimmungen

Fügen Sie andere Bedingungen wie Ausbruch, Volumenzuwachs zum RSI-Signal hinzu, um die Eingangsgenauigkeit zu verbessern.

Schlussfolgerung

Die Strategie erfasst den Trend, indem sie überkaufte und überverkaufte Situationen mithilfe des RSI identifiziert. Im Vergleich zu herkömmlichen Tracking-Stop-Strategien hat sie den Vorteil, den Markt mit Indikatoren zu zeitlichen. Allerdings müssen Probleme wie RSI-Divergenz und Unfähigkeit, eine Trendumkehr zu erkennen, gelöst werden. Weitere Verbesserungen bei Parameteroptimierung, Trendbeurteilung, dynamischem Stop-Loss können die Stabilität und Rentabilität verbessern.


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

//@version=3

strategy("RSI Etoro Strategy", overlay=true, max_bars_back=2000)
// To use:
// Capital = capital * leverage
// Slippage Ticks: 3, 5 ? (Mainly for spread)
// etoroStopTicks: Set it accordingly to the stock (to corresponds to etoro default of 50 % for exemple...)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 12, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 1995)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 1995)


// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
etoroStopTicks = input( 120 )
// 120 because it is approximatively the number of ticks for default SL of 50% at x5 leverage for copper (no fee)...
price = close

vrsi = rsi(price, length)

if (not na(vrsi))
    if (crossover(vrsi, overSold))
        strategy.entry("RsiLE", strategy.long, comment="RsiLE", when = window())
    if (crossunder(vrsi, overBought))
        strategy.entry("RsiSE", strategy.short, comment="RsiSE", when = window())
strategy.exit("exit SE", "RsiSE", loss=etoroStopTicks, when = window())
strategy.exit("exit LE", "RsiLE", loss=etoroStopTicks, when = window())

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Mehr