Strategie für die Verlagerung des gleitenden Durchschnitts

Schriftsteller:ChaoZhang, Datum: 2023-11-22 16:38:26
Tags:

img

Übersicht

Die gleitende Durchschnitts-Crossover-Strategie ist eine einfache, aber effektive quantitative Handelsstrategie, die auf gleitenden Durchschnitten basiert. Sie verwendet die Überschneidung einer schnellen gleitenden Durchschnittslinie und einer langsamen gleitenden Durchschnittslinie, um Kauf- und Verkaufssignale zu generieren. Wenn die schnelle Linie von unten durch die langsame Linie bricht, wird ein Kaufsignal generiert. Wenn die schnelle Linie von oben durch die langsame Linie bricht, wird ein Verkaufssignal generiert.

Strategie Logik

Die Kernlogik dieser Strategie besteht darin, gleitende Durchschnitte zu verwenden, um Markttrends zu beurteilen. Gleitende Durchschnitte selbst haben die Funktion, zufälliges Marktgeräusch auszufiltern. Der schnelle gleitende Durchschnitt kann schneller auf Preisänderungen reagieren und die neuesten Trends widerspiegeln, während der langsame gleitende Durchschnitt langsamer auf die neuesten Preisänderungen reagiert und mittelfristige bis langfristige Trends darstellt. Der Durchbruch der schnellen Linie durch die langsame Linie bedeutet, dass der kurzfristige Trend umgekehrt ist, um mit dem mittelfristigen Trend in Einklang zu kommen, wodurch Handelssignale generiert werden.

Insbesondere definiert diese Strategie zunächst den schnellen gleitenden Durchschnitt sig1 und den langsamen gleitenden Durchschnitt sig2. Dann werden Kauf- und Verkaufspunkte nach den Crossover-Beziehungen zwischen sig1 und sig2 bestimmt. Wenn sig1 sig2 von unten durchbricht, wird eine lange Bedingung longCondition generiert. Wenn sig1 sig2 von oben durchbricht, wird eine kurze Bedingung shortCondition generiert. Die Strategie platziert dann Aufträge, wenn lange und kurze Bedingungen erfüllt sind, und setzt Stop-Loss- und Take-Profit-Aufträge zum Ausstieg.

Analyse der Vorteile

Die Vorteile dieser Strategie sind erheblich:

  1. Einfache Logik, leicht zu verstehen und umzusetzen
  2. Flexible Parameter-Tuning, kann unter unterschiedlichen Marktbedingungen optimiert werden
  3. Kann mit anderen Indikatoren kombiniert werden, um Signale zu filtern und die Stabilität zu verbessern
  4. Gute Leistung, zum Beispiel kann die EMA15-EMA30-Combine eine Gewinnrate von 83% bei den täglichen EURCHF-Daten erzielen

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Schwere Whipsaw-Effekte, Stop-Loss-Konfiguration ist entscheidend
  2. Schlechte Ergebnisse bei den Märkten für die Bereiche "Range", "Sideways"
  3. Erfordert umfangreiche Tests und Parameter-Tuning, um unterschiedlichen Produkten und Zeitrahmen gerecht zu werden

Optimierungsmaßnahmen:

  1. Hinzufügen anderer Indikatoren für die Beurteilung, um Schlagzeilen zu vermeiden
  2. Anpassung von Zulassungsarten und -parametern an verschiedene Produkte
  3. Optimierung der Stop-Loss- und Take-Profit-Ratio zur Risikokontrolle

Schlussfolgerung

Im Allgemeinen ist die gleitende Durchschnitts-Crossover-Strategie eine Quant-Strategie mit einfacher Logik, starker Praktikabilität und Stabilität. Mit Parameter-Tuning und angemessener Optimierung kann sie in verschiedenen Marktumgebungen stetige Gewinne generieren. Es lohnt sich, sich für quantitative Trader zu konzentrieren und anzuwenden.


/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-16 04:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Simple yet effective MA cross strategy.
// You'll have to tune the parameters to get an optimal win ratio.
// If JPY or XAU or any other currency with pips defined as the 
// second decimal digit are involved, do not forget to set the respective flag on.
//
// Created by vitelot/yanez/Vts, who's the same fellow with different user names
// December 2018 -- Merry Xmas
//
strategy("MA cross strategy Vts", overlay=true, initial_capital=1000, currency="EUR", pyramiding=0)

yr  = input(2016, title="Starting year to analyse")
src = input(close, title="Source")
maType = input( defval="EMA", title="MA Type", options=["SMA","EMA","HMA","McG","WMA"])
//
isJPY = input(false, title="Is JPY or XAU involved?") // JPY and Gold have the pips defined as the 2 decimal digit

maPar1 = input(26, minval=1, title="MA fast period")
maPar2 = input(51, minval=2, title="MA slow period")

atrPar = input(14,minval=1, title="ATR period")
atrMulSL = input(1.5, title="SL ATR multiplicator")
atrMulTP = input(1.0, title="TP ATR multiplicator")

hma(sig, n) => // Hull moving average definition
    wma( 2*wma(sig,round(n/2))-wma(sig,n), round(sqrt(n)))

mcg(sig,length) => // Mc Ginley MA definition
    mg = 0.0
    mg := na(mg[1]) ? ema(sig, length) : mg[1] + (sig - mg[1]) / (length * pow(sig/mg[1], 4))

ma(t,sig,len) =>
    if t =="SMA"
        sma(sig,len)
    else
        if t == "EMA"
            ema(sig,len)
        else
            if t == "HMA"
                hma(sig,len)
            else
                if t == "McG" // Mc Ginley
                    mcg(sig,len)
                else
                    wma(sig,len)
                    
        
sig1 = ma(maType, src, maPar1)
sig2 = ma(maType, src, maPar2)

tickFactor = isJPY? 1e3: 1e5
sl = atrMulSL*atr(atrPar)*tickFactor
tp = atrMulTP*atr(atrPar)*tickFactor

plot(sig1, color=aqua, title="MA1", linewidth=2)
plot(sig2, color=orange, title="MA2", linewidth=2)

longCondition = crossunder(sig2, sig1) and year>=yr // change the >= to == if you like exact years not a range
if (longCondition)
    strategy.entry("Long", strategy.long, qty=1) // exit trade when SL and TP are hit
    strategy.exit("Exit Long", "Long", loss=sl, profit=tp)
if (crossunder(sig1, sig2)) // or when the short condition is met
    strategy.close("Long")

shortCondition = crossover(sig2,sig1) and year>=yr // change the >= to == if you like exact years not a range
if (shortCondition)
    strategy.entry("Short", strategy.short, qty=1)
    strategy.exit("Exit Short", "Short", loss=sl, profit=tp)
if (crossover(sig1,sig2))
    strategy.close("Short")


Mehr