ATR-adaptive Trendverfolgungsstrategie, gefiltert durch doppelte gleitende Durchschnitte

EMA ATR HEIKIN ASHI Trailing Stop TAKE PROFIT
Erstellungsdatum: 2025-04-25 15:01:18 zuletzt geändert: 2025-04-25 15:01:18
Kopie: 0 Klicks: 403
2
konzentrieren Sie sich auf
319
Anhänger

ATR-adaptive Trendverfolgungsstrategie, gefiltert durch doppelte gleitende Durchschnitte ATR-adaptive Trendverfolgungsstrategie, gefiltert durch doppelte gleitende Durchschnitte

Überblick

Die Strategie kombiniert ein Dual-Equilibrium-Filtersystem mit ATR-Adaptive-Stop-Tracking-Mechanismen, um Preisfluktuationen zu glätten und eine hohe Gewinnrate zu erzielen. Die Kernstrategie besteht darin, die schnellen EMAs und die schlechten EMAs als Filter für die Trendrichtung zu nutzen, während die ATR-basierten dynamischen Stop-Losses verwendet werden, um die Gewinne zu schützen.

Strategieprinzip

  1. Signalgenerationsschicht

    • Preise nach der Heikin Ashi-Umwandlung als Basisdatenquelle (schaltbare Originalpreise)
    • Berechnung des ATR-Kanals: Bestimmung der Breite des dynamischen Kanals durch die ATR-Länge () 20 und das Multiplikator () 1.0
    • Realisieren Sie einen adaptiven Tracking-Stopp: Trigger ein Rückschlagsignal, wenn der Preis den Kanal durchbricht
  2. Trendfilter

    • Mit einem doppelten EMA-System ((10-Zyklus-Schnelllinie/50-Zyklus-Langstrecke)
    • Nur wenn die schnelle Linie höher ist als die langsame Linie, ist mehr erlaubt, im Gegensatz dazu ist eine Leerstellung erlaubt
  3. Risikomanagement

    • Dynamische Tracking-Stopp: Steuern Sie die bewegliche Stop-Stopp-Granularität über die Parameter trail_step und trail_offset
    • Fixpunkte Stop: Take_profit_points Setzt absolute Profitziele
  4. Logik der Ausführung

    • Position aufnehmen, wenn der Preis den ATR-Kanal durchbricht und der EMA-Richtung entspricht
    • Ein Rückschlagsignal oder eine Stop-Loss-/Stopp-Flachstellung

Analyse der Stärken

  1. Hohe GewinnrateDreifachfiltermechanismus ((Heikin Ashi-Gleichung + ATR-Kanal + EMA-Kreuzung) wirksam zur Verringerung von Falschsignalen
  2. Anpassung an die WindsteuerungATR: Dynamische Anpassung der Stop-Loss-Position, automatische Erweiterung der Fehlerfrequenz bei steigender Marktfluktuation
  3. WeiterentwicklungEMA-Filter sorgen dafür, dass nur die Chancen in die Richtung der großen Trends gehen
  4. Kompatibilität mit mehreren ZeitfensternDie Parameter sind für unterschiedliche Varianten anpassbar
  5. Visuelle UnterstützungEinbau von Kauf- und Verkaufssignalmarkierungen und einheitlichen Linien zur manuellen Verifizierung

Risikoanalyse

  1. TrendumkehrrisikoDer ATR-Kanal könnte bei einer starken Umkehrung zu überschüssigen Verlusten führen.
    • Optimierung: Erhöhung der maximalen Rücknahme-Hard Stop
  2. Die Parameter passen nicht zusammen.Die 90%-Gewinnrate könnte in bestimmten historischen Daten optimiert werden.
    • Optimierung: Mehrzeit-Walk-Forward-Prüfung
  3. SchleifwäscheEMA-Kreuzungen erzeugen Falschsignale in der Stadt
    • Optimierung: Einführung eines ADX-Filters oder einer Schwankungsdämpfung
  4. Einfluss der GleitpunkteDer Markt ist in der Lage, die Preise zu verfolgen, die in schnellen Zeiten zu einem ungünstigen Preis ausgeführt werden können.
    • Optimierung: Setzen Sie die Mindestverzögerung

Optimierungsrichtung

  1. Anpassung der dynamischen Parameter

    • Automatische Anpassung der ATR-Multiplikatoren an die Marktfluktuation (z. B. der VIX Index)
    • Implementierungsprinzip: Berechnung der Standarddifferenz oder der historischen Schwankungen in Prozent
  2. Zusammengesetzte Filtersysteme

    • Hinzufügen der Transaktionsgewichtung: Erhöhung des Transaktionsvolumens bei der Aufforderung zum Durchbruch
    • Mehr Zeitfilter: Vermeidung der Zeit für wichtige Wirtschaftsdaten
  3. Maschinelle Lernoptimierung

    • Anpassung der EMA-Zykluskombination an die Dynamik mit Hilfe von Reinforcement Learning
    • Die optimale Anschlagstelle wird durch LSTM vorhergesagt.
  4. Mehrdimensionale Validierung

    • Trendbestätigung auf Kreislinie
    • Hinzufügen von RSI Abweichungen als Hilfs-Ausgangssignale

Zusammenfassen

Die Strategie ermöglicht eine hohe Wahrscheinlichkeit Trendfang durch die Heikin Ashi-ATR-EMA Dreifach-Architektur, die dynamische Stop-Loss-Mechanismen effektiv zu schützen Gewinn. Die Kernvorteile liegen in der Trendrichtung zu beurteilen (EMA), Schwankungsrate Anpassung (ATR) und Noise-Filter (Heikin Ashi) organische Integration.

Strategiequellcode
/*backtest
start: 2025-01-01 00:00:00
end: 2025-04-23 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=5
strategy("UTBot + EMA Filter (HA + ATR Logic)", overlay = true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === INPUTS ===
bandwidth = input.float(8., 'Bandwidth')
atr_mult = input.float(1.0, 'ATR Multiplier')
atr_len = input.int(20, 'ATR Length')
ema_fast_len = input.int(10, 'EMA Fast Length')
ema_slow_len = input.int(50, 'EMA Slow Length')
use_heikin = input.bool(true, title='Use Heikin Ashi Candle')
trail_step = input.float(10.0, title='Trailing Step (Points)', minval=0.1)
trail_offset = input.float(10.0, title='Trailing Offset (Points)', minval=0.1)
take_profit_points = input.float(100.0, title='Take Profit (Points)', minval=0.1)

// === SOURCE ===
sr = use_heikin ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close) : close

// === ATR Trailing Stop ===
atr = ta.atr(atr_len)
nLoss = atr_mult * atr

var float trail = na
iff_1 = sr > nz(trail[1]) ? sr - nLoss : sr + nLoss
iff_2 = sr < nz(trail[1]) and sr[1] < nz(trail[1]) ? math.min(nz(trail[1]), sr + nLoss) : iff_1
trail := sr > nz(trail[1]) and sr[1] > nz(trail[1]) ? math.max(nz(trail[1]), sr - nLoss) : iff_2

// === EMA FILTER ===
ema_fast = ta.ema(sr, ema_fast_len)
ema_slow = ta.ema(sr, ema_slow_len)

// === ENTRY & EXIT CONDITIONS ===
buy = sr[1] < trail[1] and sr > trail and ema_fast > ema_slow
sell = sr[1] > trail[1] and sr < trail and ema_fast < ema_slow

// === EXIT on opposite signal ===
exit_buy = sell
exit_sell = buy

// === STRATEGY EXECUTION ===
if buy
    strategy.entry("Buy", strategy.long)
if sell
    strategy.entry("Sell", strategy.short)

if exit_buy and strategy.position_size > 0
    strategy.close("Buy")
if exit_sell and strategy.position_size < 0
    strategy.close("Sell")

// === TRAILING STOP + TAKE PROFIT ===
// Long
if strategy.position_size > 0
    strategy.exit("Exit Long", from_entry="Buy", trail_points=trail_step, trail_offset=trail_offset, limit=sr + take_profit_points)

// Short
if strategy.position_size < 0
    strategy.exit("Exit Short", from_entry="Sell", trail_points=trail_step, trail_offset=trail_offset, limit=sr - take_profit_points)

// === PLOTS ===
plotshape(buy, title='Buy Signal', text='Buy', location=location.belowbar, color=color.green, style=shape.labelup, textcolor=color.white, size=size.tiny)
plotshape(sell, title='Sell Signal', text='Sell', location=location.abovebar, color=color.red, style=shape.labeldown, textcolor=color.white, size=size.tiny)

plot(ema_fast, color=color.teal, title='EMA Fast')
plot(ema_slow, color=color.purple, title='EMA Slow')

// === ALERTS ===
alertcondition(buy, title='UTBot Buy', message='UTBot Buy Signal')
alertcondition(sell, title='UTBot Sell', message='UTBot Sell Signal')