
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.
Die Strategie basiert auf folgenden Prinzipien:
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.
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.
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.
Setzen Sie einen Stop-Loss-Punkt und vermeiden Sie Risiken, die über eine angemessene Bandbreite von Schwankungen hinausgehen.
Die Verwendung von mehreren EMA-Indikatoren zur Beurteilung von Trends erhöht die Genauigkeit der Beurteilung.
In Kombination mit K-Linien-Form-Filter fehlerhafte Signale, um unnötige Handelsrisiken zu vermeiden.
Setzen Sie einen Stop-Loss-Punkt, um Einzelschäden effektiv zu kontrollieren.
Die EMA-Indikatoren erzeugen in einem schwankenden Umfeld viele falsche Signale und können die Marktentwicklung nicht effektiv beurteilen.
Die Kombination von einzelnen Indikatoren ist einfach und schlechte Beurteilung für komplexe Situationen.
Es ist möglich, dass Sie in einem Markt mit hohen Gebühren ohne Berücksichtigung der Transaktionskosten nicht profitabel sind.
Andere Indikatoren wie MACD, KDJ können eingeführt werden, um eine Kombination von Indikatoren zu bilden, die die Genauigkeit der Beurteilung verbessern.
Testoptimierungen können für verschiedene Sorten und Periodenparameter vorgenommen werden, um die Strategieparameter besser an die Eigenschaften der Sorte anzupassen.
Die Einführung von Volumenindikatoren kann dazu beitragen, eine geringe Anzahl von falschen Signalen zu vermeiden.
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.
/*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)