RSI-Alligator-Trendstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-29 14:40:07
Tags:

img

Übersicht

Die RSI Alligator Trend Strategie basiert auf der Kombination von RSI Indikator und Alligator Indikator, um den Ein- und Ausstieg von Trends zu bestimmen. Sie verwendet drei gleitende Durchschnittslinien - die Alligators Kieferlinie, die Zahnlinie und die Lippenlinie, die von RSI verschiedener Perioden konstruiert wurden. Sie geht lang, wenn die Zahnlinie über die Lippenlinie kreuzt und die RSI Kieferlinie höher ist als die Zahnlinie; sie geht kurz, wenn die Zahnlinie unter die Lippenlinie kreuzt und die RSI Kieferlinie niedriger als die Zahnlinie ist. Die Strategie setzt auch Stop-Loss- und Take-Profit-Bedingungen.

Strategie Logik

Die RSI Alligator Trend-Strategie baut die drei Linien des Alligator-Indikators mit dem RSI-Indikator auf.

  • Kieferlinie: 5-Perioden-RSI-Linie
  • Zahnlinie: 13-Perioden-RSI-Linie
  • Lippenlinie: 34-Perioden-RSI-Linie

Die Logik des Eingangssignals lautet:

Langes Signal: Wenn die Zahnlinie über die Lippenlinie kreuzt und die Kieferlinie höher ist als die Zahnlinie, gehen Sie lang.

Kurzsignal: Wenn die Zahnlinie unterhalb der Lippenlinie kreuzt und die Kieferlinie niedriger ist als die Zahnlinie, gehen Sie kurz.

Die Strategie legt außerdem Stop-Loss- und Take-Profit-Bedingungen fest:

  • Stop-Loss wird auf 10% unter dem Einstiegspreis festgelegt
  • Der Erwerbssatz liegt 90% über dem Einstiegspreis.

Stärkeanalyse

Die RSI Alligator Trend-Strategie weist folgende Stärken auf:

  1. Die Verwendung der Alligator-Linien, um den Trend zu bestimmen, kann effektiv Marktgeräusche filtern und den Haupttrend festhalten
  2. Die Kombination von mehrjährigen RSI verhindert falsche Ausbrüche und verbessert die Signalzuverlässigkeit
  3. Die Festlegung angemessener Stop-Loss- und Take-Profit-Bedingungen trägt zur Stabilisierung der Strategieoperationen bei
  4. Die Strategie Idee ist klar und leicht zu verstehen, die Parameter-Einstellungen sind einfach, und es ist einfach für den Live-Handel umzusetzen
  5. Es kann sowohl lang als auch kurz gehen, wobei beide Richtungen des Trends berücksichtigt werden, und hat eine hohe Flexibilität.

Risikoanalyse

Die RSI-Alligator-Trend-Strategie birgt außerdem folgende Risiken:

  1. Es kann zu falschen Ausbrüchen an der Kreuzung zwischen Zahnlinie und Lippenlinie kommen, was zu unnötigen Verlusten führt.

  2. Die Stop-Loss-Einstellung kann zu aggressiv sein, mit einer hohen Wahrscheinlichkeit von unnötigem Stop-Loss. Der Stop-Loss-Bereich kann angemessen entspannt werden oder andere Bedingungen können als Voraussetzung für die Aktivierung des Stop-Loss hinzugefügt werden.

  3. Wenn sich der Markt heftig bewegt, kann der Stop-Loss möglicherweise nicht seine richtige Rolle spielen, die Marge zu schützen.

  4. Wenn Long- und Shortpositionen häufig wechseln, ist der Handelskostendruck größer.

Optimierungsrichtlinien

Die RSI Alligator Trend Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimieren Sie die Alligator Linienparameter Einstellungen, um die beste Parameterkombination zu finden

  2. Optimieren Sie die Logik der Einstiegsbedingungen, z. B. Hinzufügen von Indikatoren wie Handelsvolumen zu Filtersignalen

  3. Optimierung der Gewinn- und Stop-Loss-Strategien, um sie besser an die Marktbedingungen und die Margin-Level anzupassen

  4. Hinzufügen von Mechanismen zur Bewältigung extremer Ereignisse und zur Vermeidung der Exposition gegenüber abnormalen Marktbedingungen

  5. Hinzufügen von Algorithmen für offene Positionen zur Kontrolle des Anteils des in einen einzigen Handel investierten Kapitals zur Risikominderung

Schlussfolgerung

Im Allgemeinen ist die RSI Alligator Trend Strategie eine zuverlässige und einfach zu bedienende Trendfolgestrategie. Sie verwendet den Alligator-Indikator, um die Trendrichtung zu bestimmen, kombiniert mit dem RSI-Indikator, um Referenzschwellen zu setzen, die den Trend effektiv sperren und angemessene Ausgangspunkte festlegen können. Gleichzeitig hat die Strategie selbst auch eine starke Flexibilität und Erweiterbarkeit, was sie für den Live-Handel und weitere Optimierung lohnt.


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

// @version=3
// RSI Alligator
// Forked from Author: Reza Akhavan
// Updated by Khalid Salomão

strategy("RSI Alligator Strategy", overlay=false, pyramiding=0, default_qty_type=strategy.cash, default_qty_value=25000, initial_capital=25000, commission_type=strategy.commission.percent, commission_value=0.15, slippage=3)

// === TA LOGIC ===
overBought = input(70, minval=0, maxval=100, title="Over bought")
overSold = input(30, minval=0, maxval=100, title="Over sold")
jawPeriods = input(5, minval=1, title="Jaw Periods")
jawOffset = input(0, minval=0, title="Jaw Offset")
teethPeriods = input(13, minval=1, title="Teeth Periods")
teethOffset = input(0, minval=0, title="Teeth Offset")
lipsPeriods = input(34, minval=1, title="Lips Periods")
lipsOffset = input(0, minval=0, title="Lips Offset")

jaws = rsi(close, jawPeriods)
teeth = rsi(close, teethPeriods)
lips = rsi(close, lipsPeriods)
plot(jaws, color=green, offset=jawOffset, title="Jaw")
plot(teeth, color=red, offset=teethOffset, title="Teeth")
plot(lips, color=blue, offset=lipsOffset, title="Lips")

//
// === Signal logic ===
// 
LONG_SIGNAL_BOOLEAN  = crossover(teeth, lips) and jaws > teeth
SHORT_SIGNAL_BOOLEAN = crossunder(teeth, lips) and jaws < teeth

// === INPUT BACKTEST DATE RANGE ===
strategyType = input(defval="Long Only", options=["Long & Short", "Long Only", "Short Only"])

FromMonth = input(defval = 7, 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 = 2017)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        
window()  => true

// === STRATEGY BUY / SELL ENTRIES ===

// TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal
// long and short entries
buy()  => window() and LONG_SIGNAL_BOOLEAN
sell() => window() and SHORT_SIGNAL_BOOLEAN

if buy()
    if (strategyType == "Short Only")
        strategy.close("Short")
    else
        strategy.entry("Long", strategy.long, comment="Long")

if sell()
    if (strategyType == "Long Only")
        strategy.close("Long")
    else
        strategy.entry("Short", strategy.short, comment="Short")
        

// === BACKTESTING: EXIT strategy ===
sl_inp = input(10, title='Stop Loss %', type=float)/100
tp_inp = input(90, title='Take Profit %', type=float)/100

stop_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)

strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)

Mehr