
Extreme Zwei-Wege-RSI-Trend-Strategie
Die Strategie ist eine schnelle Strategie, bei der der RSI-Indikator verwendet wird, um die Preisentwicklung zu bestimmen. Sie verfügt über die Fähigkeit, sowohl zu überschreiten als auch zu unterschreiten und kann schneller kurze Kurse erfassen.
Die Strategie nutzt die verbesserte RSI-Anzeige, um den Überkauf-Überverkauf-Zustand des Preises zu bestimmen, in Kombination mit K-Line-Einheiten-Filtergeräusche. Wenn der RSI in einer überkauften oder überverkauften Zone ist und die K-Line-Einheiten größer als 1⁄3 des Durchschnittsvolumens sind, über- oder entfernt. Warten Sie, bis der K-Line-Umkehrung nach dem Trigger des Handelssignals und dem Rückruf des RSI in die sichere Zone folgen.
Die Strategie reagiert schnell und kann schnellere Kurzlinien-Trends erfassen. Die physikalische Filterung hilft dabei, Geräusche zu beseitigen und falsche Durchbrüche zu vermeiden. Die Strategie ist für Varianten mit hoher Volatilität geeignet, um einen höheren Ertrag zu erzielen.
Diese Strategie ist sehr sensibel auf die Reaktion auf Preisänderungen und wird leicht von falschen Signalen im Markt getäuscht; außerdem kann ein hochflüchtiger Marktstop-Loss häufiger ausgelöst werden. Die Stop-Loss-Marge kann entsprechend gelockert und die RSI-Parameter optimiert werden, um die Wahrscheinlichkeit von falschen Signalen zu verringern.
Es ist möglich, verschiedene Periodenindikator-Parameter zu testen, um die Strategie zu optimieren und die beste Kombination zu finden. Darüber hinaus kann man auch andere Indikatoren, wie beispielsweise Seabed Trading Rules, in Betracht ziehen, um das Filtersignal zu unterstützen. Es könnte auch ein guter Versuch sein, die besseren RSI-Thresholds in Kombination mit Machine-Learning-Methoden zu trainieren.
Die Strategie ist insgesamt eine effiziente und sensible Short-Line-Strategie. Durch einige Parameter- und Modelloptimierungen wird die Stabilität und die Profitabilität weiter verbessert. Die Strategie ist für quantitative Händler eine weitere Studie und Überwachung wert.
/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "Noro's Fast RSI Strategy v1.1", shorttitle = "Fast RSI str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
rsiperiod = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Source")
fromyear = input(2018, defval = 2018, 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")
//Fast RSI
fastup = rma(max(change(rsisrc), 0), rsiperiod)
fastdown = rma(-min(change(rsisrc), 0), rsiperiod)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
uplimit = 100 - limit
dnlimit = limit
//Body
body = abs(close - open)
emabody = ema(body, 30) / 3
//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up = bar == -1 and fastrsi < dnlimit and body > emabody
dn = bar == 1 and fastrsi > uplimit and body > emabody
exit = ((strategy.position_size > 0 and fastrsi > dnlimit) or (strategy.position_size < 0 and fastrsi < uplimit)) and body > emabody
//Trading
if up
strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
if dn
strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
if time > timestamp(toyear, tomonth, today, 00, 00) or exit
strategy.close_all()