Zeitübergreifende Trendstrategie basierend auf gleitendem Durchschnitt und EMA


Erstellungsdatum: 2024-02-21 15:59:43 zuletzt geändert: 2024-02-21 15:59:43
Kopie: 1 Klicks: 713
1
konzentrieren Sie sich auf
1617
Anhänger

Zeitübergreifende Trendstrategie basierend auf gleitendem Durchschnitt und EMA

Überblick

Die Strategie ist eine Strategie, die die Mittellinie und EMA nutzt, um über die Zeitrahmen hinweg zu handeln. Die Strategie erlaubt eine Trendverfolgung mit geringem Risiko, indem sie die Trendrichtung durch die Kombination von SMA, EMA und K-Linie-Einheiten aus verschiedenen Perioden beurteilt.

Strategieprinzip

Die Strategie basiert hauptsächlich auf dem Vergleich von SMA-Mitteln aus drei Perioden, um die Kursentwicklung zu bestimmen. Zusätzlich wird die EMA verwendet, um die Richtung der Einheit zu bestimmen.

Insbesondere verwendet die Strategie drei-Perioden-SMA-Mittellinien, d. h. 3-Perioden-, 8-Perioden- und 10-Perioden-SMA. Der Preis wird als unterhalb der drei Mittellinien betrachtet, wenn er unterhalb der drei Mittellinien liegt, und gibt ein Kaufsignal, wenn der Preis wieder auf die Mittellinie zurückkehrt.

Die Strategie nutzt außerdem eine 5-Zyklus-EMA, um die Richtung der K-Linie zu bestimmen und sicherzustellen, dass die Entität beim Kauf nach oben geht.

In der Positionsverwaltung setzt die Strategie die Anzahl der Gewinne oder die maximale Positionsperiode als Stop-Loss-Methode.

Analyse der Stärken

Die Strategie kombiniert die Durchschnittslinie verschiedener Zeiträume, um Trends zu beurteilen. Sie filtert effektiv Marktlärm und verfolgt die mittleren und langen Trends. Die Strategie-Parameter wurden optimiert und haben eine gute Leistung in der historischen Rückmeldung.

Außerdem kann die Strategie mit der EMA-Beurteilung vermieden werden, dass die K-Line-Einheit nach unten gekauft wird, wodurch unnötige Schlupfpunktschäden verringert werden.

Insgesamt ist die Strategie stabil, zuverlässig und geeignet für mittlere und längere Strecken.

Risiken und Gegenmaßnahmen

  • Die Strategie ist sehr sensibel für Parameter, 3 SMA- oder EMA-Zyklen, bei denen die falsche Einstellung die Qualität des Handelssignals beeinträchtigt. Die Parameter müssen für verschiedene Sorten optimiert werden.

  • Die Strategie berücksichtigt keine großen Sprünge oder Schlupflöcher. Es kann zu einem gewissen Verlust kommen, wenn eine wichtige Nachricht zu einem starken Sprung des Preises führt.

Optimierungsrichtung

  • Es kann in Erwägung gezogen werden, mehr Periodenparameter hinzuzufügen, um EMA oder SMA-Vergleiche in mehreren Zeitrahmen zu erstellen und die Strategie zu einer präziseren Trendbeurteilung zu bringen.

  • Es ist möglich, die Stop-Loss-Einstellung mit einer bestimmten Größe zu testen, um die Verluste bei Extremsituationen zu reduzieren, unter der Voraussetzung, dass ein Gewinn garantiert wird.

  • Es kann versucht werden, die Parameter mit Hilfe von maschinellem Lernen dynamisch zu optimieren, so dass die Strategieparameter an die tatsächlichen Marktbedingungen angepasst werden können.

Zusammenfassen

Die Strategie ist insgesamt robust und zuverlässig. Die Trendrichtung wird durch den Vergleich der Durchschnittslinien ermittelt, die durch EMA-Filtersignale unterstützt werden. Durch die Optimierung der Parameter und die Einstellung der Windkontrolle können die Gewinnrate und die Gewinnrate der Strategie weiter verbessert werden.

Strategiequellcode
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Free Strategy #02 (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))