Strategie zur Kombination von EMA-Ausbrüchen und Candlestick-Mustern mit mehreren Zeitrahmen


Erstellungsdatum: 2024-02-21 15:00:06 zuletzt geändert: 2024-02-21 15:00:06
Kopie: 0 Klicks: 585
1
konzentrieren Sie sich auf
1617
Anhänger

Strategie zur Kombination von EMA-Ausbrüchen und Candlestick-Mustern mit mehreren Zeitrahmen

Überblick

Diese Strategie kombiniert EMA-Indikatoren mit K-Linien-Form-Beschlüssen und ermöglicht ein sensibleres Langzeitsignalfang und Verlustverhinderung.

Strategieprinzip

Diese Strategie basiert auf folgenden Kennzahlen:

  1. EMA-Gehalt: Die EMA-Gehaltgruppe 2 mit 13 und 21 Perioden wird verwendet, um zu bestimmen, ob ein Preisbruch ein Handelssignal bildet.

  2. K-Linienform: Bestimmung der Richtung der K-Linien-Einheit, zusammen mit dem EMA-Indikator verwendet, Filter falscher Durchbruch.

  3. Unterstützungswiderstand: Der jüngste 10-Zyklus-Hochpunkt wird verwendet, um zu beurteilen, ob ein Durchbruch die Signalzuverlässigkeit durch diese Zone erhöht.

  4. Aufstiegszeit: 120-Zyklus-Close-Preis über dem Open-Preis als Aufstiegszeit beurteilt, als Hilfsentscheidung.

Die Regeln für die Erzeugung von Handelssignalen lauten:

  1. Mehrköpfige Signal: Schnell-EMA nach oben durchbrechen die langsame EMA, und für die Kurvenlinie K-Linie, schließen die leeren Lager öffnen.

  2. Hohes Signal: Schneller EMA fällt abwärts über den langsamen EMA und ist eine negative K-Linie, die Positionen ausgleicht.

  3. Stop-Loss-Exit: Der Stop-Loss-Exit der aktuellen Position erfolgt, wenn ein Gegenhandsignal ausgegeben wird.

Strategische Vorteile

  1. Mehrfache EMA-Zeitrahmen, die Trends zuverlässiger beurteilen und falsche Durchbrüche vermeiden.
  2. Filter in Richtung der K-Linien-Einheit, um Trends genauer zu erkennen.
  3. Um die Signalqualität zu gewährleisten, werden zeitliche Beurteilung und Widerstandsbeurteilung unterstützt.
  4. Das Risiko von Verlusten wird durch Rückzahlung verringert.

Strategisches Risiko

  1. Ein erfolgloser Durchbruch birgt das Risiko eines Verlusts. Selbst wenn die EMA- und K-Line-Einheit für mehrere Zeiträume eingeführt wird, können die Auswirkungen des erfolglosen Durchbruchs auf die Strategie nicht vollständig vermieden werden.
  2. Die falsche Einstellung von Parametern wie EMA-Perioden, K-Linien-Beschluss-Perioden und anderen kann zu einer Verringerung der Signalqualität führen.
  3. Risiken von Widerstandsverlust der Stütze. Historische Widerstandsverlust der Stütze ist eine häufige Situation, die auch dazu führen kann, dass die Signalentwicklung nicht ausreichend Dynamik hat.
  4. Das Risiko einer zeitlichen Ausfallwirkung. Die zeitliche Situation ist veränderlich und kann nicht vollständig auf zeitliche Beurteilung angewiesen werden.

Diese Risiken können durch Vermeidung von Überoptimierung, umsichtige Auswahl der Parameter und strenge Kontrolle der Positionsgröße verringert werden.

Richtung der Strategieoptimierung

  1. Die Einführung von Machine-Learning-Modellen zur Unterstützung von Beurteilungen. Klassifizierungsmodelle können trainiert werden, um die Richtung von K-Linien-Einheiten zu bestimmen und die Beurteilungsgenauigkeit zu verbessern.
  2. Erweiterung der Anpassungsschutzmechanismen wie Trailing Stops oder Schwankungsrate-basierte Stopps.
  3. In Kombination mit einer emotionalen Analyse. Einführung eines bestimmten Mechanismus zur Beurteilung der Medienopinion, um zu vermeiden, dass sich negative Nachrichten erheblich auf die Strategie auswirken.
  4. Positionsmanagement-Module hinzugefügt werden, z. B. die Einführung eines festen Positionsanteils oder ein Modul zur Positionsanpassung basierend auf der Kapitalverwaltung.

Zusammenfassen

Diese Strategie integriert die EMA-Indikatoren des Mehrzeitrahmens mit der K-Line-Einheit und ermöglicht eine zuverlässige Trendbeurteilung. Die Strategie wird unterstützt, um die Signalqualität zu gewährleisten. Durch die Anti-Hand-Signal-Stoppmechanik kann der einzelne Stopp effektiv kontrolliert werden. In Zukunft kann die Strategie durch die Einführung von maschinellen Lernmodellen, Anpassungs-Stoppmodulen, emotionale Analyse und Positionsmanagement-Modulen optimiert werden.

Strategiequellcode
/*backtest
start: 2023-02-14 00:00:00
end: 2024-02-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title='ck - CryptoSniper Longs Only (Strategy)', shorttitle='ck - CryptoSniper Longs (S) v1', overlay=true, precision=2, commission_value=0.25, default_qty_type=strategy.percent_of_equity, pyramiding=0, default_qty_value=100, initial_capital=100)

open_long = 0
close_position = 0
last_long=close
last_short=close

//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=false

//-----------------Support and Resistance 
RST = input(title='Support / Resistance length:', defval=10) 
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)

//--------------------Trend colour ema------------------------------------------------// 
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0

//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0

//=============Hull MA//
show_hma = false
hma_src = input(close, title="HullMA Source:")
hma_base_length = input(8, minval=1, title="HullMA Base Length:")
hma_length_scalar = input(5, minval=0, title="HullMA Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))

//============ signal Generator ==================================//
Period=input(title='Period', defval='120')
ch1 = request.security(syminfo.tickerid, Period, open)
ch2 = request.security(syminfo.tickerid, Period, close)

// Signals//
long = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
short = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short) ? 1 : -1
short_signal = crossover(last_short, last_long) ? -1 : 1

if (long_signal == 1)
    strategy.entry("Long Open", strategy.long)

if (short_signal == -1)
    strategy.close("Long Open")
    
if (long_signal[1] == 1 and short_signal[1] == 1)
    open_long := 1
    close_position := 0

if (short_signal[1] == -1 and long_signal[1] == -1)
    open_long := 0
    close_position := 1

plotshape(open_long == 1, title="Open Long", location=location.belowbar, style=shape.triangleup, size=size.small, color=green, transp=10)
plotshape(close_position == 1, title="Close Long", location=location.abovebar, style=shape.triangledown, size=size.small, color=red, transp=10)
//plot(0, title="Trigger", color=white)

///////////////////////////////////////////////////////////////////////////////////////////