Supertrend-Handelsstrategie basierend auf der Kombination von ATR und MA


Erstellungsdatum: 2023-12-01 16:40:27 zuletzt geändert: 2023-12-01 16:40:27
Kopie: 0 Klicks: 1074
1
konzentrieren Sie sich auf
1619
Anhänger

Supertrend-Handelsstrategie basierend auf der Kombination von ATR und MA

Überblick

Die Supertrend Trading Strategy ist eine Trendverfolgungsstrategie, die auf der durchschnittlichen realen Bandbreite (ATR) und dem Moving Average (MA) basiert. Sie kombiniert die Vorteile von Trendfollowing und Breakout-Trading, um die mittelfristige Trendrichtung zu identifizieren und Handelssignale nach Trendänderungen zu erzeugen.

Die Hauptidee dieser Strategie ist, dass ein Trendwechsel stattfindet, wenn der Preis den Supertrendkanal durchbricht, was zum Kauf oder Verkauf führt. Es wird gleichzeitig ein Stop-Loss- und ein Stop-Stop-Level gesetzt, um Gewinne zu sichern und Risiken zu kontrollieren.

Strategieprinzip

Die Berechnung der Supertrend-Strategie besteht aus folgenden Schritten:

  1. Berechnung der ATR. Die ATR ist die durchschnittliche Schwankungsbreite über einen bestimmten Zeitraum.
  2. Die Mittellinie des Kanals berechnet sich aus dem Höchst- und dem Mindestpreis. Die Mittellinie des Kanals berechnet sich aus der Formel: ((Höchstpreis + Mindestpreis) / 2
  3. Die oberen und unteren Grenzen des Kanals werden nach dem ATR- und dem vom Benutzer festgelegten ATR-Multiplikator berechnet. Die Berechnungsformel für die oberen Grenzen des Kanals lautet: Mittellinie + (((ATR × ATR-Multiplikator); die Berechnungsformel für die unteren Grenzen des Kanals lautet: Mittellinie - (((ATR × ATR-Multiplikator)).
  4. Vergleichen Sie die Beziehung zwischen dem Schlusskurs und der oberen und unteren Grenze des Kanals, um die Richtung des Trends zu bestimmen. Der Schlusskurs, der über der oberen Grenze des Kanals liegt, ist tendenziell aufwärts, der Schlusskurs, der unter der unteren Grenze des Kanals liegt, ist tendenziell abwärts.
  5. Wenn der Preis den Trendkanal überschreitet, wird ein Umkehrhandel durchgeführt. Der Preis überschreitet die Obergrenze des Kanals von unten nach oben und erzeugt ein Kaufsignal. Der Preis überschreitet die Untergrenze des Kanals von oben nach unten und erzeugt ein Verkaufssignal.

Der Vorteil dieser Strategie besteht darin, dass sie sowohl den Trend als auch die Trendwende kombiniert. Sie kann sowohl die Richtung der großen Trends ermitteln als auch die Umkehrmöglichkeiten rechtzeitig erfassen. Darüber hinaus bietet sie eine Stop-Loss-Stop-Mechanismus zur Risikokontrolle.

Analyse der Stärken

Die Supertrend-Strategie hat folgende Vorteile:

1. Halten Sie sich auf mittelfristige Trends

Der Supertrend-Kanal basiert auf der ATR-Berechnung und ist in der Lage, die mittelfristige Bandbreite der Preisbewegungen effektiv abzubilden. Es ist besser geeignet, die mittelfristigen Trends zu verfolgen als ein normaler Moving Average.

2. Die Umkehr der Trends rechtzeitig erfassen

Wenn der Preis den Kanal durchbricht, wird ein schnelles Handelssignal ausgesendet, um die Umkehrung des großen Trends rechtzeitig zu erfassen. Dies bietet die Garantie für eine angemessene Anpassung der Position und die Verringerung der Überschreitung der Haltung.

3. Schadensbegrenzungsmechanismus

Die Strategie bietet eine gleichzeitige Einstellung der Stop-Loss- und Stop-Off-Positionen, die automatisch die Stop-Loss-Platte einstellen können. Dies reduziert das Risiko von Überschwemmungsstop-Losses erheblich und hilft, die Trends zu erfassen.

4. Einfache Umsetzung

Die Strategie basiert auf der Durchschnittslinie und den ATR-Indikatoren und ist einfacher und leichter zu erfassen. Dies reduziert die Schwierigkeit der Festplattenoperationen.

5. Effiziente Nutzung der Mittel

Die Supertrend-Strategie verfolgt die mittelfristigen Trends und steuert die einzelnen Slippings, was zu einer höheren Effizienz der Gesamtkapitalnutzung führt.

Risikoanalyse

Es gibt einige potenzielle Risiken bei einer Supertrend-Strategie:

1. Die Chancenkosten von Trendschwankungen sind höher

Die Supertrend-Strategie konzentriert sich auf die Verfolgung von mittleren und langen Trends, die in einem wackligen Markt mit höheren Kosten verbunden sind und möglicherweise einige Leerlauf-Gelegenheiten verpassen.

2. Parameteroptimierung wirkt sich aus

Die Wahl des ATR-Zyklus und des ATR-Multiplikators hat einen großen Einfluss auf die Wirksamkeit der Handelsstrategie. Wenn die Parameter falsch eingestellt sind, wird die Wirksamkeit des Handelssignals abgewertet.

3. Eine gewisse Rückständigkeit

Die Berechnung der Supertrend-Kanäle kann eine gewisse Verzögerung aufweisen, die dazu führen kann, dass die Signale nicht rechtzeitig erzeugt werden. Dies ist das Hauptproblem, das die Strategie lösen muss.

4. Strenge Schadensbegrenzung erforderlich

Wenn die Stop-Loss-Position zu groß eingestellt oder die Windkontrolle nicht perfekt umgangen wird, kann dies in extremen Fällen zu größeren Verlusten führen. Daher muss die Stop-Loss-Strategie streng ausgeführt werden, um einen stabilen Gewinn zu erzielen.

Optimierungsrichtung

Die Supertrends-Strategie bietet Raum für weitere Optimierungen, insbesondere in Bezug auf:

1. Kombination von mehreren ATR-Zyklen

Es können mehrere ATR-Zyklen, z. B. 10 und 20 Tage, kombiniert werden, um einen kombinierten ATR-Indikator zu bilden. Dadurch kann die Sensitivität des Indikators erhöht und das Problem der Rückstandszeit verbessert werden.

2. Hinzufügen von Stop-Loss-Strategie-Modulen

Darüber hinaus kann die Stop-Loss-Kontrolle durch die Erweiterung der Strategie-Module wie Triple Stop, Oscillating Stop und Sequential Stop weiter gestärkt werden, um das Risiko von Verlusten zu verringern.

3. Optimierung der Parameter

Optimieren Sie die Einstellung von Parametern wie ATR-Zyklen, ATR-Multiplikationen und andere, um die optimale Kombination von Parametern zu finden, um die strategischen Gewinne weiter zu steigern. Darüber hinaus können die Parameter dynamisch optimiert werden, um die richtigen Werte für verschiedene Sorten und Marktphasen zu wählen.

4. Integrierte Modelle für maschinelles Lernen

Schließlich kann auch versucht werden, Machine-Learning-Modelle zu integrieren, um Trend-Erkenntnisse und Signal-Erzeugung zu automatisieren. Dies kann die Störung durch subjektive Faktoren reduzieren und die Stabilität der Strategie-Systeme möglicherweise weiter verbessern.

Zusammenfassen

Die Supertrend-Handelsstrategie verwendet die mittelfristige Tendenz durch die Kombination von Mittellinien- und ATR-Indikatoren und erzeugt Handelssignale an Trendwendepunkten, um automatische Stop-Losses zu erzielen. Die Strategie fängt den großen Trend ein und kann auch die Umkehrmöglichkeiten zeitnah ergreifen.

Aber es gibt auch einige Mängel in dieser Strategie, hauptsächlich die mangelnde Vorstellung und das Verzögerungsproblem der Erschütterung. Dies erfordert Optimierungen aus mehreren Bereichen, wie z. B. die Kombination von ATR-Zyklen, die Erweiterung von Stop-Loss-Modulen, die Optimierung von Parametern und die Einführung von maschinellem Lernen. Dies kann zweifellos die Stabilität und die Goldrate der Supertrendstrategie weiter verbessern.

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

//@version=3
strategy("Supertrend V1.0 - Buy or Sell Signal",overlay=true)
Factor=input(3, minval=1,maxval = 100)
Pd=input(7, minval=1,maxval = 100)
//Calculating ATR
atrLength = input(title="ATR Length:",  defval=14, minval=1)
Stop_Loss_Factor = input(1.5, minval=0,step=0.01)
factor_profit = input(1.0, minval=0,step=0.01)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 4, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 10, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2016, title = "From Year", minval = 2009)
ToMonth   = input(defval = 4, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 10, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2039, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"


// Calculate ATR
atrValue=atr(atrLength)
decimals = abs(log(syminfo.mintick) / log(10)) 
Atr = atrValue
if(decimals == 5)
    Atr := atrValue * 10000
if(decimals == 4)
    Atr := atrValue * 1000
if(decimals == 3)
    Atr := atrValue * 100
if(decimals == 2)
    Atr := atrValue * 10


//VJ2 Supertrend

Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))

TrendUp = 0.0
TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown = 0.0
TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

Trend = 0.0
Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = 0.0
Tsl := Trend==1? TrendUp: TrendDown

linecolor = Trend == 1 ? green : red

plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")

plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)
//plot(Trend==1 and Trend[1]==-1,color = linecolor, style = circles, linewidth = 3,title="Trend")

plotarrow(Trend == 1 and Trend[1] == -1 ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(Trend == -1 and Trend[1] == 1 ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)




//Strategy 
Trend_buy = Trend == 1 
Trend_buy_prev = Trend[1] == -1
algo_buy_pre = Trend_buy and Trend_buy_prev
algo_buy = algo_buy_pre == 1 ? 1 : na
Trend_sell= Trend == -1 
Trend_sell_prev = Trend[1] == 1
algo_sell_pre = Trend_sell and Trend_sell_prev
algo_sell = algo_sell_pre == 1 ? 1:na

strategy.entry("Long1", strategy.long, when= window() and algo_buy==1)

strategy.entry("Short1", strategy.short, when=window() and algo_sell==1)

bought = strategy.position_size > strategy.position_size 
sold = strategy.position_size < strategy.position_size 

longStop = Stop_Loss_Factor * valuewhen(bought, Atr, 0) 
shortStop = Stop_Loss_Factor * valuewhen(sold, Atr, 0) 
longProfit = factor_profit * longStop 
shortProfit = factor_profit * shortStop 


if(decimals == 5) 
    longStop := longStop *100000 
    longProfit := longProfit *100000 
if(decimals == 4) 
    longStop := longStop * 10000 
    longProfit := longProfit * 10000 
if(decimals == 3) 
    longStop := longStop * 1000 
    longProfit := longProfit * 1000 
if(decimals == 2) 
    longStop := longStop * 100 
    longProfit := longProfit *100 
if(decimals == 5) 
    shortStop := shortStop * 100000 
    shortProfit := shortProfit * 100000 
if(decimals == 4) 
    shortStop := shortStop * 10000 
    shortProfit := shortProfit * 10000 
if(decimals == 3) 
    shortStop := shortStop * 1000 
    shortProfit := shortProfit * 1000 
if(decimals == 2) 
    shortStop := shortStop * 100 
    shortProfit := shortProfit * 100 

strategy.exit("Exit Long", from_entry = "Long1", loss =longStop, profit = longProfit) 
strategy.exit("Exit Short", from_entry = "Short1", loss =shortStop, profit = shortProfit)