
Die Trend-Tracking-Stop-Strategie ist eine auf dem Trend-Indikator TrendAlert basierende Tracking-Stop-Trading-Strategie. Durch den TrendAlert-Indikator wird die Trendrichtung ermittelt, um einen Trend-Tracking-Eintritt zu ermöglichen. Gleichzeitig wird der Stop-Loss-Satz mit dem ATR-Indikator festgelegt, um eine Risikokontrolle zu ermöglichen.
Die Strategie besteht hauptsächlich aus folgenden Teilen:
Der TrendAlert-Indikator beurteilt die Richtung des Trends. Wenn der TrendAlert größer als 0 ist, ist dies ein bullish Signal, wenn kleiner als 0 ist es ein bearish Signal.
Der ATR-Indikator berechnet die Reichweite der jüngsten Preisschwankungen. ATR multipliziert mit dem ATR StopMultiplier als fester Stop.
LowestLow und HighestHigh in Verbindung mit ATR-Stoppschaden erstellen Tracking-Stoppschaden. Ist die Steuerung der Strukturparameter aktiviert?
Eintritt in eine Über- oder Verlustposition in Abhängigkeit von der Richtung des Trendsignals. Setzen Sie nach dem Eintritt einen Take Profit und einen Stop Loss.
Nach einem Stop-Loss oder Stop-Stop-Trigger wird die Position platziert.
Die Strategie nutzt Trends, um falsche Signale zu filtern, Risiken zu verfolgen, um Verluste zu verhindern, um Gewinne zu erzielen und die Stabilität des Handelssystems zu verbessern.
Diese Strategie hat folgende Vorteile:
Trendfilter und Stop-Loss-Tracking bieten eine doppelte Garantie, um Marktgeräusche zu vermeiden und das Trading-Risiko zu kontrollieren.
Die ATR-Adaptive Stop-Loss-Einstellung verhindert Überoptimierung und ist für verschiedene Marktumgebungen geeignet.
Das Ziel ist es, die Gewinne zu sichern und die Gewinne zu vermeiden.
Strategie Logik ist klar, einfach zu verstehen und für Quantitative Trader geeignet für die zweite Entwicklung.
Es ist in der Pine-Skriptsprache geschrieben und kann ohne Programmierkenntnisse direkt auf der TradingView-Plattform verwendet werden.
Die Strategie birgt auch einige Risiken:
Trendfehler können dazu führen, dass unnötige Einstiegs- und Stop-Loss-Signale ausgelöst werden. Die Stop-Loss-Position kann entsprechend gelockert oder die Einstiegssignale gefiltert werden.
Bei starken Schwankungen kann der ATR die tatsächliche Bandbreite unterschätzen. In diesem Fall kann der ATR-Stoppmultiplier erhöht werden.
Das Zielstop kann die Gewinnspanne der Strategie einschränken. Der LimitMultiplier-Parameter kann an den Markt angepasst werden.
Die Code-Exist-Logik basiert nur auf dem Preis und sollte in der Praxis mit Zeitmanagement kombiniert werden.
Die Strategie kann optimiert werden durch:
Optimierung der Parameter ATR-Länge atRLength und Stop-Multiplikator atRStopMultiplier, Anpassung der Empfindlichkeit des Stop-Algorithmus.
Es ist wichtig, dass man sich mit verschiedenen Trends und Kennzahlen auseinandersetzt, um bessere Einstiegsmöglichkeiten zu finden.
Die Parameter des Zielstopps werden je nach den Eigenschaften der jeweiligen Transaktionsart ausgewählt oder angepasst.
Es wird eine Zeitverlustmechanik eingeführt, um die Gefahr einer Übernachtung allein zu vermeiden.
In Kombination mit der Filterung von Falschbrüchen im Volumen der Transaktionen erhöht die Strategie die Stabilität.
Diese Strategie ist insgesamt eine sehr praktische Trendverfolgungs-Stopp-Strategie. Sie nutzt Kennzahlen, um die Trendrichtung zu beurteilen, um die Trendverfolgung zu realisieren, während die Anpassung an die Stopp-Strategie festgelegt wird, um die Risikokontrolle zu gewährleisten. Die Strategie ist logisch klar, einfach zu bedienen und eignet sich hervorragend für Anfänger.
/*backtest
start: 2023-01-29 00:00:00
end: 2024-02-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jaque_verdatre
//@version=5
strategy("TrendAlert Based", overlay = true)
// Get inputs
TrendAlert = input.source(close, "TrendAlert")
atrLength = input.int(title="ATR Length", defval=15, minval=1)
useStructure = input.bool(title="Use Structure?", defval=true)
lookback = input.int(title="How Far To Look Back For High/Lows", defval=8, minval=1)
atrStopMultiplier = input.float(title="ATR Multiplier", defval=0.2, minval=0.1)
LimitMultiplier = input.float(title = "Limit Multiplier", defval = 0.5, minval = 0.1)
PineConnectorID = input.int(title = "Pine Connector ID",defval = 0)
CurrencyToSend = input.string(title = "personilized currency", defval = "ETHUSD")
Risk = input.int(title = "risk in % to send", defval = 10, minval = 1)
// Calculate data
atr = ta.atr(atrLength)
lowestLow = ta.lowest(low, lookback)
highestHigh = ta.highest(high, lookback)
longStop = (useStructure ? lowestLow : close) - atr * atrStopMultiplier
shortStop = (useStructure ? highestHigh : close) + atr * atrStopMultiplier
// Draw data to chart
plot(atr, color=color.rgb(33, 149, 243), title="ATR", display = display.none)
plot(longStop, color=color.green, title="Long Trailing Stop")
plot(shortStop, color=color.red, title="Short Trailing Stop")
var float LimitL = na
var float LimitS = na
var float LPosPrice = na
var float SPosPrice = na
var float LPosLongStop = na
var float SPosShortStop = na
KnowLimit (PosPrice, PosStop) =>
(PosPrice-PosStop)*LimitMultiplier+PosPrice
NotInTrade = strategy.position_size == 0
InLongTrade = strategy.position_size > 0
InShortTrade = strategy.position_size < 0
longCondition = TrendAlert > 0 and NotInTrade
if (longCondition)
LPosPrice := close
LPosLongStop := longStop
LimitL := KnowLimit(LPosPrice, LPosLongStop)
strategy.entry("long", strategy.long)
LTPPip = LimitL-LPosPrice
LSLPip = LPosPrice-longStop
alert(str.tostring(PineConnectorID)+',buy,'+str.tostring(CurrencyToSend)+',risk='+str.tostring(Risk)+',sl='+str.tostring(LSLPip)+'tp='+str.tostring(LTPPip), alert.freq_once_per_bar_close)
strategy.exit("exit", "long", stop = longStop, limit = LimitL)
shortCondition = TrendAlert < 0 and NotInTrade
if (shortCondition)
SPosPrice := close
SPosShortStop := shortStop
LimitS := KnowLimit(SPosPrice, SPosShortStop)
strategy.entry("short", strategy.short)
STPPip = SPosPrice-LimitS
SSLPip = shortStop - SPosPrice
alert(str.tostring(PineConnectorID)+',sell,ETHUSD,risk=10,sl='+str.tostring(SSLPip)+'tp='+str.tostring(STPPip), alert.freq_once_per_bar_close)
strategy.exit("exit", "short", stop = shortStop, limit = LimitS)
plotshape(longCondition, color = color.green, style = shape.labelup, location = location.belowbar, size = size.normal, title = "Long Condition")
plotshape(shortCondition, color = color.red, style = shape.labeldown, location = location.abovebar, size = size.normal, title = "Short Condition")
if (InShortTrade)
LimitL := close
LPosLongStop := close
LPosPrice := close
PlotLongTakeProfit = plot(LimitL, color = InLongTrade ? color.rgb(0, 255, 64) : color.rgb(120, 123, 134, 100), title = "Long Take Profit")
PlotLongStopLoss = plot(LPosLongStop, color = InLongTrade ? color.rgb(255, 0, 0) : color.rgb(120, 123, 134, 100), title = "Long Stop Loss")
PlotLongPosPrice = plot(LPosPrice, color = InLongTrade ? color.gray : color.rgb(120, 123, 134, 100), title = "Long Position Price")
if (InLongTrade)
LimitS := close
SPosShortStop := close
SPosPrice := close
PlotShortTakeProfit = plot(LimitS, color = InShortTrade ? color.rgb(0, 255, 64) : color.rgb(120, 123, 134, 100), title = "Short Take Profit")
PlotShortStopLoss = plot(SPosShortStop, color = InShortTrade ? color.rgb(255, 0, 0) : color.rgb(120, 123, 134, 100), title = "Short Stop Loss")
PlotShortPosPrice = plot(SPosPrice, color = InShortTrade ? color.gray : color.rgb(120, 123, 134, 100), title = "Short Position Price")
fill(PlotLongPosPrice, PlotLongTakeProfit, color = InLongTrade ? color.rgb(0, 255, 0, 95) : color.rgb(0, 255, 0, 100))
fill(PlotShortPosPrice, PlotShortTakeProfit, color = InShortTrade ? color.rgb(0, 255, 0, 95) : color.rgb(0, 255, 0, 100))
fill(PlotLongPosPrice, PlotLongStopLoss, color = InLongTrade ? color.rgb(255, 0, 0, 95) : color.rgb(255, 0, 0, 100))
fill(PlotShortPosPrice, PlotShortStopLoss, color = InShortTrade ? color.rgb(255, 0, 0, 95) : color.rgb(255, 0, 0, 100))