Diese Strategie verwendet den RSI-Indikator, um die Markttrends zu ermitteln und Handelssignale in überkauften und überverkauften Bereichen zu senden, um die Kurzlinie der Kurzlinie des Marktes zu erfassen. Sie kombiniert gleichzeitig den Gleichgewichtsindikator und die Stop-Loss-Logik, um die Handelssignale zu filtern und das Risiko zu kontrollieren.
Berechnen Sie den RSI ((14) -Wert und setzen Sie die Überkauflinie auf 67, die Überverkauflinie auf 44.
Wenn der RSI die Überkauflinie überschreitet, gibt es ein Verkaufssignal; wenn der RSI die Überkauflinie unterschreitet, gibt es ein Kaufsignal.
Die Überschneidung der mittleren Linie filtert nur dann, wenn der Schlusskurs unter dem Mittleren von gestern liegt, und nur dann, wenn der Schlusskurs über dem Mittleren von gestern liegt, und nur dann, wenn der Schlusskurs über dem Mittleren von gestern liegt.
Setzen Sie eine Stop-Loss-Logik. Sie können die Stop-Loss-Logik an einem festen Punkt oder an einem RSI-Wert auswählen.
Der RSI ist ein Indikator für Überkauf und Überverkauf, um kurzfristige Chancen zu erfassen.
Filterung in Kombination mit einer Gleichlinie, um eine Umkehrung in einem Trend zu vermeiden.
Ein Stop-Loss-System, das den Einzelschaden kontrolliert.
Es ist eine gute Gelegenheit, eine Umkehrung am Vorabend einer Umkehrung zu ergreifen.
Der RSI ist rückläufig und kann abweichen, was zu falschen Signalen führt. Die Lösung besteht darin, die Parameter entsprechend anzupassen oder in Kombination mit anderen Indikatoren zu verwenden.
Die Anzahl der festen Stopps kann zu groß oder zu klein sein. Es gibt eine flexiblere Trailing Stop und Dynamische Stopp.
Ein fester Stopp kann zu früh oder zu wenig Stopps sein. Ein Stopp kann nach dem RSI-Wert oder dem ATR-Wert berücksichtigt werden.
Es ist nicht möglich, die Trendschwankungen effektiv zu filtern, was zu häufigen Positionseröffnungen und Verlusten führen kann. Die RSI-Parameter können entsprechend angepasst oder andere Filterbedingungen hinzugefügt werden.
Testen Sie die Wirksamkeit des RSI-Indikators für verschiedene Periodenparameter.
Anpassung der Parameter des RSI, um verschiedene Überkauf-Überverkauf-Linien zu testen.
Versuchen Sie mit verschiedenen Arten von Moving Averages oder anderen Filtern.
Testen Sie die Wirkung von festem und dynamischem Bremsstopp.
Optimierung der Stop-Loss-Werte, um sie besser an die Regeln der Marktfluktuation anzupassen.
Die neuen Filterbedingungen für den Einstieg verhindern, dass sich die Schauspieler in der Lage befinden, sich auf die Schwingung einzulassen.
Erwägen Sie, mehrere Zeitspannen zu kombinieren, um die Signalqualität zu verbessern.
Diese Strategie nutzt die RSI-Indikatoren, um Überkauf-Überverkauf zu beurteilen und bi-Wege-Handel in Kombination mit Gleichgewicht und Stop-Loss zu betreiben. Sie kann kurzfristige Marktumkehrmöglichkeiten erfassen. Durch die Optimierung der Parameter und die Ergänzung der Filterbedingungen kann die Ertragswirksamkeit der Strategie weiter verbessert und das Risiko kontrolliert werden.
/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//© профешинил хомячело
//@version = 4
strategy("RSI Strategy Professional Хомячело", overlay=false)
length = input( 14 )
overSold = input( 44 )
overBought = input( 67 )
price = open
rsi = rsi(price, length)
band1 = hline(overSold, "overSold12", color=#C0C0C0)
band0 = hline(overBought, "overBought12", color=#C0C0C0)
plot(rsi, "RSI", color=color.red)
fill(band1, band0, color=color.black, transp=90, title="Background")
src = close
a = sma(src, 1)
aaa = strategy.opentrades + 1
n = input(defval = 0.0576923077, title = "AvgPrice - n")
//n = 0.0576923077
buysignal = crossover(rsi, overSold) and (a < (strategy.position_avg_price - n) or strategy.opentrades == 0)
sellsignal = crossunder(rsi, overBought) and (a > (strategy.position_avg_price + n) or strategy.opentrades == 0)
// crossover(rsi, overSold)
// crossunder(rsi, overBought)
if (not na(rsi))
if(buysignal)
strategy.entry("LONG", strategy.long, comment = tostring(a) + "\n(" + tostring(aaa) + ")")
n += 1000
if(sellsignal)
strategy.entry("SHORT", strategy.short, comment = tostring(a) + "\n(" + tostring(aaa) + ")")
n += 1000
//лонги орні
if(rsi < 15 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n))
strategy.entry("LONG", strategy.long, comment = "ЙОБАНИЙ НАСРАВ ТА БЕРИ ЛОНГ НА ВСЬО ШО Є НАХУЙ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)")
if(rsi < 20 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n))
strategy.entry("LONG", strategy.long, comment = "ЛОНГ НА ВСЮ КОТЛЄТУ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)")
//шорти орні
if(rsi > 85 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n))
strategy.entry("SHORT", strategy.short, comment = "ЙОБАНИЙ НАСРАВ ТА БЕРИ ШОРТ НА ВСЬО ШО Є НАХУЙ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)")
if(rsi > 80 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n))
strategy.entry("SHORT", strategy.short, comment = "ШОРТ НА ВСЮ КОТЛЄТУ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)")
//стоп-лосс і ціль
//rsi
rsion = input(defval = false, title = "Тейк-профіт по RSI")
rcl = input(defval = 73.0, title = "RSI тейк по лонгу")
rcs = input(defval = 44.0, title = "RSI тейк по шорту")
possize = input(defval = 250.0, title = "Маржа")
posp = input(defval = 3.0, title = "Плече")
//tick
ut = input(defval = false, title = "Тейк-профіт")
tar = input(defval = 4500.0, title = "Тейк-профіт у тіках")
us = input(defval = false, title = "Стоп-лосс")
stop = input(defval = 0.0, title = "Стоп-лосс у тіках")
tar:=tar/syminfo.mintick
stop:=stop/syminfo.mintick
if(ut==true and us==false)
strategy.exit(id="LX", from_entry = "LONG", profit = tar, comment = "ТейкL")
strategy.exit(id="SX", from_entry = "SHORT", profit = tar, comment = "ТейкS")
if(us==true and ut==false)
strategy.exit(id="LX", from_entry = "LONG", loss = stop, comment = "СтопL")
strategy.exit(id="SX", from_entry = "SHORT", loss = stop, comment = "СтопS")
if(ut==true and us==true)
strategy.exit(id="LX", from_entry = "LONG", profit = tar, loss = stop, comment ="Тейк/СтопL")
strategy.exit(id="SX", from_entry = "SHORT", profit = tar, loss = stop, comment ="Тейк/СтопS")
//закриття по rsi
if(rsion == 1 )
pr = round(((a / strategy.position_avg_price - 1) * possize * posp), 2)
ppr = round(((a / strategy.position_avg_price - 1) * 100 * posp), 2)
spr = round((1 - (a / strategy.position_avg_price)) * possize * posp, 2)
sppr = round((100 - (a / strategy.position_avg_price * 100)) * posp, 2)
if(rsi > rcl)
strategy.close(id="LONG", comment = "LT\n" + tostring(ppr) + "%\n" + tostring(pr) + "$\n" + tostring(a))
if(rsi < rcs)
strategy.close(id="SHORT", comment = "ST\n" + tostring(sppr) + "%\n" + tostring(spr) + "$\n" + tostring(a))