
Die Kernidee dieser Strategie basiert auf der RSI-Strategie und enthält einige wichtige Handelsregeln, einschließlich Stop Loss, Stop Stop, Tracking Stop Loss und Leverage Tracking Stop Loss. Dies ermöglicht der Strategie, während der Rückmessung höhere Gewinne bei Trendbewegungen zu erzielen, während die Verluste bei Shockbewegungen minimiert werden.
Die Strategie berechnet zuerst den RSI-Indikator, indem sie zu viel macht, wenn der RSI unter der Überkauflinie liegt, und zu wenig, wenn der RSI über die Überverkauflinie liegt.
Nach mehreren Signal-Triggern wird der höchste Preis zu diesem Zeitpunkt als Referenzpunkt für die Verfolgung eines Stop-Losses aufgezeichnet. Wenn der Preis unter dem Tracking-Stop-Punkt abzüglich der Stop-Loss-Width liegt, wird die Position platziert.
Nach dem Auslösen des Auslösersignals wird der niedrigste Preis zu diesem Zeitpunkt als Bezugspunkt für die Verfolgung des Stopps aufgezeichnet. Wenn der Preis höher ist als die Verfolgung des Stopps plus die Stop-Width, wird die Ausgleichsposition beendet.
Setzen Sie gleichzeitig einen festen Stopp- und Stop-Loss-Abstand. Wenn der Preis den Stop-Loss-Abstand erreicht, wird der Stopp aufgelöst; wenn der Stop-Loss-Abstand erreicht wird, wird der Stopp aufgelöst.
Außerdem wird die Stop-Line nach der Leverage-Set-Leverage-Tracking-Linie geklickt. Wenn der Preis die Stop-Line der Leverage-Tracking-Linie berührt, wird die Position gestoppt.
Durch die Verfolgung der höchsten Stop-Losses im Aufwärtstrend und der niedrigsten Stop-Losses im Abwärtstrend, in Kombination mit einer festen Stop-Loss-Distanz, kann ein höherer Gewinn in einem Trend erzielt werden. Die Einrichtung von Leverage-Stop-Losses kann verhindern, dass die Verluste größer werden.
Der größte Vorteil der Strategie besteht darin, dass mehrere Handelsregeln eingeführt wurden, um das Risiko besser zu kontrollieren, während die Vorteile der RSI-Strategie genutzt werden.
Die Strategie hat folgende Vorteile:
Im Trend kann der Stop-Loss-Tracking-System den Trend-Gewinn kontinuierlich verfolgen und somit höhere Gewinne erzielen.
Ein fester Stop-Loss-Distanz kann einen Teil des Gewinns sperren, um zu vermeiden, dass der gesamte Gewinn eingesperrt wird, wenn sich der Trend umkehrt.
Leverage-Tracking-Stopp-Verluste können verhindern, dass Verluste ausbreiten und Risiken kontrollieren.
Die Kombination verschiedener Stop-Loss-Methoden kann ihre Vorteile in verschiedenen Marktumgebungen ausüben und die Stabilität der Strategie insgesamt verbessern.
Die Strategieparameter können flexibel angepasst werden, um sich an verschiedene Handelsarten und Marktumgebungen anzupassen.
Strategie-Logik ist klar und verständlich, leicht zu verifizieren, zu optimieren und anzuwenden.
Die Hauptrisiken dieser Strategie sind:
Die RSI-Strategie selbst birgt ein gewisses Risiko für Fehltrades und kann dazu führen, dass ein Stop-Loss ausgelöst wird. Sie kann durch Anpassung der RSI-Parameter optimiert werden.
Schwingungen in der Nähe des Stopppunkts können häufig zu Stopps führen. Um dies zu vermeiden, kann die Stoppdistanz entsprechend erweitert werden.
Die Stopp-Distanz kann nicht vollständig auf die Gewinne im Trend-Markt ausgerichtet werden. Sie kann mit anderen Indikatoren kombiniert werden, um zu bestimmen, wann der Trend endet.
Der Standstillstand ist möglicherweise zu klein, um Verluste vollständig zu vermeiden. Es kann in Betracht gezogen werden, einen Schwingungsstopp oder einen dynamischen Stopp zu verwenden.
Eine zu hohe Hebelwirkung kann dazu führen, dass der Leverage-Tracking-Stopp zu nahe am Börsengang liegt. Die Leverage-Einstellungen sollten entsprechend gesenkt werden.
Die Zeiträume der Rückmeldung sind nicht vollständig repräsentativ für die zukünftige Marktentwicklung. Risikokontrollen sollten durchgeführt werden und die Wirksamkeit der verschiedenen Zeiträume überprüft werden.
Diese Risiken können durch Parameteranpassung, Optimierung von Stop-Loss-Mechanismen und Risikokontrollen gemindert werden.
Die Strategie kann in folgenden Richtungen weiter optimiert werden:
Optimierung der RSI-Parameter und Verringerung der Wahrscheinlichkeit eines Fehlhandels.
Versuchen Sie mit anderen Indikatoren, wie KD, MACD, etc., um die Eintrittszeit zu bestimmen, und kombinieren Sie sie mit dem RSI, um mehrere Filter zu bilden.
Dynamische Optimierung von Stop-Loss-Stop-Parametern mit Methoden wie Machine Learning.
Versuchen Sie mit komplexeren Stop-Methoden, wie z. B. Schwingungs-Stop, Durchschnitts-Stop, Dynamik-Stop.
Optimierung der Einstellung von Leverage-Levels und die Auswirkungen von unterschiedlichen Leverages auf die Ertrags- und Risikokontrolle.
Die Parameter werden automatisch an die veränderte Marktumgebung angepasst, z. B. α-Dual Thrust.
In Kombination mit anderen Faktoren, wie z. B. der Energie des Handelsvolumens, wird die Beständigkeit des Trends beurteilt.
Technologien wie Deep Learning werden zur Entwicklung stabilerer und erklärbarer Methoden zur Verlustbewältigung eingesetzt.
Daten aus verschiedenen Sorten und Zeitabschnitten werden getestet, um die Robustheit der Strategie zu bewerten.
Diese Strategie auf der Grundlage der RSI-Strategie, um mehrere Arten von Stop-Loss-Erweiterung, um die doppelte Rolle von Stop-Loss in Trend profitieren und Risikokontrolle zu spielen. Strategie Optimierung Raum ist noch groß, kann von mehreren Seiten beginnen, um die Strategie Vorteile zu erhöhen und Risiken zu reduzieren. Stop-Loss-Strategie Ideen sind universell, kann auf mehr Strategien und Handelsarten erweitert werden, ist eine sehr wertvolle Richtung für die Forschung.
/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Adding some essential components to a prebuilt RSI strategy", overlay=true)
/////////////// Component Code Start ///////////////
testStartYear = input(2011, "Backtest Start Year")
testStartMonth = input(8, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2016, "Backtest Stop Year")
testStopMonth = input(9, "Backtest Stop Month")
testStopDay = input(29, "Backtest Stop Day")
// testStopDay = testStartDay + 1
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
testPeriod() => true
/////////////// Component Code Stop ///////////////
///////////// RSI component /////////////
length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close
vrsi = rsi(price, length)
notna = not na(vrsi)
/////////////// STRATEGY ///////////////
ts = input(99999, "Trailing Stop") / 100
tp = input(99999, "Take Profit") / 100
sl = input(99999, "Stop Loss") / 100
long = notna and crossover(vrsi, overSold)
short = notna and crossunder(vrsi, overBought)
last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)
last_open_long_signal = long_signal ? open : nz(last_open_long_signal[1])
last_open_short_signal = short_signal ? open : nz(last_open_short_signal[1])
last_long_signal = long_signal ? time : nz(last_long_signal[1])
last_short_signal = short_signal ? time : nz(last_short_signal[1])
in_long_signal = last_long_signal > last_short_signal
in_short_signal = last_short_signal > last_long_signal
last_high = not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1])
last_low = not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1])
long_ts = not na(last_high) and high <= (last_high - ts) //and high >= last_open_long_signal
short_ts = not na(last_low) and low >= (last_low + ts) //and low <= last_open_short_signal
long_tp = high >= (last_open_long_signal + tp)
short_tp = low <= (last_open_short_signal - tp)
long_sl = low <= (last_open_long_signal - sl)
short_sl = high >= (last_open_short_signal + sl)
leverage = input(200, "Leverage")
long_call = last_open_long_signal - (0.8 + 0.2 * (1/leverage)) / leverage * last_open_long_signal
short_call = last_open_short_signal + (0.78 + 0.2 * (1/leverage)) / leverage * last_open_short_signal
long_call_signal = low <= long_call
short_call_signal = high >= short_call
if testPeriod()
strategy.entry("Long", strategy.long, when=long_signal)
strategy.entry("Short", strategy.short, when=short_signal)
// plot(long_call, color=red)
// plot(short_call, color=green)
strategy.close("Long", when=long_call_signal)
strategy.close("Short", when=short_call_signal)
strategy.close("Long", when=long_tp)
strategy.close("Short", when=short_tp)
strategy.close("Long", when=long_sl)
strategy.close("Short", when=short_sl)
strategy.close("Long", when=long_ts)
strategy.close("Short", when=short_ts)