Trend nach der Kreuzung der Strategie für den gleitenden Durchschnitt

Schriftsteller:ChaoZhang, Datum: 2023-11-01 17:18:13
Tags:

img

Übersicht

Diese Strategie nutzt die goldenen Kreuz- und Todeskreuzprinzipien der gleitenden Durchschnitte, kombiniert mit dem RSI-Indikator, um bei der Identifizierung und Verfolgung von Trends zu helfen.

Strategie Logik

Die Strategie beruht auf folgenden Grundsätzen:

  1. Verwenden Sie EMA anstelle von SMA, um die neuesten Kursänderungen besser abzubilden und schneller auf Ausbrüche zu reagieren.

  2. Doppel gleitender Durchschnitts-Crossover-System: Kurzfristige EMA-Kreuzung über die langfristige EMA signalisiert einen langen Eintritt, während kurzfristige EMA-Kreuzung unterhalb der langfristigen EMA einen kurzen Eintritt signalisiert. Dies nutzt die Prinzipien des goldenen Kreuzes und des Todeskreuzes, um eine Trendumkehr zu bestimmen.

  3. Der RSI-Indikator hilft beim Filtern von falschen Ausbrüchen, indem er überkaufte/überverkaufte Konditionen signalisiert.

  4. Mehrere gleitende Durchschnitte, die zusammengestellt sind: 55-Perioden-EMA für kurzfristige Signale, 100-Perioden-EMA für mittelfristige Trends und 200-Perioden-EMA für langfristige Trends.

  5. Um das Risiko zu kontrollieren, sind angemessene Stop-Loss- und Gewinn-Einstellungen erforderlich.

Die wichtigste Handelslogik lautet:

  1. Der Wert der Vermögenswerte, für die die EMA mit 55-Perioden-Verlauf überschreitet die EMA mit 100-Perioden-Verlauf, und der Wert der EMA mit 12-Perioden-Verlauf überschreitet die EMA mit 200-Perioden-Verlauf, wird als Long eingetragen.

  2. Der Wert des Wertpapiers, der in den einzelnen Sektoren verwendet wird, wird in den einzelnen Sektoren aufgeschlüsselt.

  3. Setzen Sie Stop-Loss und Take-Profit nach dem Einstieg, um die Rendite zu optimieren.

  4. Schließen von Long/Short-Positionen, wenn der RSI zu viel gekauft/überverkauft zeigt, um Umkehrrisiken zu vermeiden.

  5. Die Kombination aus mehreren gleitenden Durchschnittsperioden ermöglicht sowohl die Trendverfolgung als auch die Bestätigung der Umkehrung, wodurch man nicht in eine längere Konsolidierung geraten kann, während man dem großen Trend folgt.

Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Einfache Logik, basierend auf gleitenden Durchschnitts-Kreuzungen, leicht zu verstehen und umzusetzen.

  2. Eine schnellere Reaktion auf Preisänderungen und Trendumkehrungen durch die Verwendung von EMA.

  3. Mehrere gleitende Durchschnittsperioden sind sowohl für die Trendverfolgung als auch für die Identifizierung von Umkehrungen geeignet.

  4. RSI filtert falsche Ausbrüche aus und erhöht die Signalgenauigkeit.

  5. Standard-Stop-Loss-/Take-Profit-Parameter kontrollieren das Handelsrisiko wirksam.

  6. Sie ist durch die Anpassung von gleitenden Durchschnittsperioden, Stop-Loss-/Take-Profit-Verhältnissen usw. sehr anpassbar.

Risiken

Die wichtigsten Risiken dieser Strategie sind:

  1. Anfällig dafür, in schwankenden, volatilen Märkten geschlagen zu werden, was zu übermäßigen inaktiven Signalen führt.

  2. Standardparameter passen möglicherweise nicht zu allen Produkten und Zeitrahmen und müssen optimiert werden.

  3. Rein technisch gesteuert, anfällig für grundlegende Veränderungen und Ereignisrisiken.

  4. Kann unterlegen sein, wenn der Index steigt, aber die Marktbreite abweicht.

  5. Das Risiko, zu früh Gewinn zu machen und den größten Teil des Trends zu verpassen.

Um diesen Risiken entgegenzuwirken, können folgende Optimierungen vorgenommen werden:

  1. Fügen Sie Filter wie Lautstärke hinzu, um falsche Ausbrüche zu vermeiden.

  2. Backtest, um optimale Parameter für jedes Produkt zu finden.

  3. Stärkere Stop-Loss- und Gewinnempfängen zur Begrenzung von Whipsaw-Risiken in verschiedenen Märkten.

  4. Einbeziehen Sie grundlegende Filter, um Signale vor großen Ereignissen zu vermeiden.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimieren Sie gleitende Durchschnittsperioden, um über maschinelles Lernen usw. die besten kurz-, mittelfristigen und langfristigen Kombinationen zu finden.

  2. Testen Sie den Schlusskurs gegenüber dem typischen Preis für die Leistung.

  3. Fügen Sie einen Lautstärkungsfilter hinzu, damit Sie nur Signale auf Lautstärkeregeln empfangen.

  4. Optimieren Sie die Stop-Loss-/Take-Profit-Verhältnisse für höhere Präzision oder setzen Sie dynamische Stopps basierend auf Prozentsätzen.

  5. Erstellen Sie zusammengesetzte Modelle mit zusätzlichen Indikatoren wie Stochastics, MACD, Bollinger Bands, um die Leistung zu verbessern.

  6. Backtest auf verschiedene Produkte, Zeitrahmen und Marktbedingungen für die Robustheit.

  7. Nutzen Sie maschinelles Lernen für die mehrdimensionale Parameteroptimierung.

Schlussfolgerung

Dies ist eine leicht verständliche Trendfolgestrategie, die auf einfacher gleitender Durchschnitts-Crossover-Logik basiert. Sie hat Vorteile wie einfache Implementierung, Zuverlässigkeit und hohes Anpassungspotenzial. Sie birgt aber auch inhärente Marktrisiken, die eine kontinuierliche Optimierung von Parametern und Modulen auf Basis von Backtest-Ergebnissen erfordern, um die Strategie robuster und intelligenter zu machen. Die Kombination von technischer Analyse mit Grundlagenforschung kann ihre Vollständigkeit und Zuverlässigkeit weiter verbessern.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-31 00:00:00
period: 15m
basePeriod: 5m
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/
// © pernath

//@version=5
strategy("TREND_CATCHER", overlay=true, commission_value=0.05, commission_type=strategy.commission.percent, initial_capital=1000)

//#####variables##############
profit_short=input(title='profit_short', defval=27)
stop_short=input(title='stop_short', defval=2)

stop_long=input(title='stop_long', defval=3)
profit_long=input(title='profit_long', defval=35)


media_1=input(title='media_1', defval=55)
media_2=input(title='media_2', defval=100)
resta_medias=input(title='resta_medias', defval=0)
resta_medias2=input(title='resta_medias2', defval=0)

RSI_periodos=input(title='RSI_periodos', defval=42)
//###############VARIABLES###################




//#####Alert#####
id_bot = ""
email_token = ""
long_open =""
long_close =""
short_open =""
short_close =""
//#  {{strategy.order.alert_message}}


//#############################
//#############################

//###############EMA##############/
//plot(ta.ema(close, 1), title='ema 5', color=color.white)
plot(ta.ema(close, 12), title='ema 12', color=color.white)
plot(ta.ema(close, 25), title='ema 25', color=color.white)
plot(ta.ema(close, 30), title='ema 30', color=color.white, linewidth=1)
plot(ta.ema(close, 40), title='ema 40', color=color.white, linewidth=1)
plot(ta.ema(close, 55), title='ema 55', color=color.orange, linewidth=1)
plot(ta.ema(close, 100), title='ema 100', color=color.red, linewidth=1)
plot(ta.ema(close, 200), title='ema 200', color=color.white, linewidth=3)

//#############################/





//######VISUAL#############
EMA50 = ta.ema(close, 55)
EMA100 = ta.ema(close, 100)


estado_medias=EMA50-EMA100




a = plot(EMA50, title="EMA(50)", color=color.orange, linewidth=1 ) 
b = plot(EMA100, title="EMA(100)", color=color.red, linewidth=1 )


var color col = na
col := estado_medias>resta_medias ? color.green : color.red
fill(a,b,color=col,transp=40)


//######VISUAL#############





Go_Short=(ta.crossunder(ta.ema(close,100),ta.ema(close,200)))
Go_Long=((ta.crossover(ta.ema(close,55),ta.ema(close,100))and(ta.ema(close,12)>ta.ema(close,200))))


strategy.close("enter long", (Go_Short),alert_message=long_open)

cancelar_short=((ta.crossunder(ta.ema(close,25),ta.ema(close,6))))



if Go_Short
    strategy.entry("enter short", strategy.short,1, alert_message=short_open) 
  
strategy.exit("cerrar short", "enter short", 1, profit=close*profit_short/100/syminfo.mintick, loss=close*stop_short/100/syminfo.mintick, alert_message=short_close)




strategy.close("enter short", (Go_Long),alert_message=short_close)
cancelar=((ta.crossunder(ta.ema(close,12),ta.ema(close,30))))



if Go_Long
    strategy.entry("enter long", strategy.long,1,alert_message=long_open)

strategy.exit("cerrar long", "enter long", 1, profit=close*profit_long/100/syminfo.mintick, loss=close*stop_long/100/syminfo.mintick, alert_message=long_close)




strategy.close("enter short", (cancelar_short),alert_message=short_close)

strategy.close("enter long", (cancelar),alert_message=long_close)


//posiciones abiertas
bgcolor((strategy.position_size > 0 or strategy.position_size < 0) ? color.blue : na, transp=70)









Mehr