Trendverfolgung Stop Loss Take Profit Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-24 14:17:28
Tags:

img

Übersicht

Dies ist eine Trend-Tracking-Strategie, die Bollinger-Bänder zur Bestimmung des Trends und ATR zur Einstellung von Stop-Loss und Take-Profit verwendet.

Strategie Logik

  1. Berechnen Sie die oberen und unteren Schienen der Bollinger-Bänder.
  2. Beurteilen Sie, ob der Schlusskurs über der oberen oder unter der unteren Schiene liegt.
  3. Wenn es sich um einen Trendmarkt handelt, berechnen Sie die Trendlinie, die auf dem niedrigsten Preis abzüglich des ATR-Wertes (Bulle-Markt) oder dem höchsten Preis plus dem ATR-Wert (Bäremarkt) basiert.
  4. Wenn es sich nicht um einen Trendmarkt handelt, halten Sie die Trendlinie wie die vorherige Bar.
  5. Vergleichen Sie die Trendlinie, um die Trendrichtung zu bestimmen.
  6. Erzeugen Sie Kauf-/Verkaufssignale, wenn sich die Trendlinie ändert.
  7. Setzen Sie Stop-Loss und Take-Profit: Die feste Stop-Loss-Distanz beträgt das 100-fache des Einstiegspreises; der floating Take-Profit beträgt das 1,1-fache des Einstiegspreises (Bull) oder das 0,9-fache des Einstiegspreises (Bear).

Analyse der Vorteile

  1. Kann Markttrend bestimmen, vermeiden falsche Ausbruch Trades.
  2. Setzen Sie eine Trendlinie, um nicht gefangen zu werden.
  3. angemessene Stop-Loss- und Gewinn-Einstellungen, um das Risiko zu kontrollieren und gleichzeitig Gewinn zu erzielen.

Risikoanalyse

  1. Eine falsche Einstellung der Parameter kann Handelsmöglichkeiten verpassen.
  2. Bollinger-Bänder haben eine hohe Wahrscheinlichkeit, dass sie in Bereichsmärkten falsch beurteilt werden.
  3. Wenn der Stop-Loss zu nahe ist, kann er leicht ausgeschaltet werden.

Optimierungsrichtlinien

  1. Optimierung der Bollinger-Band-Parameter für verschiedene Produkte.
  2. Optimierung der Berechnungsmethoden für die Trendlinie, z. B. Einführung anderer Indikatoren.
  3. Testen und optimieren Sie die Einstellungen für Stop-Loss und Take-Profit-Parameter.

Schlussfolgerung

Dies ist eine Strategie, die Bollinger Bands verwendet, um den Trend zu bestimmen und einen Stop-Loss und einen Take-Profit basierend auf der Trendlinie festzulegen. Die Hauptvorteile sind ein klares Trendbeurteil, ein angemessener Stop-Loss und eine Gewinn-Einstellung, um Risiken effektiv zu kontrollieren. Die Hauptrisiken stammen aus einem falschen Trendbeurteil und einem zu nahen Stop-Loss. Zukünftige Optimierungsrichtungen umfassen Parameteroptimierung, Optimierung der Trendlinieberechnung und Optimierung des Stop-Loss-Take-Profits.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © zhuenrong

// © Dreadblitz
//@version=4
strategy(shorttitle="FLI", title="Follow Line Indicator", overlay=true)
// 
BBperiod      = input(defval = 21,     title = "BB Period",    type = input.integer, minval = 1)
BBdeviations  = input(defval = 1.00,     title = "BB Deviations",    type = input.float, minval = 0.1, step=0.05)
UseATRfilter  = input(defval = true, title = "ATR Filter",  type = input.bool)
ATRperiod     = input(defval = 5,     title = "ATR Period",    type = input.integer, minval = 1)
hl            = input(defval = false, title = "Hide Labels",  type = input.bool)
//
BBUpper=sma (close,BBperiod)+stdev(close, BBperiod)*BBdeviations
BBLower=sma (close,BBperiod)-stdev(close, BBperiod)*BBdeviations
//
TrendLine = 0.0
iTrend = 0.0
buy = 0.0
sell = 0.0
//
BBSignal = close>BBUpper? 1 : close<BBLower? -1 : 0
// 
if BBSignal == 1 and UseATRfilter == 1
    TrendLine:=low-atr(ATRperiod)
    if TrendLine<TrendLine[1] 
        TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 1
    TrendLine:=high+atr(ATRperiod)
    if TrendLine>TrendLine[1]
        TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 1
    TrendLine:=TrendLine[1]
//
if BBSignal == 1 and UseATRfilter == 0
    TrendLine:=low
    if TrendLine<TrendLine[1] 
        TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 0
    TrendLine:=high
    if TrendLine>TrendLine[1]
        TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 0
    TrendLine:=TrendLine[1]
//
iTrend:=iTrend[1]
if TrendLine>TrendLine[1] 
    iTrend:=1
if TrendLine<TrendLine[1] 
    iTrend:=-1
//
buy:=iTrend[1]==-1 and iTrend==1 ? 1 : na
sell:=iTrend[1]==1 and iTrend==-1? 1 : na
//
plot(TrendLine, color=iTrend > 0?color.blue:color.red ,style=plot.style_line,linewidth=2,transp=0,title="Trend Line") 
plotshape(buy == 1 and hl == false? TrendLine-atr(8) :na, text='💣', style= shape.labelup, location=location.absolute, color=color.blue, textcolor=color.white, offset=0, transp=0,size=size.auto)
plotshape(sell == 1 and hl == false ?TrendLine+atr(8):na, text='🔨', style=shape.labeldown, location=location.absolute, color=color.red, textcolor=color.white, offset=0, transp=0,size=size.auto)
//
alertcondition(sell == 1 ,title="Sell",message="Sell")
alertcondition(buy == 1 ,title="Buy",message="Buy")
alertcondition(buy == 1 or sell == 1 ,title="Buy/Sell",message="Buy/Sell")
if (buy==1)
    strategy.entry("Buy", strategy.long)
if (sell==1)
    strategy.entry("Sell", strategy.short)
// === Stop LOSS ===

if strategy.position_size>0
    strategy.exit("Stop Loss/Profit Long","Buy", stop=strategy.position_avg_price*100, limit=strategy.position_avg_price*1.1)
if strategy.position_size<0
    strategy.exit("Stop Loss/Profit Short","Sell", stop=strategy.position_avg_price*100, limit=strategy.position_avg_price*0.9)

Mehr