Long- und Short-Signalstrategie basierend auf dem QQE-Indikator und dem RSI-Indikator

RSI QQE
Erstellungsdatum: 2024-05-27 15:17:45 zuletzt geändert: 2024-05-27 15:17:45
Kopie: 0 Klicks: 830
1
konzentrieren Sie sich auf
1617
Anhänger

Long- und Short-Signalstrategie basierend auf dem QQE-Indikator und dem RSI-Indikator

Überblick

Die Strategie basiert auf dem QQE- und dem RSI-Indikator, um einen Multi-Bohr-Signalbereich zu erstellen, indem der Gleitende Moving Average und die Dynamische Schwingungsbreite des RSI-Indikators berechnet werden. Wenn der RSI-Indikator in die Oberbahn bricht, wird ein Multi-Bohr-Signal erzeugt, und wenn er in die Unterbahn bricht, wird ein Short-Bohr-Signal erzeugt.

Strategieprinzip

  1. Der RSI-Indikator wird als Gleitende Moving Average RsiMa berechnet, die als Grundlage für die Beurteilung von Trends dient.
  2. Berechnen Sie die absolute Abweichung des RSI-Indikators AtrRsi und berechnen Sie den glatten Moving Average MaAtrRsi als Grundlage für die Beurteilung der Schwankungen.
  3. Die dynamische Schwingungsamplitude dar wird anhand des QQE-Faktors berechnet und in Kombination mit RsiMa zur Konstruktion von Longband- und Shortband-Bereichen in den Mehrraumsignalen verwendet.
  4. Beurteilen Sie die Beziehung zwischen dem RSI-Indikator und dem Hohlraumsignalbereich. Wenn der RSI-Indikator über dem Longband ein Hohlraumsignal erzeugt, erzeugt er ein Hohlraumsignal, wenn er über dem Shortband geht.
  5. Der Handel erfolgt auf Basis von mehreren Leerzeichen, bei mehreren Signalen wird ein Kauf eingelegt, bei einem Leerzeichen wird ein Ausgleich eingelegt.

Strategische Vorteile

  1. Die Kombination der Merkmale von RSI und QQE ermöglicht eine bessere Erfassung von Markttrends und Volatilitätschancen.
  2. Die dynamische Schwingungsbreite wird verwendet, um die Signalpalette zu erstellen, die sich an die Veränderungen der Marktfluktuation anpasst.
  3. Glatte Handhabung der RSI-Indikatoren und der Schwankungsbreite, um die Lärmstörung und die häufige Transaktion wirksam zu reduzieren.
  4. Logische Klarheit und weniger Parameter sind geeignet für weitere Optimierung und Verbesserung.

Strategisches Risiko

  1. Diese Strategie kann bei einem wackligen Markt und geringer Volatilität nicht optimal funktionieren.
  2. Es gibt keine eindeutigen Stop-Loss-Mechanismen, die bei einem plötzlichen Umschwung des Marktes ein größeres Rücknahmerisiko darstellen.
  3. Die Einstellung der Parameter hat einen großen Einfluss auf die Strategie-Performance und muss je nach Markt und Sorte angepasst werden.

Richtung der Strategieoptimierung

  1. Die Einführung eines eindeutigen Stop-Loss-Mechanismus, wie z. B. Fixed-Percentage-Stop, ATR-Stop, um das Rücknahmerisiko zu kontrollieren.
  2. Optimierung der Parameter-Einstellungen, um die optimale Parameterkombination durch genetische Algorithmen, Gittersuche und andere Methoden zu finden.
  3. Erwägen Sie die Einführung von anderen Indikatoren wie Handelsvolumen, Haltungsvolumen, um Handelssignale zu bereichern und die Strategie zu stabilisieren.
  4. Bei Marktschocks kann die Einführung von Range-Trading oder Bandbreite-Operationslogik in Erwägung gezogen werden, um die Strategieadaptivität zu verbessern.

Zusammenfassen

Die Strategie basiert auf dem RSI- und QQE-Indikator, um ein Mehrraumsignal zu erstellen, das die Merkmale von Trendfang und Schwankungsbeherrschung aufweist. Die Strategie hat eine klare Logik und wenige Parameter, die für weitere Optimierungen und Verbesserungen geeignet sind. Die Strategie birgt jedoch auch bestimmte Risiken, wie Rücknahmekontrollen, Parameter-Einstellungen usw.

Strategiequellcode
/*backtest
start: 2023-05-21 00:00:00
end: 2024-05-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=4
// modified by swigle
// thanks colinmck

strategy("QQE signals bot", overlay=true)


RSI_Period = input(14, title='RSI Length')
SF = input(5, title='RSI Smoothing')
QQE = input(4.236, title='Fast QQE Factor')
ThreshHold = input(10, title="Thresh-hold")

src = close
Wilders_Period = RSI_Period * 2 - 1

Rsi = rsi(src, RSI_Period)
RsiMa = ema(Rsi, SF)
AtrRsi = abs(RsiMa[1] - RsiMa)
MaAtrRsi = ema(AtrRsi, Wilders_Period)
dar = ema(MaAtrRsi, Wilders_Period) * QQE

longband = 0.0
shortband = 0.0
trend = 0

DeltaFastAtrRsi = dar
RSIndex = RsiMa
newshortband = RSIndex + DeltaFastAtrRsi
newlongband = RSIndex - DeltaFastAtrRsi
longband := RSIndex[1] > longband[1] and RSIndex > longband[1] ? max(longband[1], newlongband) : newlongband
shortband := RSIndex[1] < shortband[1] and RSIndex < shortband[1] ? min(shortband[1], newshortband) : newshortband
cross_1 = cross(longband[1], RSIndex)
trend := cross(RSIndex, shortband[1]) ? 1 : cross_1 ? -1 : nz(trend[1], 1)
FastAtrRsiTL = trend == 1 ? longband : shortband

// Find all the QQE Crosses

QQExlong = 0
QQExlong := nz(QQExlong[1])
QQExshort = 0
QQExshort := nz(QQExshort[1])
QQExlong := FastAtrRsiTL < RSIndex ? QQExlong + 1 : 0
QQExshort := FastAtrRsiTL > RSIndex ? QQExshort + 1 : 0

//Conditions

qqeLong = QQExlong == 1 ? FastAtrRsiTL[1] - 50 : na
qqeShort = QQExshort == 1 ? FastAtrRsiTL[1] - 50 : na

// Plotting

plotshape(qqeLong, title="QQE long", text="Long", textcolor=color.white, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny)
plotshape(qqeShort, title="QQE short", text="Short", textcolor=color.white, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny)

// trade

//if qqeLong > 0
strategy.entry("buy long", strategy.long, 100, when=qqeLong)
    
if qqeShort > 0
    strategy.close("buy long")
    // strategy.exit("close_position", "buy long", loss=1000)
    // strategy.entry("sell", strategy.short, 1, when=strategy.position_size > 0)