Honey Trend ATR Breakout-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-06 18:03:38
Tags:

img

Übersicht

Die Honey Trend ATR Breakout Strategie ist eine mittelfristige Breakout-Strategie, die auf dem ATR-Indikator und den Bollinger Bands für die Handelssignalgenerierung basiert. Sie überwacht hauptsächlich die Trendänderungen der Aktienkurse innerhalb einer bestimmten Breite der oberen und unteren ATR-Kanäle.

Strategieprinzip

Die Strategie besteht aus drei Hauptteilen:

  1. ATR-Kanal: Berechnen Sie den Schwankungsbereich der Aktienkurse über den ATR-Indikator und bilden Sie einen Kanal nach oben und unten innerhalb dieses Bereichs.

  2. Bee Line: Die Mittellinie der Aktienkurse als Basislinie. Die Berechnungsmethode der Mittellinie ist: der durchschnittliche Wert der gestrigen Höchst-, Tief- und Schlusskurs.

  3. Trendfilterung: Berechnet den Preistrend über den DMI-Indikator und setzt den Signalzyklus ein. Wenn pricesig >: pricesig[3], ist der Trend nach oben. Wenn pricesig < pricesig[3], ist der Trend nach unten.

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

Langes Signal: pricesig > pricesig[3] und Preisbruch durch den unteren Kanal.

Kurzsignal: pricesig < pricesig[3] und Preisbruch durch die obere Schiene des Kanals.

In anderen Situationen kein Handel.

Die Strategie legt auch Stop-Profit- und Stop-Loss-Bedingungen fest, um Handelsrisiken zu kontrollieren.

Analyse der Vorteile

Die Honey Trend ATR Breakout Strategie hat folgende Vorteile:

  1. Verwendung des ATR-Indikators zur Berechnung des Schwankungsbereichs der Aktienkurse, der dynamisch Marktveränderungen erfassen kann;

  2. Kombinieren Sie die Mittellinie, um die seitlichen Kursentwicklungen zu bewerten, und setzen Sie die Kanal-Breakout-Handelspunkte, um Höchststände zu vermeiden und Tiefstände zu töten.

  3. Der DMI-Indikator wird verwendet, um den Trend zu bestimmen und gegen den Trend zu handeln, wodurch die Gewinnrate verbessert wird.

  4. Festlegung von Stop-Profit- und Stop-Loss-Bedingungen zur Kontrolle des Risikos des einheitlichen Handels;

  5. Die Strategieparameter sind flexibel genug, um die Strategie durch Anpassung der Kanalbreite, des ATR-Zyklus und anderer Faktoren zu optimieren.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Der mittelfristige Handel hat relativ große Schwankungen und hohe Risiken.

  2. Die Berechnung des ATR-Kanalbereichs kann ungenau sein, wenn die Aktienkurse stark schwanken, was leicht zu falschen Geschäften führt.

  3. Der DMI-Indikator kann auch bei der Beurteilung des Trends Fehler machen und somit die Genauigkeit der Handelssignale beeinträchtigen.

Als Reaktion auf die oben genannten Risiken können Parameter wie der ATR-Kanal angepasst und die Signalzyklen zur Optimierung und Verbesserung erhöht werden.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Anpassung der ATR-Kanalbreite durch Anpassung des AtrDivisor nach oben oder unten, um den Kanalbereich zu komprimieren oder zu erweitern.

  2. Einstellen des ATR-Lookback-Zyklusparameters, um die Empfindlichkeit des Kanals gegenüber jüngsten Schwankungen zu ändern.

  3. Anpassung des Trendsignalzyklusparameters zur Verbesserung der Genauigkeit von bullischen und bärischen Trendurteilen.

  4. Hinzufügen anderer Indikatoren für die Mehrfaktorüberprüfung zur Verbesserung der Signalqualität.

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

Schlussfolgerung

Die Honey Trend ATR Breakout Strategie integriert die Analyse von Kursschwankungsbereich und Trendbeurteilungsindikatoren. Während sie Markthotspots erfasst, kontrolliert sie auch Handelsrisiken. Es ist eine flexible und anpassungsfähige quantitative Strategie. Diese Strategie kann durch Parameteranpassung und Signaloptimierung kontinuierlich verbessert werden, mit breiten Anwendungsperspektiven.


/*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)

Mehr