Strategie für die Verfolgung von Linien


Erstellungsdatum: 2023-12-01 18:31:39 zuletzt geändert: 2023-12-01 18:31:39
Kopie: 1 Klicks: 606
1
konzentrieren Sie sich auf
1619
Anhänger

Strategie für die Verfolgung von Linien

Überblick

Die Tracking-Line-Strategie ist eine Trend-Tracking-Strategie, die auf dem Brin-Band-Indikator und dem durchschnittlichen realen Schwankungsbereich (ATR) basiert. Sie passt die Trend-Beurteilungslinie dynamisch an. Sie wird nach oben angepasst, wenn sie die Brin-Band durchbricht, und nach unten, wenn sie die Brin-Band durchbricht, um die Trends zu beurteilen und zu verfolgen.

Strategieprinzip

Die Strategie berechnet zuerst die Auf- und Abwärtsbahnen des Brin-Bandes und die durchschnittliche reale Bandbreite. Dann wird entschieden, ob der Preis den Brin-Band-Bereich überschreitet oder überschreitet.

Bei einem Kursbruch wird die Trendentscheidungslinie auf den niedrigsten Preis minus den ATR gesetzt, wenn die ATR-Filterung aktiviert ist; wenn die ATR-Filterung nicht aktiviert ist, wird sie direkt auf den niedrigsten Preis gesetzt.

Wenn der Preis aus der Bahn geht, wird die Trendentscheidungslinie auf den höchsten Preis plus ATR gesetzt, wenn der ATR-Filter aktiviert ist. Wenn der ATR-Filter nicht aktiviert ist, wird der höchste Preis direkt gesetzt.

Auf diese Weise kann die Trendbeurteilung dynamisch angepasst werden, um eine Trendbeurteilung zu ermöglichen, wenn der Preis durch die Brin-Reihe auf und abgleitet.

Wenn die aktuelle Trendbeurteilung Linie höher als die vorherige Trendbeurteilung Linie ist, bedeutet dies, dass die aktuelle Trendbeurteilung Linie in einem Aufwärtstrend ist. Wenn die aktuelle Trendbeurteilung Linie niedriger als die vorherige Trendbeurteilung Linie ist, bedeutet dies, dass die aktuelle Trendbeurteilung Linie in einem Abwärtstrend ist.

Die Strategie kann in Abhängigkeit von den Trends mehrere Short-Operationen durchführen.

Analyse der Stärken

  • Dynamische Anpassung der Trendbeurteilungslinie, die Preistrends flexibel erfassen kann
  • Der Brin-Band-Indikator ist ein guter Indikator, um eine Trendwende bei einem Preisbruch zu erkennen.
  • Einführung von ATR-Parametern, die zum Filtern von teilweise falschen Durchbruchsignalen dienen

Risikoanalyse

  • Fehlgewählte Brin-Band-Parameter können zu häufigen False-Breaks führen
  • Die ATR-Parameter sind zu groß ausgewählt, was zu verpassten Trendwendechancen führen kann
  • Schadensbegrenzung muss berücksichtigt werden, um Schäden durch Extreme zu verhindern

Einige Risiken können durch Parameteranpassungen und die Einführung von Stopps vermieden werden. Es kann auch in Kombination mit anderen Indikatoren gefiltert werden, um die Effektivität des Durchbruchs zu erhöhen.

Optimierungsrichtung

  • Optimierung der Parameter von Brinband und ATR, um die optimale Konfiguration zu finden
  • Das sind die wichtigsten Faktoren, die zu einem False Breakthrough führen.
  • Auswahl der Brin-Band- und ATR-Zyklen für bestimmte Handelsarten

Zusammenfassen

Die Tracking-Line-Strategie, die darauf abzielt, Preistrends unter schwankenden Bedingungen zu erfassen, ist eine effektive Trend-Tracking-Strategie. Durch die Anpassung und Optimierung der Parameter können gute Erträge erzielt werden.

Strategiequellcode
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Dreadblitz
//@version=4
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

strategy(title = " Strategy Follow Line Indicator ",
         shorttitle = "S-FLI",
         overlay = true,
         precision = 8,
         calc_on_order_fills = true,
         calc_on_every_tick = true,
         backtest_fill_limits_assumption = 0,
         default_qty_type = strategy.fixed,
         default_qty_value = 2,
         initial_capital = 10000,
         pyramiding=1,
         currency = currency.USD,
         linktoseries = true)

//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

backTestSectionFrom = input(title = "═══════════════ From ═══════════════", defval = true, type = input.bool)

FromMonth         = input(defval = 1, title = "Month", minval = 1)
FromDay           = input(defval = 1, title = "Day", minval = 1)
FromYear          = input(defval = 2014, title = "Year", minval = 2000)

backTestSectionTo = input(title = "════════════════ To ════════════════", defval = true, type = input.bool)
ToMonth           = input(defval = 31, title = "Month", minval = 1)
ToDay             = input(defval = 12, title = "Day", minval = 1)
ToYear            = input(defval = 9999, title = "Year", minval = 2000)

Config            = input(title = "══════════════ Config ══════════════", defval = true, type = input.bool)
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)


backTestPeriod() => true

//
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

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)

// Strategy Entry
if (backTestPeriod())
    strategy.entry("long", true, 1, when = buy == 1)
    strategy.entry("short", false, 1, when = sell == 1)