Durchschnittliche Breakout-Strategie mit goldenem Verhältnis

Schriftsteller:ChaoZhang, Datum: 2024-02-26 15:02:26
Tags:

img

Übersicht

Dies ist eine Breakout-Strategie, die den ATR-Indikator verwendet, um Handelssignale zu generieren. Die Strategie verwendet ein gleitendes Durchschnittssystem, um Eintrittssignale zu erzeugen, und einen verstärkten ATR-Kanal basierend auf dem goldenen Verhältnis, um lange und kurze Positionen zu konstruieren.

Grundsätze

Der Code berechnet den ATR über einen Zeitraum von Schlusskurs, verstärkt ihn um 1,618 als Oberband und um 2,618 als Unterband. In Kombination mit der EMA bildet er ein Bollinger-Kanal-Breakout-System.

Vorteile

  1. Der ATR-Indikator erfasst die Marktvolatilität effektiv und konstruiert anpassungsfähige Handelsbänder, um eine Überanpassung durch statische Parameter zu vermeiden.
  2. Die durch das goldene Verhältnis verstärkten ATR-Bänder erweitern das Gewinnpotenzial, ohne die Handelsfrequenz zu erhöhen.
  3. Das gleitende Durchschnittssystem filtert kurzfristige Geräusche aus und arbeitet mit dem ATR-Kanal zusammen, um mittelfristige und langfristige Trends zu ermitteln.

Risiken

  1. Der ATR-Indikator kann bei extremen Marktbedingungen verzögert sein.
  2. Unzulässige Vergrößerungsmultiplikatoren würden zu einer zu hohen Handelsfrequenz führen.
  3. Die Wechselsignale von langfristigen gleitenden Durchschnitten haben Verzögerungen.

Optimierung

  1. Der ATR kann den VIX integrieren oder die Vergrößerung einstellen.
  2. Mehrfache Zeitrahmen-EMAs verwenden, um anpassungsfähige Systeme zu konstruieren.
  3. Setzen Sie Stop-Losses, um den maximalen Verlust pro Handel zu begrenzen.

Zusammenfassung

Diese Strategie integriert gleitende Durchschnittsfilterung, ATR-Kanal-Tracking und die Golden Ratio-Methodik, die mittelfristigen bis langfristigen Trends mit guter Stabilität effektiv folgen kann.


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

//@version=4
strategy("ATR Long Only Strategy lower band buy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len = input(52, type=input.integer, minval=1, title="Length")
mul = input(1.618, type=input.float, minval=0, title="Length")
mullow = input(2.618, type=input.float, minval=0, title="Length")

price = sma(close, 1)
average = ema(close, len)
diff = atr(len) * mul
difflow = atr(len) * mullow

bull_level = average + diff
bear_level = average - difflow
bull_cross = crossunder(price, bear_level)
bear_cross = crossunder(bull_level, price)

FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2008, title = "From Year", minval = 2008)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2019)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
startTimeOk()  => true

if (startTimeOk())
    strategy.entry("KOP", strategy.long, when=bull_cross)
    strategy.close("KOP", when=bear_cross)  //strategy.entry("Sell", strategy.short, when=bear_cross)

plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)

Mehr