Triple-EMA-Superposition-Breakout-Strategie


Erstellungsdatum: 2023-12-28 15:56:54 zuletzt geändert: 2023-12-28 15:56:54
Kopie: 0 Klicks: 680
1
konzentrieren Sie sich auf
1621
Anhänger

Triple-EMA-Superposition-Breakout-Strategie

Überblick

Dreifache EMA-Überlagerung Breakout-Strategie nutzt dreifache Index-Moving-Average-Indikatoren, um die Richtung des Markttrends zu bestimmen, und tritt an den Trendbrechpunkten ein. Die Strategie kombiniert gleichzeitig die K-Linien-Form, um ein Signal zu bestimmen.

Strategieprinzip

Die Strategie basiert auf folgenden Prinzipien:

  1. Mit drei EMA-Linien mit unterschiedlichen Perioden (200-Tage-Line, 50-Tage-Line und 20-Tage-Line) wird der Markttrend, der mittlere Trend und der kurzfristige Trend beurteilt.

  2. Ein Kaufsignal wird erzeugt, wenn der kurzfristige Trend EMA ((20-Tage-Linie) aufwärts über die mittlere EMA ((50-Tage-Linie) geht; ein Verkaufsignal wird erzeugt, wenn er nach unten geht.

  3. In Kombination mit der K-Linie-Form wird die Zuverlässigkeit des Durchbruchs beurteilt. Ein Durchbruch wird nur dann als zuverlässig angesehen, wenn der Abschlusspreis der zweiten K-Linie höher ist als der höchste Preis des Vortages und niedriger als der niedrigste.

  4. Setzen Sie einen Stop-Loss-Punkt und vermeiden Sie Risiken, die über eine angemessene Bandbreite von Schwankungen hinausgehen.

Strategische Vorteile

  1. Die Verwendung von mehreren EMA-Indikatoren zur Beurteilung von Trends erhöht die Genauigkeit der Beurteilung.

  2. In Kombination mit K-Linien-Form-Filter fehlerhafte Signale, um unnötige Handelsrisiken zu vermeiden.

  3. Setzen Sie einen Stop-Loss-Punkt, um Einzelschäden effektiv zu kontrollieren.

Strategisches Risiko

  1. Die EMA-Indikatoren erzeugen in einem schwankenden Umfeld viele falsche Signale und können die Marktentwicklung nicht effektiv beurteilen.

  2. Die Kombination von einzelnen Indikatoren ist einfach und schlechte Beurteilung für komplexe Situationen.

  3. Es ist möglich, dass Sie in einem Markt mit hohen Gebühren ohne Berücksichtigung der Transaktionskosten nicht profitabel sind.

Strategieoptimierung

  1. Andere Indikatoren wie MACD, KDJ können eingeführt werden, um eine Kombination von Indikatoren zu bilden, die die Genauigkeit der Beurteilung verbessern.

  2. Testoptimierungen können für verschiedene Sorten und Periodenparameter vorgenommen werden, um die Strategieparameter besser an die Eigenschaften der Sorte anzupassen.

  3. Die Einführung von Volumenindikatoren kann dazu beitragen, eine geringe Anzahl von falschen Signalen zu vermeiden.

Zusammenfassen

Die Dreifach-EMA-Overlay-Breakthrough-Strategie ist klar und verständlich. Durch die EMA wird der Haupttrend des Marktes beurteilt und bei einer Trendwende nach Einstiegsmomenten gesucht. Die Strategie hat jedoch eine gewisse Einschränkung und kann komplexe Situationen nicht gut handhaben. Es wird empfohlen, sie in Kombination mit anderen Indikatoren zu verwenden und die Parameter zu optimieren, um sie an das breitere Marktumfeld anzupassen.

Strategiequellcode
/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("GHG RETRACEMENT MODE 1", overlay=true)

entryLevel1 = input(0.5, "ENTRY LEVEL 1")
entryLevel2 = input(0.25, "ENTRY LEVEL 2")
entryLevel3 = input(0.0, "ENTRY LEVEL 3")

stopLevel = input(-0.35, "STOP LEVEL")
tpLevel = input(0.88, "TP LEVEL")
dontUseEma = input(false, "Don't Use EMA")


get_level(level, level100, level0) =>
    level * (level100 - level0) + level0

buySignal = close[2] < open[2] and close[1] > open[1] and close[0] > open[0] and high[0] > open[2] and high[1] < high[2]
sellSignal = close[2] > open[2] and close[1] < open[1] and close[0] < open[0] and low[0] < open[2] and low[1] > low[2]

if buySignal and (close[0] > ta.ema(close, 200) or dontUseEma)
    l = label.new(bar_index, na)
    entryPrice1 = get_level(entryLevel1, high[0], low[2])
    entryPrice2 = get_level(entryLevel2, high[0], low[2])
    entryPrice3 = get_level(entryLevel3, high[0], low[2])
    
    exitPrice = get_level(tpLevel, high[0], low[2])
    stopPrice = get_level(stopLevel, high[0], low[2])
    
    strategy.order("BUY 1", strategy.long, comment="BUY 1", limit=entryPrice1)
    strategy.exit("exit", "BUY 1", limit=high[0], stop=stopPrice)
    strategy.order("BUY 2", strategy.long, comment="BUY 2", limit=entryPrice2)
    strategy.exit("exit", "BUY 2", limit=high[0], stop=stopPrice)

    label.set_text(l, "Buy => " + str.tostring(close[2]) + "\nSL=> " + str.tostring(stopPrice) + "\nTP => " + str.tostring(exitPrice) )
    label.set_color(l, color.green)
    label.set_yloc(l, yloc.belowbar)
    label.set_style(l, label.style_label_up)
    
if sellSignal and (close[0] < ta.ema(close, 200) or dontUseEma)
    a = label.new(bar_index, na)
    entryPrice1 = get_level(entryLevel1, low[0], high[2])
    entryPrice2 = get_level(entryLevel2, low[0], high[2])
    entryPrice3 = get_level(entryLevel3, low[0], high[2])
    
    exitPrice = get_level(tpLevel, low[0], high[2])
    stopPrice = get_level(stopLevel,low[0], high[2])
    
    strategy.order("SELL 1", strategy.short, comment="SELL 1", limit=entryPrice1)
    strategy.exit("exit", "SELL 1", limit=low[0], stop=stopPrice) 
    strategy.order("SELL 2", strategy.short, comment="SELL 2", limit=entryPrice2)
    strategy.exit("exit", "SELL 2", limit=low[0], stop=stopPrice) 

    label.set_text(a,"Sell => " + str.tostring(close[2]) + "\nSL=> " + str.tostring(stopPrice) + "\nTP => " + str.tostring(exitPrice) )
    label.set_color(a, color.red)
    label.set_yloc(a, yloc.abovebar)
    label.set_style(a, label.style_label_down)