EMA-Skelettstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-07 17:20:44
Tags:

img

Übersicht

Diese Strategie kombiniert die EMA- und RSI-Indikatoren, um kurzfristige Anpassungsmöglichkeiten in Bitcoin zu identifizieren. Sie verwendet hauptsächlich die EMA als Hauptgrafikwerkzeug und den RSI als Hilfsbeurteilungsindikator, um offensichtliche Anpassungsmuster zu finden. Handelssignale werden generiert, wenn der Preis unterhalb der EMA-Linie bricht oder wieder über die EMA-Linie klettert. Es verfügt auch über Stop-Loss- und Take-Profit-Kontrollen, die parametriert werden können.

Strategieprinzip

Die Strategie verwendet hauptsächlich die 50-Perioden-EMA-Linie und den 25-Perioden-RSI-Indikator. Die EMA-Linie gilt als der wichtigste grafische Indikator und der RSI wird verwendet, um Überkauf- und Überverkaufszustände zu bestimmen, um Handelssignale zu generieren. Ein Verkaufssignal wird generiert, wenn der Preis unter die EMA-Linie fällt, und ein Kaufsignal wird generiert, wenn der Preis über die EMA-Linie bricht und der RSI-Indikator ein nicht-überkauftes Signal zeigt (RSI-Wert kleiner als 70).

Nach dem Eintritt in einen Handel setzt die Strategie auch Stop-Loss- und Take-Profit-Levels fest. Die Stop-Loss-Distanz ist einstellbar und liegt bei 5,1%; die Take-Profit-Distanz ist ebenfalls einstellbar und liegt bei 9,6%. Dies begrenzt effektiv den maximalen Verlust pro Handel.

Zusammenfassend basiert die Strategie hauptsächlich auf EMA-Linienmustern, ergänzt durch RSI-Indikatoren, um Überkauf- und Überverkaufszustände zu vermeiden, wobei Stop-Loss- und Take-Profit-Kontrollen vorhanden sind.

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Die Strategie-Signale sind relativ klar, ohne zu viele zufällige falsche Einträge.

  2. Ein integriertes Stop-Loss- und Take-Profit-System begrenzt effektiv den Verlust pro Handel und ist ein sehr wichtiges Risiko-Kontrollwerkzeug.

  3. Die Strategieparameter können optimiert werden. EMA-Länge, RSI-Länge und mehr sind einstellbare Parameter. Benutzer können die optimalen Parameter-Sätze für verschiedene Marktbedingungen finden.

  4. Die Strategie erlaubt es, intern einen Backtest-Datumbereich festzulegen, um die Leistung zu überprüfen.

Risikoanalyse

Die Strategie birgt auch einige Risiken, hauptsächlich aus folgenden Gründen:

  1. BT Bitcoin hat volatile Bewegungen, Stops können ausgeführt werden. Obwohl Stops gesetzt werden, hat BT Bitcoin oft große Kursschwankungen, die zu größeren als erwarteten Verlusten führen können.

  2. Abzugsrisiko: Die Strategie berücksichtigt keine Gesamtkontrolle der Abzugsraten und kann während längerer Anpassungszeiten zu Abzugsraten führen.

  3. Die kurzfristigen Signale neigen dazu, unterdurchschnittlich zu funktionieren, was dazu führt, dass sie aus guten Trades gestoppt werden.

Um diese Risiken zu kontrollieren und zu mindern:

  1. Bei starken Trendbedingungen kann der Stop-Loss-Bereich vergrößert werden, z. B. auf 10%, um zu vermeiden, dass er vorzeitig gestoppt wird.

  2. Hinzufügen anderer Indikatorfilter.Trendfolgende Indikatoren können hinzugefügt werden, um zu vermeiden, dass während längerer Konsolidierungsperioden Geschäfte getätigt werden.

  3. Optimieren von Parametern. Testparameter setzen sich unter verschiedenen Marktbedingungen ein. Wechselparameter setzen sich ein, wenn starke Trends auftreten, um die Signalqualität zu verbessern.

Optimierungsrichtlinien

Es gibt weitere Möglichkeiten, diese Strategie zu optimieren:

  1. Sie können einen maximalen Abzugsprozentsatz festlegen, z. B. 20%, der den Handel unterbricht, wenn er erreicht ist, um Verluste zu begrenzen.

  2. Einstiegsfrequenz einschränken. Kann die Anzahl der Trades pro Zeiteinheit einschränken, z. B. 2 Trades pro Stunde max.

  3. Optimieren von Parametern. Testen von Parameterkombinationen für verschiedene Marktbedingungen. Erstellen von Parametervorlagen, um in Echtzeit zwischen aktuellen Bedingungen zu wechseln.

  4. Kombination mit anderen Indikatoren, Integration von Trend, Volatilität und anderen Kennzahlen zur Schaffung umfassenderer Regeln für den Zugang zum Handelssystem.

Zusammenfassung

Insgesamt beruht die Strategie hauptsächlich auf kurzfristigen BT-Bitcoin-Anpassungsmustern, wobei die EMA und der RSI verwendet werden, um klare Handelssignale zu generieren, während Stop-Loss und Take-Profit-Kontrollen vorhanden sind.


/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mmoiwgg

//@version=4
strategy(title="EMA+RSI Pump & Drop Swing Sniper (With Alerts & SL+TP) - Strategy", shorttitle="EMA+RSI Swing Strategy", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=50, minval=0)
emarsiSource = input(close, title="EMA+RSI Source")
condSource = input(high, title="Long+Short Condition Source")
emaVal = ema(emarsiSource, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(emarsiSource, rsiLength)

//Safety 
emaLength2 = input(title="Safety EMA Length", type=input.integer, defval=70, minval=0)
emaSource2 = input(close, title="Safety EMA Source")
ema = ema(emaSource2, emaLength2)
emaColorSource2 = close
emaBSource2 = close

// Backtest+Dates
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
showDate  = input(defval = true, title = "Show Date Range", type = input.bool)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)        // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest end window
window()  => time >= start and time <= finish ? true : false       // create function - add window() to entry/exit/close

// Conditions
exit_long = crossover(emaVal, condSource)
longCond = crossunder(emaVal, condSource) and close > ema

//Stoploss + TakeProfit
sl = input(0.051, step=0.001, title="Stop Loss")
tp = input(0.096, step=0.001, title="Take Profit")

// Plots Colors
colors = emarsiSource > emaVal and rsiVal > 14 ? color.green : color.red
emaColorSource = input(close, title="Line Color Source")
emaBSource = input(close, title="Line Color B Source")

// Plots
plot(ema, color=emaColorSource2[1] > ema and emaBSource2 > ema ? color.green : color.red, linewidth=1)
plot(emaVal, color=emaColorSource[1] > emaVal and emaBSource > emaVal ? color.green : color.red, linewidth=3)
plotcandle(open, high, low, close, color=colors)


//Strategy Entry+Exits
strategy.entry("long",1,when=window() and longCond)
strategy.close("long",when=window() and exit_long)
strategy.exit("long tp/sl", "long", profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick)


Mehr