Strategie zur Umkehrung des doppelten gleitenden Durchschnitts

Schriftsteller:ChaoZhang, Datum: 2023-10-17 14:38:55
Tags:

img

Die Double Moving Average Reversal-Strategie ist eine Trend-folgende Strategie. Sie berechnet gleitende Durchschnitte verschiedener Zeiträume, um festzustellen, ob sich der Preistrend umkehrt, um Wendepunkte zu erfassen und niedrig zu kaufen und hoch zu verkaufen.

Diese Strategie berechnet zunächst zwei Sätze gleitender Durchschnitte mit verschiedenen Perioden. Ein Satz sind langfristige gleitende Durchschnitte, die zur Bestimmung des Gesamttrends verwendet werden. Der andere Satz sind kurzfristige gleitende Durchschnitte, die zur Bestimmung des lokalen Trends verwendet werden. Durch den Vergleich der Beziehung zwischen den beiden Sätzen gleitender Durchschnitte beurteilt die Strategie, ob sich der Gesamttrend umgekehrt hat.

Speziell berechnet die Strategie zunächst zwei langfristige (z.B. 60-tägige) gleitende Durchschnitte, die der 60-tägige einfache gleitende Durchschnitt und der 60-tägige gewichtete gleitende Durchschnittswert sind. Dieser Satz gleitender Durchschnitte wird zur Bestimmung des Gesamttrends verwendet. Darüber hinaus berechnet die Strategie zwei kurzfristige (z.B. 5-tägige) gleitende Durchschnitte, die der 5-tägige einfache gleitende Durchschnitt und der 5-tägige gewichtete gleitende Durchschnittswert sind. Dieser Satz gleitender Durchschnittswerte wird zur Bestimmung des lokalen Trends verwendet.

Wenn der kurzfristige gleitende Durchschnitt über den langfristigen gleitenden Durchschnitt kreuzt, zeigt er an, dass der Preis von einem Abwärtstrend in einen Aufwärtstrend umgekehrt ist. Die Strategie wird lange Positionen eröffnen. Wenn der kurzfristige gleitende Durchschnitt unter den langfristigen gleitenden Durchschnitt kreuzt, zeigt er an, dass der Preis von einem Aufwärtstrend in einen Abwärtstrend umgekehrt ist. Die Strategie wird kurze Positionen eröffnen.

Die spezifischen Schritte sind:

  1. Berechnen Sie den einfachen gleitenden Durchschnitt nma und den gewichteten gleitenden Durchschnitt n2ma

  2. Berechnen Sie den 5-tägigen einfachen gleitenden Durchschnitt nma1 und den 5-tägigen gewichteten gleitenden Durchschnitt n2ma1

  3. Vergleichen Sie n2ma1 und nma1: wenn n2ma1 über nma1 liegt, öffnen Sie Longpositionen; wenn n2ma1 unter nma1 liegt, öffnen Sie Shortpositionen

  4. Vergleichen Sie n2ma und nma: Wenn n2ma über nma liegt und eine Long-Position eröffnet wird, halten Sie die Long-Position weiter; wenn n2ma unter nma liegt und eine Short-Position eröffnet wird, halten Sie die Short-Position weiter.

  5. Schließung von Positionen, wenn der Preis den Stop Loss übersteigt oder den Gewinn erreicht

  6. Wiederholen Sie den obigen Vorgang, um eine Trendumkehr zu erfassen und einen niedrigen Kauf und einen hohen Verkauf zu erreichen

Der Vorteil dieser Strategie besteht darin, dass die Kombination aus doppelten gleitenden Durchschnitten die Umkehr des Preistrends empfindlich erfassen kann. Der Double Moving Average Crossover ist ein klassisches technisches Indikatorsignal. Außerdem kann die Kombination aus verschiedenen periodischen gleitenden Durchschnitten sowohl die allgemeinen als auch die lokalen Trends beurteilen und so einen Trend folgen.

Das Risiko dieser Strategie besteht darin, dass das Doppel gleitende Durchschnitts-Crossover falsche Signale haben kann, was zu Fehlzeiten beim Ein- oder Ausstieg aus Positionen führt, wodurch das Handelsrisiko erhöht wird. Darüber hinaus sind gleitende Durchschnittssysteme anfällig für falsche Signale in Bereichsgebundenen Märkten. Schließlich erfordert das Doppel gleitende Durchschnittssystem eine relativ lange Rückprüfungsperiode, um die Stabilität der Parameter-Einstellungen zu überprüfen.

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimieren Sie die gleitenden Durchschnittsperioden, um die beste Parameterkombination zu finden

  2. Hinzufügen anderer Filter für technische Indikatoren, um falsche Ausbrüche zu vermeiden

  3. Hinzufügen von Stop-Loss und Take-Profit zur Kontrolle des Einzelhandelsrisikos

  4. Kombination mit dem Trend-Trading-Timing, um fehlerhafte Trades in seitlichen Märkten zu vermeiden

  5. Dynamische Anpassung der Positionsgröße an die sich ändernde Marktvolatilität

Die Strategie der doppelten gleitenden Durchschnittsumkehr erfasst Preis-Trendwendepunkte, indem sie verschiedene Perioden gleitende Durchschnitte vergleicht, um niedrige und hohe Kauf- und Verkaufssätze zu erreichen.


/*backtest
start: 2022-10-10 00:00:00
end: 2023-06-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//                   //////////////// Attempt to Reduced ReDraw version /////////////////////
//
//                         Microcana.com strategy by pilotgsms - version 4.20b <<<< Edited by Seaside420 >>>> special thanks to 55cosmicpineapple
//                            Hull_MA_cross added to script
strategy("M&H_v420b", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
dd = input(defval=1, title="Post Signal Bar Delay", type=float, step=1)
df = input(defval=5, title="Close Position Bar Delay", type=float, step=1)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
confidence=(request.security(syminfo.tickerid, 'D', close)-request.security(syminfo.tickerid, 'D', close[1]))/request.security(syminfo.tickerid, 'D', close[1])
prediction = confidence > dt ? true : confidence < -dt ? false : prediction[1]
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
openlong=prediction[dd] and n1>n2 and strategy.opentrades<1
if (openlong)
    strategy.entry("Long", strategy.long)
openshort=not prediction[dd] and n2>n1 and strategy.opentrades<1
if (openshort)
    strategy.entry("Short", strategy.short)
closeshort=prediction and close<low[df]
if (closeshort)
    strategy.close("Short")
closelong=not prediction and close>high[df]  
if (closelong)
    strategy.close("Long")

Mehr