ATR-Kanal-Breakout-Trend-nachfolgende Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-03 11:53:52
Tags:

img

Übersicht

Diese Strategie nutzt den ATR-Kanal und die Breakout-Theorie, um Trends zu folgen, indem man eintritt, wenn der Kanal gebrochen wird.

Grundsätze

Diese Strategie konstruiert obere und untere Bande mit hohen, niedrigen, schließen Preisen und ATR-Indikator, um einen ATR-Kanal zu bilden. Die Kanalbreite wird durch die Größe des ATR-Parameters bestimmt. Wenn der Preis durch den Kanal bricht, wird er als Beginn eines Trends beurteilt, an welchen Punkten lange oder kurze Positionen eingegeben werden. Die Strategie hat zwei Ebenen von Handelssignalen.

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Die Verwendung von ATR-Indikatoren zur Konstruktion von Kanälen berücksichtigt die Marktvolatilität besser als einfache gleitende Durchschnitte.
  2. Die zweistufigen Kauf-/Verkaufspunkte ermöglichen einen stufenweisen Einstieg mit kontrollierbaren Risiken.
  3. Die Breakout-Theorie lokalisiert die wichtigsten Trendpunkte genau.
  4. Der prägnante Code ist leicht zu verstehen und umzusetzen.

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind:

  1. Die Verwendung eines einzigen Indikators bedeutet eine hohe Ausfallwahrscheinlichkeit, wenn die ATR versagt.
  2. Das Fehlen von Stop Loss und Positionsmanagement führt zu einer unzureichenden Risikokontrolle.
  3. Der Versorgungsbetrieb muss überprüft werden und kann unter Live-Handelsbedingungen schlechte Ergebnisse erzielen.
  4. Unzulässige Parameter können zu Schlagsägen oder zu einem Übertrading führen.

Optimierungsrichtlinien

Die Optimierungsrichtungen für diese Strategie umfassen:

  1. Zusätzliche Filter mit mehreren Indikatoren, um Fehleinschätzungen zu vermeiden.
  2. Hinzufügen von Stop-Loss-Modulen zur Verbesserung der Risikokontrolle.
  3. Zusätzliche Positionskontrolle und Geldmanagement.
  4. Parameter-Tuning für verschiedene Produkte.
  5. Verringerung der Handelsfrequenz und Positionsgröße für den Live-Handel.

Zusammenfassung

Der Gesamtrahmen dieser Strategie ist klar und als Proof-of-Concept nutzbar. Es gibt jedoch Lücken beim Live-Handel, die erhebliche Optimierungen ermöglichen. Wenn die Risikokontrolle und die Handelsfrequenzen weiter verbessert werden können, wären die Anwendungsperspektiven gut.


/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Myhaj_Lito

//@version=5
strategy("Renko Trend Strategy",shorttitle = "RENKO-Trend str.",overlay = true)
TF = input.timeframe(title='TimeFrame', defval="60")
ATRlength = input.int(title="ATR length", defval=60, minval=2, maxval=1000)

HIGH = request.security(syminfo.tickerid, TF, high)
LOW = request.security(syminfo.tickerid, TF, low)
CLOSE = request.security(syminfo.tickerid, TF, close)
ATR = request.security(syminfo.tickerid, TF, ta.atr(ATRlength))


RENKOUP = float(na)
RENKODN = float(na)
H = float(na)
COLOR = color(na)
BUY = int(na)
SELL = int(na)
UP = bool(na)
DN = bool(na)
CHANGE = bool(na)

RENKOUP := na(RENKOUP[1]) ? (HIGH + LOW) / 2 + ATR / 2 : RENKOUP[1]
RENKODN := na(RENKOUP[1]) ? (HIGH + LOW) / 2 - ATR / 2 : RENKODN[1]
H := na(RENKOUP[1]) or na(RENKODN[1]) ? RENKOUP - RENKODN : RENKOUP[1] - RENKODN[1]
COLOR := na(COLOR[1]) ? color.white : COLOR[1]
BUY := na(BUY[1]) ? 0 : BUY[1]
SELL := na(SELL[1]) ? 0 : SELL[1]
UP := false
DN := false
CHANGE := false

// calculating 
if not CHANGE and close >= RENKOUP[1] + H * 2
    CHANGE := true
    UP := true
    RENKOUP := RENKOUP[1] + ATR * 2
    RENKODN := RENKOUP[1] + ATR
    COLOR := color.rgb(0, 255, 170,60)
    SELL := 0
    BUY += 2
    BUY


if not CHANGE and close >= RENKOUP[1] + H
    CHANGE := true
    UP := true
    RENKOUP := RENKOUP[1] + ATR
    RENKODN := RENKOUP[1]
    COLOR := color.rgb(0, 230, 38,60)
    SELL := 0
    BUY += 1
    BUY

if not CHANGE and close <= RENKODN[1] - H * 2
    CHANGE := true
    DN := true
    RENKODN := RENKODN[1] - ATR * 2
    RENKOUP := RENKODN[1] - ATR
    COLOR := color.rgb(255, 92, 43,60)
    BUY := 0
    SELL += 2
    SELL
if not CHANGE and close <= RENKODN[1] - H
    CHANGE := true
    DN := true
    RENKODN := RENKODN[1] - ATR
    RENKOUP := RENKODN[1]
    COLOR := color.rgb(245, 69, 69,60)
    BUY := 0
    SELL += 1
    SELL
//// STRATEGY 
if(UP)
    strategy.entry("Long",strategy.long)
if(DN)
    strategy.entry("Short",strategy.short)


// ploting 

bgcolor(COLOR)


Mehr