Die Trend Following Stop Loss Strategie ist eine Trend-Tracking-Stop-Loss-Handelsstrategie, die auf dem TrendAlert-Indikator basiert. Sie bestimmt die Trendrichtung durch den TrendAlert-Indikator, um den Trend-Tracking-Eintrag umzusetzen. Gleichzeitig verwendet sie den ATR-Indikator, um den Stop-Loss zu setzen, um Risiken zu kontrollieren.
Die Strategie besteht aus folgenden Hauptteilen:
Der TrendAlert-Indikator beurteilt die Trendrichtung. Wenn TrendAlert größer als 0 ist, ist es ein Aufwärtssignal. Wenn er kleiner als 0 ist, ist es ein Bärensignal.
Der ATR-Indikator berechnet den jüngsten Kursschwankungsbereich. ATR multipliziert mit dem ATR-Stop-Loss-Multiplikator atrStopMultiplier wird als fester Stop-Loss verwendet.
Der niedrigste niedrigste niedrigsteNiedrigste und höchste höchste höchsteHoch zusammen mit ATR-Stop-Loss konstruieren den Tracking-Stop-Loss. Der Strukturparameter steuert, ob er aktiviert ist.
Geben Sie Long- oder Short-Positionen gemäß der Trendsignalrichtung ein.
Schließen von Positionen, wenn der Preis einen Stop-Loss oder einen Profit auslöst.
Die Strategie filtert falsche Signale durch Trendbeurteilung, kontrolliert Risiken durch Stop-Loss-Tracking, gewährleistet die Rentabilität durch Take-Profit und verbessert die Stabilität des Handelssystems.
Die wichtigsten Vorteile dieser Strategie sind:
Die doppelte Garantie der Trendfilterung und Stop-Loss-Verfolgung verhindert, Marktlärm zu verfolgen, und gewährleistet kontrollierte Handelsrisiken.
Die ATR-adaptive Stop-Loss-Einstellung verhindert eine Überoptimierung und eignet sich für verschiedene Marktumgebungen.
Profit machen sorgt für Rentabilität und verhindert, dass Profite verbraucht werden.
Die Strategie-Logik ist klar und prägnant, leicht verständlich und anpassungsfähig, geeignet für quantitative Händler
Es ist in der Sprache Pine Script geschrieben und kann direkt auf der TradingView-Plattform ohne Programmierkenntnisse verwendet werden.
Diese Strategie birgt auch einige Risiken:
Eine falsche Trendbeurteilung kann zu unnötigen Eintritts- und Stop-Loss-Trigger führen.
Wenn der Markt heftig schwankt, kann ATR die wahre Amplitude unterschätzen. Zu diesem Zeitpunkt kann der ATR-Stop-Loss-Multiplikator atrStopMultiplier erhöht werden.
Der Zielgewinn kann den Gewinnspielraum der Strategie einschränken.
Die Logik der Existenz, die nur auf dem Preis beruht, sollte mit dem Zeitmanagement kombiniert werden.
Die Strategie kann in folgenden Aspekten optimiert werden:
Optimieren der Parameter ATR Länge atrLength und Stop-Loss-Multiplikator atrStopMultiplier, um die Empfindlichkeit des Stop-Loss-Algorithmus anzupassen.
Versuchen Sie verschiedene Trendindikatoren, um bessere Einstiegsmöglichkeiten zu finden.
Auswahl oder Anpassung des Zielgewinnparameters entsprechend den Merkmalen bestimmter Handelsarten.
Vergrößern Sie den Zeitstop-Loss-Mechanismus, um Risiken über Nacht zu vermeiden.
Filtern Sie falsche Ausbrüche, indem Sie Handelsvolumenindikatoren kombinieren, um die Stabilität der Strategie zu verbessern.
Im Allgemeinen ist dies eine sehr praktische Trend-Tracking-Stop-Loss-Strategie. Sie verwendet Indikatoren, um die Trendrichtung zu bestimmen, um Trend-Tracking zu erreichen, während sie adaptive Stops setzt, um die Risikokontrolle zu gewährleisten. Die Strategie-Logik ist klar und einfach zu bedienen, so dass sie ideal für Anfänger zu lernen ist. Gleichzeitig bietet sie auch einen guten Handelsstrategie-Rahmen für die fortgeschrittene Strategieentwicklung, die quantitative Händler wert ist
/*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))