Kurzfristige, mittelfristige und langfristige EMA-Crossover-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-24 13:33:21
Tags:

img

Diese Strategie erzeugt Handelssignale auf der Grundlage von drei exponentiellen gleitenden Durchschnittslinien (EMA) mit verschiedenen Perioden: kurzfristige EMA mit 5-tägiger Periode, mittelfristige EMA mit 8-tägiger Periode und langfristige EMA mit 13-tägiger Periode.

Strategie Logik

Diese Strategie beurteilt den Markttrend durch Berechnung von EMAs verschiedener Perioden. Die kurzfristige EMA spiegelt den durchschnittlichen Preis der letzten paar Tage wider, während die mittelfristigen und langfristigen EMAs den durchschnittlichen Preis über längere Zeitrahmen widerspiegeln. Die Überschneidung der kurzfristigen EMA über die mittelfristigen und langfristigen EMAs signalisiert einen Aufbruch des Preises, so dass eine lange Position eingenommen wird. Umgekehrt signalisiert die kurzfristige EMA, wenn sie unter den anderen beiden überschreitet, einen Abbruch des Preises, so dass eine kurze Position eingenommen wird.

Diese Strategie erzeugt lange Signale, wenn die 5-Tage-EMA über die 8-Tage- und 13-Tage-EMA überschreitet; sie erzeugt kurze Signale, wenn die 5-Tage-EMA unter den anderen beiden überschreitet. Nachdem sie lang gegangen ist, wird die Position geschlossen, sobald die 5-Tage-EMA wieder unter die 13-Tage-EMA überschreitet.

Vorteile der Strategie

  1. Die Verwendung mehrjähriger EMA vermeidet, dass wichtige Trendumkehrpunkte, die bei zu kurzen oder zu langen einzelnen EMA-Perioden auftreten könnten, verpasst werden
  2. Die Kombination von drei kurz-, mittelfristigen und langfristigen EMA erhöht die Zuverlässigkeit der Handelssignale
  3. Durch eine glatte Preisgestaltung über die EMAs wird ein gewisses Maß an Marktlärm ausgeschlossen und unnötige Eintritte verhindert

Risiken der Strategie

  1. Alle drei EMAs sind Verzögerungstrendindikatoren, die von Natur aus einige Zeitverzögerungen vor tatsächlichen Preisausbrüchen enthalten, was zu einem Risiko für verspätete Signale führt.
  2. Die EMAs können keine wirksame Unterscheidung zwischen realen Trends und kurzfristigen Korrekturen herstellen, was zu falschen Signalen führen kann.
  3. Festgelegte EMA-Perioden können sich nicht an unterschiedliche Marktregime in verschiedenen Zeitrahmen anpassen

Verbesserungsvorschläge:

  1. Hinzufügen anderer Indikatoren wie MACD, um den realen Trend besser abzuschätzen und falsche Signale zu vermeiden
  2. Flexible Anpassung der EMA-Periodenparameter für verschiedene Produkte und Marktumgebungen
  3. Hinzufügen eines beweglichen Stop-Loss zur Verringerung der Gewinne und zur Kontrolle der Risiken

Zusammenfassung

Dies ist ein typisches Breakout-System, das Trendumkehrungen beurteilt, indem es Crossovers zwischen kurz-, mittelfristigen und langfristigen EMAs vergleicht. Seine Einfachheit bei der Signalisierung erleichtert den Handel, leidet aber auch unter EMAs inhärenter Verzögerung und Unfähigkeit, reale Trends von temporären Korrekturen zu filtern. Zukünftige Verbesserungen können andere technische Indikatoren oder adaptive Parameter-Tuning integrieren, um es zu optimieren.


/*backtest
start: 2023-11-16 00:00:00
end: 2023-11-23 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// 
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gregoirejohnb
// @It is modified by ttsaadet.
// Moving average crossover systems measure drift in the market. They are great strategies for time-limited people.
// So, why don't more people use them?
// 

//
strategy(title="EMA Crossover Strategy", shorttitle="EMA-5-8-13 COS by TTS", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.TRY,commission_type=strategy.commission.percent,commission_value=0.04, process_orders_on_close = true, initial_capital = 100000)

// === GENERAL INPUTS ===
//strategy start date
start_year = input(defval=2020, title="Backtest Start Year")

// === LOGIC ===
short_period = input(type=input.integer,defval=5,minval=1,title="Length")
mid_period = input(type=input.integer,defval=8,minval=1,title="Length")
long_period = input(type=input.integer,defval=13,minval=1,title="Length")

longOnly = input(type=input.bool,defval=false,title="Long Only")
shortEma = ema(hl2,short_period)
midEma = ema(hl2,mid_period)
longEma = ema(hl2,long_period)

plot(shortEma,linewidth=2,color=color.red,title="Fast")
plot(midEma,linewidth=2,color=color.orange,title="Fast")
plot(longEma,linewidth=2,color=color.blue,title="Slow")

longEntry = ((shortEma > midEma) and crossover(shortEma,longEma)) or ((shortEma > longEma) and crossover(shortEma,midEma))
shortEntry =((shortEma < midEma) and crossunder(shortEma,longEma)) or ((shortEma < longEma) and crossunder(shortEma,midEma))

plotshape(longEntry ? close : na,style=shape.triangleup,color=color.green,location=location.belowbar,size=size.small,title="Long Triangle")
plotshape(shortEntry and not longOnly ? close : na,style=shape.triangledown,color=color.red,location=location.abovebar,size=size.small,title="Short Triangle")
plotshape(shortEntry and longOnly ? close : na,style=shape.xcross,color=color.black,location=location.abovebar,size=size.small,title="Exit Sign")

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() =>
    longEntry 
exitLong() =>
    crossunder(shortEma,longEma)

strategy.entry(id="Long", long=strategy.long, when=enterLong())
strategy.close(id="Long", when=exitLong())


// === STRATEGY - SHORT POSITION EXECUTION ===

enterShort() =>
    not longOnly and shortEntry  
exitShort() =>
    crossover(shortEma,longEma)

strategy.entry(id="Short", long=strategy.short, when=enterShort())
strategy.close(id="Short", when=exitShort())

Mehr