Die Ressourcen sind geladen. Beförderung...

RSI-Trendmomentum-Handelsstrategie mit doppelter MA und Volumenbestätigung

Schriftsteller:ChaoZhang, Datum: 2024-11-28 17:02:32
Tags:RSISMA

img

Übersicht

Diese Strategie ist ein Trend-Folgende System, das RSI-Überverkauft Signale, langfristige gleitende Durchschnitte und Volumenbestätigung kombiniert. Es zielt darauf ab, lange Positionen während überverkaufter Bedingungen innerhalb etablierter Aufwärtstrends zu erfassen, die durch Volumenerweiterung validiert werden. Die Strategie nutzt einen 10-Perioden-RSI, doppelte SMAs von 250 und 500 Perioden und einen 20-Perioden-Volumen-gleitenden Durchschnitt als Kernindikatoren.

Strategieprinzipien

Die Kernlogik basiert auf drei Schlüsselbedingungen, die in Harmonie funktionieren:

  1. RSI-Überverkauftes Signal (RSI<=30): Erfasst Rückschlagchancen auf dem Markt
  2. Bei einer doppelten Ma-Bullish-Ausrichtung (SMA250>SMA500) wird der langfristige Aufwärtstrend bestätigt.
  3. Volumenbestätigung (Laufzeitvolumen>20-Zeitrahmenvolumen MA*2.5): Validiert Preisbewegungen

Eine Long-Position wird eingeleitet, wenn alle drei Bedingungen gleichzeitig erfüllt sind. Das Exit-Signal wird durch ein Death Cross ausgelöst (kurzerer MA unter einem längeren MA). Zusätzlich wird ein Stop-Loss von 5% für das Risikomanagement implementiert.

Strategische Vorteile

  1. Mehrfache Bestätigung reduziert falsche Signale: Integration von RSI, MAs und Volumen sorgt für eine robuste Signalfilterung
  2. Trend-nachfolgende Merkmale: Langfristige Marktrechnungen verhindern einen gegentrendischen Handel
  3. Umfassende Risikokontrolle: Festgesetzte Stop-Loss-Methoden verwalten das Risiko pro Handel wirksam
  4. Hohe Anpassungsfähigkeit: Die Parameter können an unterschiedliche Marktbedingungen angepasst werden
  5. Strenge Handelswahl: Mehrere Bedingungen sorgen für optimale Eintrittszeiten

Strategische Risiken

  1. Verzögerungsrisiko: Langfristige MAs führen zu erheblichen Verzögerungen bei der Tendenzbestimmung
  2. Überfilterungsrisiko: Strenge mehrfache Bedingungen könnten gültige Handelschancen verpassen
  3. Marktrisiko im Bereich: Bei seitlichen Märkten können häufig falsche Signale auftreten.
  4. Risikopositionen, die nicht in den Anwendungsbereich der Verordnung (EU) Nr. 575/2013 fallen
  5. Parameteroptimierungsrisiko: Überoptimierung kann zu schlechten Live-Handelsleistung führen

Optimierungsrichtlinien

  1. Dynamische Stopp-Loss: Überlegen Sie, ATR- oder volatilitätsbasierte dynamische Stops zu implementieren.
  2. Quantifizierung der Trendstärke: Einbeziehung von ADX oder ähnlichen Indikatoren für eine bessere Trendbewertung
  3. Optimierung der Positionsgröße: Anpassung der Positionsgröße anhand der Signalstärke und der Marktvolatilität
  4. Verbesserung des Exit-Mechanismus: Hinzufügen von Gewinnzielen und Verzögerungsstopp für flexible Exits
  5. Zeitfilterung: Einführung von Handelszeitfiltern, um ineffiziente Perioden zu vermeiden

Zusammenfassung

Es handelt sich um eine gut gestaltete Trend-Folge-Strategie mit strenger Logik, die Renditen und Risiken durch mehrere technische Indikatoren effektiv ausgleicht.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © wielkieef

//@version=5
strategy(title=' Rsi Long-Term Strategy [15min]', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03)

// Rsi
rsi_lenght = input.int(10, title='RSI lenght', minval=0)
rsi_up = ta.rma(math.max(ta.change(close), 0), rsi_lenght)
rsi_down = ta.rma(-math.min(ta.change(close), 0), rsi_lenght)
rsi_value = rsi_down == 0 ? 100 : rsi_up == 0 ? 0 : 100 - 100 / (1 + rsi_up / rsi_down)
rsi_overs = rsi_value <= 30
rsi_overb = rsi_value >= 70

// Volume
vol_sma_length = input.int(20, title='Volume lenght  ', minval=1)
Volume_condt = volume > ta.sma(volume, vol_sma_length) * 2.5

//SMA1
lengthSMA1 = input(250, title="Lenght SMA 1")
SMA1 = ta.sma(close, lengthSMA1)
//plot(SMA1, color=color.rgb(245, 108, 3), linewidth=1, title="SMA250")

//SMA2
lengthSMA2 = input(500, title="Lenght SMA 2")
SMA2 = ta.sma(close, lengthSMA2)
//plot(SMA2, color=#9803f5, linewidth=1, title="SMA500")


//Entry Logic
Long_cond = (rsi_overs and SMA1 > SMA2 and Volume_condt )  

if Long_cond
    strategy.entry('Long', strategy.long)

//Close Logic
Long_close = ta.crossunder(SMA1,SMA2)

if Long_close
    strategy.close("Long")

//Bar colors
Bar_color = Volume_condt ? #fc9802 : SMA1 > SMA2 ? color.rgb(84, 252, 0) : SMA1 < SMA2 ? color.maroon : color.gray
barcolor(color=Bar_color)

// Rsi value Plotshapes
plotshape(rsi_value < 30 and SMA1 > SMA2 and Volume_condt, title='Buy', color=color.new(color.green, 0), style=shape.circle, location=location.belowbar, size=size.tiny, textcolor=color.new(color.black, 0))
plotshape(rsi_value > 70 and SMA1 < SMA2 and Volume_condt, title='Sell', color=color.new(color.red, 0), style=shape.circle, location=location.abovebar, size=size.tiny, textcolor=color.new(color.black, 0))
plotshape(ta.crossunder(SMA1,SMA2) , title='DEATH CROSS', color=#000000, style=shape.xcross, location=location.abovebar, size=size.small, textcolor=color.new(color.black, 0))

//Stop-Loss// this code is from author RafaelZioni, modified by wielkieef
pera(pcnt) =>
    strategy.position_size != 0 ? math.round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss = input.float(title=' stop loss', defval=5.0, minval=0.5)
los = pera(stoploss)
strategy.exit('SL', loss=los)




// by wielkieef

Verwandt

Mehr