Schnelle und langsame EMA Golden Cross Breakout-Strategie


Erstellungsdatum: 2023-12-01 18:02:24 zuletzt geändert: 2023-12-01 18:02:24
Kopie: 0 Klicks: 754
1
konzentrieren Sie sich auf
1621
Anhänger

Schnelle und langsame EMA Golden Cross Breakout-Strategie

Überblick

Die schnelle EMA Gold-Cross-Breakout-Strategie ist eine einfache und effektive Strategie, um Markttrends zu verfolgen. Sie nutzt die EMA-Gehaltslinien verschiedener Zyklen, um Cross-Breakouts zu erzeugen, um ein Kauf- und Verkaufssignal zu erzeugen. Die Grundidee ist: Wenn eine kurze Periode EMA eine längere Periode EMA durchläuft, erzeugt sie ein Kaufsignal; Wenn eine kurze Periode EMA eine längere Periode EMA durchläuft, erzeugt sie ein Verkaufssignal.

Strategieprinzip

Die Strategie basiert hauptsächlich auf dem Vergleich der EMA-Mittel für die 5-, 8- und 13-Zyklen, um Handelssignale zu erzeugen. Sie umfasst:

  1. Berechnen Sie das 5-Zyklus-EMA, das 8-Zyklus-EMA und das 13-Zyklus-EMA.
  2. Ein Kaufsignal wird erzeugt, wenn ein 5-Zyklus-EMA einen 8-Zyklus-EMA und einen 13-Zyklus-EMA durchläuft.
  3. Ein Verkaufssignal wird erzeugt, wenn ein 5-Zyklus-EMA unter einem 8-Zyklus-EMA und einem 13-Zyklus-EMA durchschreitet.
  4. Die ADX-Indikatoren beurteilen die Stärke des Trends und geben nur dann ein Signal ab, wenn der Trend stark genug ist.

Auf diese Weise wird der Effekt der Verfolgung von mittleren und langen Trendlinien erreicht. Wenn die kurze Periodendurchschnittslinie die lange Periodendurchschnittslinie durchbricht, wird der kurzfristige Trend zu einem Mehrkopf umgestellt, der gekauft werden kann. Wenn die kurze Periodendurchschnittslinie die lange Periodendurchschnittslinie durchbricht, wird der kurzfristige Trend zu einem Leerkopf umgestellt, der verkauft werden sollte.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Die Bedienung ist einfach und leicht zu realisieren.
  2. Nutzen Sie die EMA-Gleichlinie, um Trends effektiv zu verfolgen.
  3. Die EMA-Mehrgruppen-Kombinationen werden gekreuzt, um falsche Signale zu vermeiden.
  4. In Kombination mit dem ADX-Kennzeichen wird das Signal zuverlässiger.
  5. Die Rücknahme und die maximale Abnahme sind nicht hoch.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Bei starker Trendwende kann der Stop-Loss größer sein. Der Stop-Loss-Range kann entsprechend erweitert werden.
  2. Die EMA-Parameter können entsprechend angepasst werden, um die Häufigkeit der Transaktionen zu verringern.

Optimierungsrichtung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Optimierung der EMA-Parameter, um die optimale Parameterkombination zu finden.
  2. Zusätzliche Filter für andere Indikatoren wie KDJ, BOLL usw. verbessern die Signalqualität.
  3. Anpassung der Positionsverwaltung und Optimierung der Risikokontrolle.
  4. Mit Hilfe von maschinellen Lernmethoden finden wir bessere Ein- und Ausstiegsregeln.

Zusammenfassen

Zusammenfassend lässt sich sagen, dass die schnelle EMA-Gold-Cross-Break-Strategie insgesamt gut funktioniert, die Signale sind zuverlässig und der Rückzug ist gering. Sie ist geeignet, die mittleren und langen Trends zu verfolgen. Durch die Optimierung der Parameter und die Verbesserung der Regeln können bessere Strategieeffekte erzielt werden.

Strategiequellcode
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 2h
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 by TTS", 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")
rsi_period = input(type=input.integer,defval=14,minval=1,title="Length")
longOnly = input(type=input.bool,defval=false,title="Long Only")
shortEma = ema(close,short_period)
midEma = ema(close,mid_period)
longEma = ema(close,long_period)

rsi = rsi(close, rsi_period)

[diplus, diminus, adx] = dmi(short_period, short_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 = crossover(shortEma,midEma) and crossover(shortEma,longEma) //or ((shortEma > longEma) and crossover(shortEma,midEma)))and (adx > 25)
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 and 
       time > timestamp(start_year, 1, 1, 01, 01)
exitLong() =>
    crossunder(shortEma,longEma) or crossunder(close, 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 and 
       time > timestamp(start_year, 1, 1, 01, 01)
exitShort() =>
    crossover(shortEma,longEma)

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