Trend ATR Horizontal Breakout Strategie


Erstellungsdatum: 2023-12-06 18:03:38 zuletzt geändert: 2023-12-06 18:03:38
Kopie: 0 Klicks: 652
1
konzentrieren Sie sich auf
1619
Anhänger

Trend ATR Horizontal Breakout Strategie

Überblick

Die Bee Trend ATR Horizontale Breakout Strategie ist eine mittlere, kurze Breakout-Strategie, die auf ATR-Indikatoren basiert und Handelssignale mit Brin-Band erzeugt. Sie überwacht hauptsächlich die Trendänderungen der Aktienpreise in den auf- und abwärts gerichteten ATR-Kanälen einer bestimmten Breite und trifft Handelsentscheidungen in Kombination mit einem Trendfilter, wenn sie unter- oder auf den Weg gehen.

Strategieprinzip

Die Strategie besteht aus drei Teilen:

  1. ATR-Kanal: Berechnen Sie die Bandbreite der Aktienpreise über den ATR-Indikator und bilden Sie einen Kanal über diese Bandbreite. Die Kanalbreite wird durch den ATR-Lookback-Zyklus und den ATR-Divisor-Faktor gesteuert.

  2. Bee Line: Die Basislinie ist die Zentrallinie des Aktienpreises. Die Zentrallinie wird berechnet als der Durchschnitt der hohen und niedrigen Ernte der letzten Woche.

  3. Trendfilter: Berechnung der Preisentwicklung durch Abweichungsbewegungen und Einstellung der Signalphase, wenn pricesig ‘>’: pricesig[3] als Trend nach oben, wenn pricesig ‘<’ pricesig[3] als Trend nach unten.

Die spezifische Logik für die Erzeugung von Handelssignalen lautet:

Mehrkopfsignal: pricesig > pricesig[3] und mehr, wenn die Preise in die Abwärtsspirale fallen;

Das leere Signal: pricesig < pricesig[3] und bei der Aufnahme der Kursbahn eine Leerstellung;

In anderen Fällen gibt es keinen Handel.

Die Strategie setzt gleichzeitig Stop-Loss-Bedingungen, um das Handelsrisiko zu kontrollieren.

Analyse der Stärken

Die Strategie zur Überwindung der Bienentrend-ATR hat folgende Vorteile:

  1. Die ATR-Indikatoren werden verwendet, um die Bandbreite der Aktienkurse zu berechnen und die Veränderungen des Marktes dynamisch zu erfassen.

  2. In Kombination mit einer zentralen Linie, die die Aktienpreise horizontal bewertet und einen Durchbruch in die Kanäle eingerichtet hat, um die Höhen und Tiefen zu vermeiden.

  3. Der Trendbeobachter kann die Trendbewegung der Abweichungsindikatoren analysieren, um einen negativen Handel zu vermeiden und die Gewinnrate zu erhöhen.

  4. Setzen Sie Stop-Loss-Bedingungen, um das einzelne Risiko zu steuern.

  5. Die Strategieparameter sind flexibel eingestellt, um die Optimierung von Faktoren wie Kanalbreite, ATR-Zyklen usw. zu optimieren.

Risikoanalyse

Die Strategie birgt einige Risiken:

  1. Die kurzfristigen Geschäfte sind sehr volatil und mit relativ hohem Risiko verbunden und erfordern eine vorsichtige Vermögensverwaltung.

  2. Die Berechnung des ATR-Kanalbereichs kann ungenau sein, was zu falschen Transaktionen führen kann, wenn die Aktienkurse stark schwanken.

  3. Die Abweichungsbewegungsindikatoren können auch Trends falsch beurteilen, was die Genauigkeit der Handelssignale beeinträchtigt.

Diese Risiken können optimiert und verbessert werden, indem die ATR-Kanalparameter entsprechend angepasst und die Trendfilter-Zyklen erhöht werden.

Optimierungsrichtung

Die Strategie kann in folgenden Bereichen optimiert werden:

  1. Ändern Sie die ATR-Kanalbreite, reduzieren oder erhöhen Sie die ParameteratrDivisor, komprimieren oder vergrößern Sie den Kanalbereich.

  2. Anpassung der ATR-Lookback-Zyklusparameter, um die Sensitivität des Kanals für die jüngsten Schwankungen zu verändern.

  3. Anpassung der Trendsignal-Periodenparameter zur Verbesserung der Genauigkeit der Feststellung von Mehrraumtrends.

  4. Mehrfache Überprüfung mit anderen Indikatoren zur Verbesserung der Qualität der Handelssignale.

  5. Optimierung der Stop-Loss-Algorithmen und Verbesserung der Risikokontrolle.

Zusammenfassen

Die Bee Trend ATR Breakout Strategie integriert die Verwendung von Aktienpreis-Range-Analysen und Trend-Ermittlern, um das Handelsrisiko zu kontrollieren, während die Markt-Hotspots erfasst werden. Die Strategie ist eine sehr flexible, anpassungsfähige quantitative Strategie. Die Strategie kann durch Parameteranpassung und Signaloptimierung kontinuierlich verbessert werden und hat eine breite Einsatzperspektive.

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

//@version=2
strategy(title="Strategy - Bobo PATR Swing", overlay=true, default_qty_type = strategy.fixed, default_qty_value = 1, initial_capital = 10000)

// === STRATEGY RELATED INPUTS AND LOGIC ===
PivottimeFrame = input(title="Pivot Timeframe",  defval="D")
ATRSDtimeFrame = input(title="ATR Band Timeframe (Lower timeframe = wider bands)",  defval="D")
len = input(title="ATR lookback (Lower = bands more responsive to recent price action)",  defval=13)
myatr = atr(len)
dailyatr = request.security(syminfo.tickerid, ATRSDtimeFrame, myatr[1])
atrdiv = input(title="ATR divisor (Lower = wider bands)", type=float, defval=2)
pivot0 = (high[1] + low[1]  + close[1]) / 3
pivot = request.security(syminfo.tickerid, PivottimeFrame, pivot0)
upperband1 = (dailyatr / atrdiv) + pivot
lowerband1 = pivot - (dailyatr / atrdiv)
middleband = pivot

// == TREND CALC ===
i1=input(2, "Momentum Period", minval=1) //Keep at 2 usually
i2=input(20, "Slow Period", minval=1)
i3=input(5, "Fast Period", minval=1)
i4=input(3, "Smoothing Period", minval=1)
i5=input(4, "Signal Period", minval=1)
i6=input(50, "Extreme Value", minval=1)
hiDif = high - high[1]
loDif = low[1] - low
uDM = hiDif > loDif and hiDif > 0 ? hiDif : 0
dDM =  loDif > hiDif and loDif > 0 ? loDif : 0
ATR = rma(tr(true), i1)
DIu = 100 * rma(uDM, i1) / ATR
DId = 100 * rma(dDM, i1) / ATR
HLM2 =  DIu - DId
DTI = (100 * ema(ema(ema(HLM2, i2), i3), i4)) /  ema(ema(ema(abs(HLM2), i2), i3), i4)
signal = ema(DTI, i5)


// === RISK MANAGEMENT INPUTS ===
inpTakeProfit   = input(defval = 0, title = "Take Profit (In Market MinTick Value)", minval = 0)
inpStopLoss     = input(defval = 100, title = "Stop Loss (In Market MinTick Value)", minval = 0)

// === RISK MANAGEMENT VALUE PREP ===
// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong = (((low<=lowerband1) and (close >lowerband1)) or ((open <= lowerband1) and (close > lowerband1))) and (strategy.opentrades <1) and (atr(3) > atr(50)) and (signal>signal[3])
exitLong = (high > middleband)
strategy.entry(id = "Long", long = true, when = enterLong) 
strategy.close(id = "Long", when = exitLong)

// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort = (((high>=upperband1) and (close < upperband1)) or ((open >= upperband1) and (close < upperband1))) and (strategy.opentrades <1) and (atr(3) > atr(50)) and (signal<signal[3])
exitShort = (low < middleband)
strategy.entry(id = "Short", long = false, when = enterShort)
strategy.close(id = "Short", when = exitShort)

// === STRATEGY RISK MANAGEMENT EXECUTION ===
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss)

// === CHART OVERLAY ===
plot(upperband1, color=#C10C00, linewidth=3)
plot(lowerband1, color=#23E019, linewidth=3)
plot(middleband, color=#00E2E2, linewidth=3)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)