Die Strategie kombiniert Dynamik-Indikatoren mit relativ starken Indikatoren (RSI), unterstützt durch ein nachvollziehbares Stop-Loss-Mechanismus, um die Richtung des Trends zu erfassen und gleichzeitig das Risiko zu kontrollieren. Wenn der Preis eine starke Dynamik aufweist, kauft man mehr; wenn der Preis eine schwache Dynamik aufweist, verkauft man leer. Die Strategie setzt gleichzeitig Stop-Loss-Bedingungen und nutzt die nachvollziehbaren Stop-Loss-Bedingungen, um die höchsten Gewinnniveaus zu verfolgen, um die Gewinne zu sperren und die Verluste zu reduzieren.
Der Dynamikindikator ADX wird verwendet, um die Richtung der Preisentwicklung zu bestimmen
ADX größer als 20 zeigt eine Tendenz
Bei +DI-Linien ist das -DI-Linien-Signal für die Anzeige der Anzeige.
Wenn die -DI-Linie unter die +DI-Linie fällt, ist dies ein Abwärtstrendsignal
Der RSI beurteilt Überkauf und Überverkauf
RSI über 70 als Überkaufzone, ein Signal nach unten
RSI unter 30 als Überverkaufszone, ein Signal für einen Anstieg
Wenn der ADX einen Trend beurteilt und der RSI ein Bestätigungssignal gibt, wird ein entsprechender Positiv-Operation durchgeführt.
Die Strategie verwendet eine dynamisch anpassbare Nachschub-Stopp-Verlust-Mechanik, die zwei Parameter umfasst:
Aktivierungsprozess: Aktivierung nach dem Stop-Loss, wenn der Preis nach dem Börsengang den festgelegten Prozentsatz erreicht
Tracking-Ratio: die prozentuale Distanz zwischen den Tracking-Stopps und den jüngsten Höchstgewinnen
Wenn der Preis die Aktivierungsbedingungen erreicht hat, folgt die Stop-Loss-Linie dem höchsten Gewinnniveau. Wenn der Preis zurückgeht, verschiebt sich die Stop-Loss-Linie darunter. Wenn der Rückgang die gesetzte Tracking-Rate übersteigt, wird die Stop-Loss-Linie ausgelöst und alle Positionen geschlossen.
Die Dynamik-Indikatoren zeigen die Richtung des Trends und verhindern, dass Unternehmen ihre Kosten überschreiten.
RSI-Indikatoren sorgen dafür, dass keine Umkehrschritte verpasst werden
Das System kann mit Stop-Loss-Systemen ausgerüstet werden, um Gewinne zu sichern und Verluste zu reduzieren.
Die Strategie ist klar, präzise und leicht verständlich
Breite Anwendbarkeit für verschiedene Märkte und Zeiträume
ADX entscheidet, dass ein falscher Durchbruch ein falsches Signal erzeugt
RSI erzeugt mehrere Falschsignale
Die modulierbare Verlustparameter sind falsch eingestellt
Die Luftwaffe ist in der Lage, die Luft zu überqueren.
Testen von verschiedenen ADX- und RSI-Parameterkombinationen Optimierung der Aufnahme
Die Optimierung von verschiedenen Stop-Loss-Aktivierungspunkten und Tracking-Werten
Erwägen Sie Filter für andere Indikatoren, um die Signalqualität zu verbessern
Verschiedene Märkte werden getestet, um allgemeine Parameter einzustellen.
Die Strategie integriert Dynamikanalyse, RSI-Indikatoren und Stop-Loss-Mechanismen, um die Richtung des Trends zu bestimmen, Umkehrpunkte zu identifizieren und das Handelsrisiko zu kontrollieren. Die Strategie ist klar konzipiert, einfach umzusetzen und ist für den Trendhandel in Märkten wie Aktien, Devisen und Digitalwährungen geeignet. Die Strategie kann durch Parameteroptimierung und Indikatorfilterung weiter verbessert werden.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-03 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Trailing Stop with RSI", overlay=true)
length = input.int(12, "Momentum Length")
price = close
momentum(seria, length) =>
mom = seria - seria[length]
mom
mom0 = momentum(price, length)
mom1 = momentum(mom0, 1)
rsiLength = input.int(14, "RSI Length")
rsiOverbought = input(70, "RSI Overbought Level")
rsiOversold = input(30, "RSI Oversold Level")
rsiValue = ta.rsi(close, rsiLength)
tsact = input.float(0.0, "Trailing Stop Activation (%)", group="strategy", tooltip="Activates the Trailing Stop once this PnL is reached.") / 100
tsact := tsact ? tsact : na
ts = input.float(0.0, "Position Trailing Stop (%)", group="strategy", tooltip="Trails your position with a stop loss at this distance from the highest PnL") / 100
ts := ts ? ts : na
in_long = strategy.position_size > 0
in_short = strategy.position_size < 0
var ts_ = array.new_float()
ts_size = array.size(ts_)
ts_get = ts_size > 0 ? array.get(ts_, ts_size - 1) : 0
if in_long
if tsact and high > strategy.position_avg_price + strategy.position_avg_price * tsact
if ts_size > 0 and ts_get < high
array.push(ts_, high)
if ts_size < 1
array.push(ts_, high)
if not tsact
if ts_size > 0 and ts_get < high
array.push(ts_, high)
if ts_size < 1
array.push(ts_, high)
if in_short
if tsact and low < strategy.position_avg_price - strategy.position_avg_price * tsact
if ts_size > 0 and ts_get > low
array.push(ts_, low)
if ts_size < 1
array.push(ts_, low)
if not tsact
if ts_size > 0 and ts_get > low
array.push(ts_, low)
if ts_size < 1
array.push(ts_, low)
trail = in_long and ts_size > 0 ? low < ts_get - ts_get * ts : in_short and ts_size > 0 ? high > ts_get + ts_get * ts : na
if (mom0 > 0 and mom1 > 0)
strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE")
else
strategy.cancel("MomLE")
if (mom0 < 0 and mom1 < 0)
strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE")
else
strategy.cancel("MomSE")
tsClose = in_long ? ts_get - ts_get * ts : in_short ? ts_get + ts_get * ts : na
if trail
strategy.close_all()
if not strategy.opentrades
array.clear(ts_)
rsiOverboughtCondition = rsiValue >= rsiOverbought
rsiOversoldCondition = rsiValue <= rsiOversold
if rsiOverboughtCondition
strategy.close("SHORT", "SX")
strategy.entry("LONG", strategy.long)
if rsiOversoldCondition
strategy.close("LONG", "LX")
strategy.entry("SHORT", strategy.short)
plotchar(ts_get, "GET", "")
plot(strategy.position_avg_price > 0 ? strategy.position_avg_price : na, "Average", color.rgb(251, 139, 64), 2, plot.style_cross)
plot(tsClose > 0 ? tsClose : na, "Trailing", color.rgb(251, 64, 64), 2, plot.style_cross)
plot(strategy.position_avg_price - strategy.position_avg_price * tsact > 0 ? strategy.position_avg_price - strategy.position_avg_price * tsact : na, "TS Activation", color.fuchsia, 2, plot.style_cross)