Die Ressourcen sind geladen. Beförderung...

Handelsstrategie für Multi-RSI-Indikatoren

Schriftsteller:ChaoZhang, Datum: 2023-11-28 15:03:53
Tags:

img

Übersicht

Die Multi-RSI-Indikatoren-Handelsstrategie identifiziert Handelschancen, indem sie mehrere RSI-Indikatoren kombiniert, um Trends zu verfolgen.

Strategie Logik

Die Strategie erlaubt die Auswahl von 1-5 RSI-Indikatoren durch Eingabeparameter. Jeder RSI-Indikator kann unabhängig mit Perioden- und Grenzwerten konfiguriert werden. Wenn ein RSI unter den Grenzwert fällt, wird ein Kaufsignal ausgelöst. Die Signalstärke wird durch die Periode des ausgelösten RSI-Indikators bestimmt, wobei eine höhere Periode ein stärkeres Signal bedeutet. Wenn der RSI wieder über die Grenze steigt, wird ein Close-Positionssignal ausgelöst. Die Strategie bietet auch die Flexibilität, Farbfilter zu verwenden und Handelszeiten zu beschränken.

Analyse der Vorteile

Der größte Vorteil dieser Strategie ist die Fähigkeit, mehrere Zeitrahmen unter Verwendung verschiedener RSI zu bewerten, um sowohl Trend- als auch Umkehrchancen aus langen und kurzen Dimensionen zu beurteilen, um die Genauigkeit zu verbessern. Darüber hinaus erweitert die flexible Konfiguration jedes RSI-Indikators die Anpassungsfähigkeit auf verschiedenen Märkten erheblich. Fake Breakouts können auch effizient mit Farbfiltern ausgefiltert werden. Risikokontrollmodule wie Handelszeiten und Positionsgrößen bieten ein effektives Risikomanagement.

Risikoanalyse

Das größte Risiko sind widersprüchliche Signale bei der Kombination mehrerer RSI-Bewertungen. Zum Beispiel erzeugt ein kürzerer RSI einen Kauf, während ein längerer RSI immer noch überverkauft ist. Man muss sich auf Erfahrung verlassen, um festzustellen, welches Signal Vorrang hat. Außerdem ist der RSI anfällig für Whipsaws, die eine Validierung unter Verwendung anderer Indikatoren oder großer Konten erfordern.

Optimierungsrichtlinien

Die Strategie kann die Hinzufügung von Trendhilfeindikatoren wie gleitenden Durchschnitten oder Bollinger-Bändern in Betracht ziehen, um RSI-Signale zu validieren und die Genauigkeit zu verbessern. Darüber hinaus können bestimmte Algorithmen für maschinelles Lernen auch erforscht werden, indem Multi-Faktor-Scoring verwendet wird, um die Signalzuverlässigkeit automatisch zu bestimmen. Für die Risikokontrolle können schwebende Verluste oder maximale Drawdown-Stop-Linien für Stop-Loss-Zwecke implementiert werden.

Zusammenfassung

Zusammenfassend lässt sich sagen, dass die Multi-RSI-Indikatoren-Handelsstrategie sehr innovativ ist. Ihre Flexibilität bei der Kombination von Indikatoren und Parametern macht sie an sich entwickelnde Märkte anpassungsfähig. Weitere Verbesserungen können durch die Einbeziehung von Machine-Learning-Algorithmen und mehr Risikokontrollmaßnahmen aufgrund ihres modularen Designs erzielt werden.


/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018
//@version=2

strategy(title = "Noro's Symphony Strategy v1.1", shorttitle = "Symphony str 1.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 20)

//Settings

//needlong = input(true, defval = true, title = "Long")
//needshort = input(true, defval = true, title = "Short")

capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
usersi1 = input(true, defval = true, title = "Use RSI 1")
rsiperiod1 = input(4, defval = 4, minval = 2, maxval = 100, title = "RSI 1 Period")
rsilimit1 = input(20, defval = 20, minval = 2, maxval = 50, title = "RSI 1 Limit")
usersi2 = input(true, defval = true, title = "Use RSI 2")
rsiperiod2 = input(7, defval = 7, minval = 2, maxval = 100, title = "RSI 2 Period")
rsilimit2 = input(25, defval = 25, minval = 2, maxval = 50, title = "RSI 2 Limit")
usersi3 = input(true, defval = true, title = "Use RSI 3")
rsiperiod3 = input(14, defval = 14, minval = 2, maxval = 100, title = "RSI 3 Period")
rsilimit3 = input(30, defval = 30, minval = 2, maxval = 50, title = "RSI 3 Limit")
usersi4 = input(false, defval = false, title = "Use RSI 4")
rsiperiod4 = input(21, defval = 21, minval = 2, maxval = 100, title = "RSI 4 Period")
rsilimit4 = input(35, defval = 35, minval = 2, maxval = 50, title = "RSI 4 Limit")
usersi5 = input(false, defval = false, title = "Use RSI 5")
rsiperiod5 = input(28, defval = 28, minval = 2, maxval = 100, title = "RSI 5 Period")
rsilimit5 = input(40, defval = 40, minval = 2, maxval = 50, title = "RSI 5 Limit")
cf = input(false, defval = false, title = "Use color filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From Day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To Day")

//RSI
rsi1 = rsi(close, rsiperiod1)
rsi2 = rsi(close, rsiperiod2)
rsi3 = rsi(close, rsiperiod3)
rsi4 = rsi(close, rsiperiod4)
rsi5 = rsi(close, rsiperiod5)

//Signals
up1 = rsi1 < rsilimit1 and usersi1  
up2 = rsi2 < rsilimit2 and usersi2
up3 = rsi3 < rsilimit3 and usersi3
up4 = rsi4 < rsilimit4 and usersi4
up5 = rsi5 < rsilimit5 and usersi5

str = up5 ? 5 : up4 ? 4 : up3 ? 3 : up2 ? 2 : up1 ? 1 : str[1]
up = up1 or up2 or up3 or up4 or up5
exit = (rsi1 > rsilimit1 and str == 1) or (rsi2 > rsilimit2 and str == 2) or (rsi3 > rsilimit3 and str == 3) or (rsi4 > rsilimit4 and str == 4) or (rsi5 > rsilimit5 and str == 5)
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

//Background
col = up ? lime : na
bgcolor(col, transp = 0)

//Trading
if up and (close < open or cf == false)
    strategy.entry("Long", strategy.long, lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
 
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

Mehr