Schwankende lang-kurze RSI-Krypto-Switching-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-25 13:49:48
Tags:

img

Übersicht

Die Oscillating Long-Short RSI Crypto Switching Strategie ist eine quantitative Handelsstrategie, die für Kryptowährungen entwickelt wurde. Sie kombiniert den technischen Indikator RSI mit dem ICHIMOKU-Indikator, um lange und kurze Signale während der Preisschwankungen zu identifizieren und niedrige und hohe Kauf- und Verkaufswerte zu erreichen. Sie eignet sich für mittelfristige bis langfristige Zeitrahmen wie 3-4 Stunden oder länger.

Strategie Logik

Die Strategie stützt sich hauptsächlich auf folgende Indikatoren und Regeln:

ICHIMOKU-Anzeiger

  • Tenkan-Linie: Mittelpunkt des höchsten und niedrigsten Preises der letzten 20 Balken
  • Kijun-Linie: Mittelpunkt des höchsten und niedrigsten Preises der letzten 50 Balken
  • Linie Senkou A: Mittelpunkt der Linie Tenkan und Kijun
  • Senkou-B-Linie: Mittelpunkt des höchsten und niedrigsten Preises der letzten 120 Bar
  • Schlusskurs vor 30 Bar

RSI-Indikator

  • Bereich von 0 bis 100
  • Über 50 zeigt ein bullisches Signal an, unter 50 zeigt ein bärisches Signal an

Eintrittsregeln
Langer Eintrag: Tenkan-Kreuz über Kijun (goldenes Kreuz) und Preisbruch durch Senkou A & B Lines, mit RSI gleichzeitig über 50
Kurzer Eintrag: Tenkan-Kreuz unter Kijun (Todeskreuz) und Preisbruch Senkou A & B Lines, mit RSI unter 50 zur gleichen Zeit

Ausgangsregeln
Ausgang mit entgegengesetztem Signal

Die Strategie berücksichtigt den mittelfristigen bis langfristigen Trend, den kurzfristigen Kapitalfluss und die Überkauf-/Überverkaufsbedingungen, um Umkehrchancen während der Schwankungen zu erfassen.

Analyse der Vorteile

1. Ein Urteil auf der Grundlage mehrerer Indikatoren gewährleistet eine hohe Sicherheit

Die Strategie berücksichtigt ICHIMOKUs Trend und Support/Resistance Urteil, RSIs Überkauf/Überverkauf Bedingungen sowie Kapitalfluss basierend auf der Richtung des Kerzenkörpers. Dies stellt zuverlässige Signale sicher.

2. Geeignet für Schwankungen, häufige Gewinnentnahme

Der Kryptowährungsmarkt hat große Schwankungen. Diese Strategie kann Umkehrmöglichkeiten während Schwankungen vollständig erfassen und häufige Kaufniedrig- und Verkaufshöhe erreichen.

3. Verhinderung der Verfolgung von Steigerungen und Schlagen von Rückzügen, kontrollierbares Risiko

Die Strategie berücksichtigt umfassend mittelfristige und langfristige Trends und kurzfristige Situationen, um das Risiko zu vermeiden, Anstiege zu verfolgen und Rückgänge zu übertreffen.

Risikoanalyse

1. Manche Chancen verpassen

Die Strategie konzentriert sich hauptsächlich auf die Umkehrung, die zu häufigen Whipsaws während längerer Trendphasen führen kann.

2. Einheitliches Symbol, das kein Risiko diversifizieren kann

Die Strategie handelt nur mit einem einzigen Symbol und kann nicht gegen systematisches Marktrisiko diversifiziert werden.

3. Stopp-Loss während extremer Bewegungen ausgelöst

Während extremer Marktbedingungen wie Gap oder Spikes kann ein Stop Loss ausgelöst werden, der den Ausstieg zwingt.

Optimierungsrichtlinien

1. Hinzufügen von Stop Loss für einen geringeren Einzelverlust

Bewegliche Stop-Loss- oder Prozentsatz-Stop-Loss-Einstellungen können verwendet werden, um Gewinne zu erzielen und eine vollständige Rückkehr zu verhindern.

2. Korrelation mit Indizes zur Diversifizierung des Marktrisikos

Suchen Sie nach Handelsmöglichkeiten zwischen stark korrelierten Symbolen, um das systematische Marktrisiko zu diversifizieren.

3. Zusätzliche Filter zur Verringerung ungültiger Geschäfte

Es können Filter wie Preisvolatilität oder Volumenänderungen hinzugefügt werden, um ungültige Umkehrsignale zu vermeiden und die Rentabilität zu verbessern.

Schlussfolgerung

Die Oscillating Long-Short RSI Crypto Switching Strategie kombiniert ICHIMOKU und RSI Indikatoren, um Umkehrpunkte für Kryptowährungen zu identifizieren, die für den Kauf von niedrigem und Verkauf von hohem Gewinn während der Schwingungen geeignet sind. Sie legt auch Stop-Loss-Regeln fest, um das Risiko zu kontrollieren. Die Strategie kann weiter verbessert werden, indem der Stop-Loss-Mechanismus optimiert, Risiken durch Korrelation diversifiziert und bedingte Filter hinzugefügt werden.


/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-24 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=4

strategy(title="Ichimoku + RSI Crypto trending strategy", overlay=true, initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, pyramiding=1  )

UseHAcandles    = input(true, title="Use Heikin Ashi Candles in Algo Calculations")
//
// === /INPUTS ===

// === BASE FUNCTIONS ===

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow   = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low


//Inputs
ts_bars = input(20, minval=1, title="Tenkan-Sen Bars")
ks_bars = input(50, minval=1, title="Kijun-Sen Bars")
ssb_bars = input(120, minval=1, title="Senkou-Span B Bars")
cs_offset = input(30, minval=1, title="Chikou-Span Offset")
ss_offset = input(30, minval=1, title="Senkou-Span Offset")
long_entry = input(true, title="Long Entry")
short_entry = input(true, title="Short Entry")

//Volatility
//vollength = input(defval=1, title="VolLength")
//voltarget = input(defval=0., type=input.float, step=0.1, title="Volatility Target")
//Difference = abs((haClose - haOpen)/((haClose + haOpen)/2) * 100)
//MovingAverage = sma(Difference, vollength)
//highvolatility = MovingAverage > voltarget

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
 
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
 
////////////////////////////////////////////////////////////////////////////////

middle(len) => avg(lowest(len), highest(len))

// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = avg(tenkan, kijun)
senkouB = middle(ssb_bars)

//RSI
change = change(haClose)
gain = change >= 0 ? change : 0.0
loss = change < 0 ? (-1) * change : 0.0
avgGain = rma(gain, 14)
avgLoss = rma(loss, 14)
rs = avgGain / avgLoss
rsi = 100 - (100 / (1 + rs))

ss_high = max(senkouA[ss_offset-1], senkouB[ss_offset-1])
ss_low = min(senkouA[ss_offset-1], senkouB[ss_offset-1])

// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = mom(haClose, cs_offset-1) > 0
cs_cross_bear = mom(haClose, cs_offset-1) < 0
price_above_kumo = haClose > ss_high
price_below_kumo = haClose < ss_low
rsi_bullish = rsi > 50
rsi_bearish = rs < 50
bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and rsi_bullish //and highvolatility
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and rsi_bearish //and highvolatility

strategy.entry("Long", strategy.long, when=bullish and long_entry and time_cond)
strategy.entry("Short", strategy.short, when=bearish and short_entry and time_cond)

strategy.close("Long", when=bearish and not short_entry and time_cond)
strategy.close("Short", when=bullish and not long_entry and time_cond)




Mehr