Drei gleitende Durchschnitte Crossover Momentum Strategie


Erstellungsdatum: 2023-12-25 12:06:36 zuletzt geändert: 2023-12-25 12:06:36
Kopie: 0 Klicks: 703
1
konzentrieren Sie sich auf
1623
Anhänger

Drei gleitende Durchschnitte Crossover Momentum Strategie

Überblick

Die Triple-Cross-Equilibrium-Strategie ist eine typische Technische Kennziffer-Strategie, um Markttrends zu verfolgen. Sie kombiniert drei einfache Moving Averages mit 16 Perioden, 36 Perioden und 72 Perioden, um Markttrends durch ihre Mehrkopf- und Blankkopf-Kreuzung zu beurteilen, und kombiniert Kaufmanns Adaptive Moving Average als Filter, um zu viel oder zu wenig zu tun, wenn die Richtung des Trends deutlich ist.

Strategieprinzip

Der Kern der Strategie sind die drei einfachen Moving Averages mit 16-, 36- und 72-Perioden. Wenn der kurze Periodenmittel über den längeren Periodenmittel geht, ist der Markt in einen Mehrkopftrend; wenn der kurze Periodenmittel unter dem längeren Periodenmittel geht, ist der Markt in einen Hohltrend. Wenn beispielsweise der 16-Periodenmittel 36 und 72 durchläuft, ist dies ein Mehrkopfsignal; wenn der 16-Periodenmittel 36 und 72 durchläuft, ist dies ein Hohltrend.

Kaufmanns Adaptive Moving Average (KAMA) wird als Filter verwendet, um Fehlsignale bei unklaren Trends zu vermeiden. Das Gleichlinik-Kreuzsignal wird nur aktiviert und ausgeführt, wenn KAMA sich im Nicht-Beschleunigungs- oder Nicht-Verzögerungsmodus befindet (d.h. in einem linearen Abschnitt).

Die Strategie verfolgt die Kreuzung der Mittellinie, indem sie bei einem klaren Trend einen Plus- oder einen Minus-Operation ausführt. Die Plus-Bedingung besteht darin, dass 16 die 36-Mittellinie und 72 die Mittellinie auf der Mittellinie durchläuft und KAMA-linear ist (nicht beschleunigt); die Minus-Bedingung besteht darin, dass 16 die 36-Mittellinie und 72 die Mittellinie unter der Mittellinie durchläuft und KAMA-linear ist (nicht verlangsamt).

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Mit mehreren Zeitrahmen kann man die mittleren und langen Trends des Marktes effektiv verfolgen.
  2. Die Einführung von Adaptive Moving Averages als Filter reduziert Fehlsignale bei unklaren Trends
  3. Einfache Bedienung, einfache Implementierung und geeignet für automatische oder programmatische Transaktionen

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Bei Erschütterungen kann es zu häufigen Linearkreuzungen kommen, die zu viele unwirksame Signale erzeugen.
  2. Ohne Stop-Loss-Einstellung können Verluste zunehmen
  3. Für die Gestaltung von Markten mit hoher Volatilität wie Kryptowährungen sind kleinere Märkte möglicherweise nicht so effektiv

Das Risiko kann durch eine angemessene Anpassung der Mittelwertparameter verringert werden, indem eine Stop-Loss-Strategie eingerichtet wird oder diese Strategie nur in stark volatilen Märkten eingesetzt wird.

Optimierungsrichtung

Die Strategie kann auf folgende Weise optimiert werden:

  1. Verschiedene Kombinationen von Mittellinienparametern testen, um die optimale Parameter zu finden
  2. Erhöhung der Transaktionsmenge oder der Schwankungen als Hilfsfilterbedingungen
  3. Einrichtung von Stop-Loss-Mechanismen
  4. In Kombination mit anderen Indikatoren für den Einstiegszeitpunkt
  5. Optimierung der Positionsverwaltung, Risikobereitschaft durch schrittweise Auf- und Abnahme von Positionen

Zusammenfassen

Die Drei-Gleichgewichts-Kreuz-Dynamik-Strategie ist insgesamt eine eher klassische und praktische Trend-Tracking-Strategie. Sie beurteilt die langen Bewegungen in den Märkten durch die Kreuzung von mehreren Zeiträumen und filtert effektiv einige Geräusche. Sie kann als einer der Referenzindikatoren für den zeitlichen Handel verwendet werden. Die Strategie hat jedoch auch eine gewisse Schwäche, die weiter ausgebaut und optimiert werden muss, um in einem breiteren Markt neutral zu sein.

Strategiequellcode
/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 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/
// © Wielkieef


//@version=5
strategy(title='Three SMA-crossover strategy [30min] ', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=10000, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03)

src = close

Length1 = input.int(16, title='  1-SMA Lenght', minval=1, group='SMA')
Length2 = input.int(36, title='  2-SMA Lenght', minval=1, group='SMA')
Length3 = input.int(72, title='  3-SMA Lenght', minval=1, group='SMA')
SMA1 = ta.sma(close, Length1)
SMA2 = ta.sma(close, Length2)
SMA3 = ta.sma(close, Length3)

Long_ma = SMA1 > SMA2 and SMA2 > SMA3
Short_ma = SMA1 < SMA2 and SMA2 < SMA3

LengthMainSMA = input.int(100, title='  Trend SMA ', minval=1)

SMAas = ta.sma(src, LengthMainSMA)

//  Powered Kaufman Adaptive Moving Average by alexgrover (modificated by Wielkieef)
lengthas = input.int(50, title='   KAMA Lenght')
sp = input.bool(true, title='  Self Powered')

er = math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas)
pow = sp ? 1 / er : 2
per = math.pow(math.abs(ta.change(close, lengthas)) / math.sum(math.abs(ta.change(close)), lengthas), pow)
a = 0.
a := per * src + (1 - per) * nz(a[1], src)
mad4h = 0.
a_f = a / a[1] > .999 and a / a[1] < 1.001

///.

Bar_color = close > SMAas ? color.green : Long_ma ? color.blue : Short_ma ? color.maroon : color.gray

barcolor(color=Bar_color)

long_cond = Long_ma and SMAas < close and not a_f and close > a

short_cond = Short_ma and SMAas > close and not a_f and close < a
  
long_stop = Short_ma and SMAas < close

short_stop = Long_ma and SMAas > close

SMA1plot = plot(SMA1, color=Bar_color, linewidth=2)
SMA2plot = plot(SMA2, color=Bar_color, linewidth=4)
SMA3plot = plot(SMA3, color=Bar_color, linewidth=2)

fill(SMA1plot,SMA3plot,title="RANGE " ,color = color.new(Bar_color, 50))



if  long_cond
    strategy.entry('Long', strategy.long)

if  short_cond
    strategy.entry('Short', strategy.short)

strategy.close_all(when=long_stop or short_stop)



//by wielkieef