Dreilinien-Breakout-Trendfolgestrategie kombiniert mit EMA-dynamischer Filterung und ATR-Risikomanagementsystem

EMA ATR 3LS
Erstellungsdatum: 2025-02-18 15:30:08 zuletzt geändert: 2025-02-18 15:30:08
Kopie: 1 Klicks: 353
1
konzentrieren Sie sich auf
1617
Anhänger

Dreilinien-Breakout-Trendfolgestrategie kombiniert mit EMA-dynamischer Filterung und ATR-Risikomanagementsystem

Überblick

Die Strategie ist ein auf der japanischen Charttechnik-Analyse basierendes Trend-Tracking-Trading-System für Dreilinien-Break-Formen. Durch die Kombination des Index-Moving Averages (EMA) als Trendfilter und des Real-Time-Wavelength-Indikators (ATR) für das dynamische Risikomanagement wird die Zuverlässigkeit des herkömmlichen Dreilinien-Break-Modells erhöht. Die Strategie ist nicht nur in der Lage, Trendwendepunkte in den Märkten zu erfassen, sondern auch die Risiken effektiv zu kontrollieren und ist für den mittleren und langen Trendhandel geeignet.

Strategieprinzip

Die Kernlogik der Strategie basiert auf den folgenden Schlüsselfaktoren: Erstens, die Identifizierung der Drei-Linien-Breakout-Form, bei der drei aufeinanderfolgende Wurzeln der gleichen Farbe einen größeren Rückwärts-Sopfer erzeugen. Zweitens, die Verwendung der EMA als Trendfilter, um nur dann mehr Signale zu berücksichtigen, wenn der Preis über der EMA liegt, und nur dann, wenn er unter der EMA liegt.

Strategische Vorteile

  1. Kombination von Richtungstrendbestätigung und Umkehrformerkennung erhöht die Zuverlässigkeit von Handelssignalen
  2. Mit dynamischen Stop-Loss-Einstellungen, die sich an die Marktvolatilität anpassen können
  3. Klare Strategie-Logik, Anpassbarkeit der Parameter und Optimierung nach unterschiedlichen Markteigenschaften
  4. Durch EMA-Filter reduziert sich die Anzahl der Falschmeldungen erheblich und erhöht die Stabilität der Strategie
  5. Ein vollständiges Risikomanagementsystem, einschließlich Vermögensverwaltung und Schadensbegrenzung

Strategisches Risiko

  1. Häufige Falschsignale, die in einem wackligen Markt auftreten können, führen zu kontinuierlichen Stop-Losses
  2. Die EMA als Nachlässigkeitsindikator könnte bei starken Trendwechseln nicht rechtzeitig reagieren
  3. ATR Stop-Loss-Einstellungen mit festen Multiplikatoren sind möglicherweise nicht für alle Marktbedingungen geeignet
  4. Strategie, die auf eine eindeutige Trendrichtung angewiesen ist und in einer Zeit ohne Trend schlechter abschneiden kann
  5. Die Genauigkeit der Eintrittszeit wird durch die K-Linien-Zykluswahl beeinflusst

Richtung der Strategieoptimierung

  1. Die Einführung von Verkehrsmesswerten als Hilfsbestätigung zur Verbesserung der Signalsicherheit
  2. Anpassung der EMA-Parameter an die unterschiedlichen dynamischen Marktzyklen zur Verbesserung der Anpassungsfähigkeit
  3. Erhöhung der Trendstärke-Filter wie ADX-Indikatoren, um falsche Signale in den Schaukelmärkten zu reduzieren
  4. Optimierung der Stop-Loss-Multiplikatoren, wobei eine dynamische Anpassung an die Fluktuation berücksichtigt werden kann
  5. Hinzufügung von Markteinfelderkennungsmechanismen, die unterschiedliche Parameter-Setzungen für verschiedene Marktzustände verwenden

Zusammenfassen

Es ist ein Strategiesystem, das die klassische Theorie der technischen Analyse mit der modernen Theorie des quantitativen Handels kombiniert. Durch die Kombination der traditionellen Drei-Linien-Break-Form mit Trend-Tracking und Risikomanagement wird ein relativ vollständiges Handelssystem aufgebaut. Obwohl es einige Einschränkungen gibt, kann die Stabilität und Anpassungsfähigkeit der Strategie durch die Bereitstellung von Optimierungsrichtungen weiter verbessert werden.

Strategiequellcode
/*backtest
start: 2025-01-18 00:00:00
end: 2025-02-17 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// Copyright ...
// Based on the TMA Overlay by Arty, converted to a simple strategy example.
// Pine Script v5

//@version=5
strategy(title='3 Line Strike [TTF] - Strategy with ATR and EMA Filter',
     shorttitle='3LS Strategy [TTF]',
     overlay=true,
     initial_capital=100000,
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=100,
     pyramiding=0)

// -----------------------------------------------------------------------------
//                               INPUTS
// -----------------------------------------------------------------------------

// ATR and EMA Inputs
atrLength = input.int(title='ATR Length', defval=14, group='ATR & EMA')
emaLength = input.int(title='EMA Length', defval=200, group='ATR & EMA')

// ### 3 Line Strike
showBear3LS = input.bool(title='Show Bearish 3 Line Strike', defval=true, group='3 Line Strike',
     tooltip="Bearish 3 Line Strike (3LS-Bear) = 3 zelené sviečky, potom veľká červená sviečka (engulfing).")
showBull3LS = input.bool(title='Show Bullish 3 Line Strike', defval=true, group='3 Line Strike',
     tooltip="Bullish 3 Line Strike (3LS-Bull) = 3 červené sviečky, potom veľká zelená sviečka (engulfing).")

// -----------------------------------------------------------------------------
//                          CALCULATIONS
// -----------------------------------------------------------------------------

// Calculate ATR
atr = ta.atr(atrLength)

// Calculate EMA
ema = ta.ema(close, emaLength)

// Helper Functions
getCandleColorIndex(barIndex) =>
    int ret = na
    if (close[barIndex] > open[barIndex])
        ret := 1
    else if (close[barIndex] < open[barIndex])
        ret := -1
    else
        ret := 0
    ret

isEngulfing(checkBearish) =>
    sizePrevCandle = close[1] - open[1]
    sizeCurrentCandle = close - open
    isCurrentLargerThanPrevious = math.abs(sizeCurrentCandle) > math.abs(sizePrevCandle)

    if checkBearish
        isGreenToRed = (getCandleColorIndex(0) < 0) and (getCandleColorIndex(1) > 0)
        isCurrentLargerThanPrevious and isGreenToRed
    else
        isRedToGreen = (getCandleColorIndex(0) > 0) and (getCandleColorIndex(1) < 0)
        isCurrentLargerThanPrevious and isRedToGreen

isBearishEngulfing() => isEngulfing(true)
isBullishEngulfing() => isEngulfing(false)

is3LSBear() =>
    is3LineSetup = (getCandleColorIndex(1) > 0) and (getCandleColorIndex(2) > 0) and (getCandleColorIndex(3) > 0)
    is3LineSetup and isBearishEngulfing()

is3LSBull() =>
    is3LineSetup = (getCandleColorIndex(1) < 0) and (getCandleColorIndex(2) < 0) and (getCandleColorIndex(3) < 0)
    is3LineSetup and isBullishEngulfing()

// Signals
is3LSBearSig = is3LSBear() and close < ema
is3LSBullSig = is3LSBull() and close > ema

// Take Profit and Stop Loss
longTP = close + 2 * atr
longSL = close - 1 * atr
shortTP = close - 2 * atr
shortSL = close + 1 * atr

// -----------------------------------------------------------------------------
//                          STRATEGY ENTRY PRÍKAZY
// -----------------------------------------------------------------------------
if (showBull3LS and is3LSBullSig)
    strategy.entry("3LS_Bull", strategy.long, comment="3LS Bullish")
    strategy.exit("Exit Bull", from_entry="3LS_Bull", limit=longTP, stop=longSL)

if (showBear3LS and is3LSBearSig)
    strategy.entry("3LS_Bear", strategy.short, comment="3LS Bearish")
    strategy.exit("Exit Bear", from_entry="3LS_Bear", limit=shortTP, stop=shortSL)